From 0167255c014de453df807d70b81490bdd0b3b8c4 Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Tue, 9 Jul 2019 02:22:19 +0200 Subject: [PATCH] glibc: updated patch --- glibc/glibc-2.27-3.patch | 21490 ------------------------------------- 1 file changed, 21490 deletions(-) delete mode 100644 glibc/glibc-2.27-3.patch diff --git a/glibc/glibc-2.27-3.patch b/glibc/glibc-2.27-3.patch deleted file mode 100644 index b7438ff..0000000 --- a/glibc/glibc-2.27-3.patch +++ /dev/null @@ -1,21490 +0,0 @@ -diff --git a/ChangeLog b/ChangeLog -index f3fe2716b2..2f1e82b61c 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,644 @@ -+2018-11-27 Florian Weimer -+ -+ [BZ #23927] -+ CVE-2018-19591 -+ * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex): Avoid -+ descriptor leak in case of ENODEV error. -+ -+2018-11-08 Alexandra Hájková -+ -+ [BZ #17630] -+ * resolv/tst-resolv-network.c: Add test for getnetbyname. -+ -+2018-11-05 Andreas Schwab -+ -+ [BZ #22927] -+ * resolv/gai_misc.c (__gai_enqueue_request): Don't crash if -+ creating the first helper thread failed. -+ -+2018-10-23 Adhemerval Zanella -+ -+ [BZ #23709] -+ * sysdeps/x86/cpu-features.c (init_cpu_features): Set TSX bits -+ independently of other flags. -+ -+2018-10-26 Szabolcs Nagy -+ -+ [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 Florian Weimer -+ -+ [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-19 Ilya Yu. Malakhov -+ -+ [BZ #23562] -+ * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h -+ (struct siginfo_t): Use correct type for si_band. -+ -+2018-10-17 Stefan Liebler -+ -+ [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-09-28 Adhemerval Zanella -+ -+ [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. -+ * NEWS: Add bug fixed. -+ -+2018-09-28 Florian Weimer -+ -+ [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. -+ * NEWS: Add bug fixed. -+ -+2018-09-06 Stefan Liebler -+ -+ * sysdeps/unix/sysv/linux/spawni.c (maybe_script_execute): -+ Increment size of new_argv by one. -+ -+2018-08-27 Martin Kuchta -+ Torvald Riegel -+ -+ [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-07-29 H.J. Lu -+ -+ [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-29 H.J. Lu -+ -+ [BZ #23456] -+ * sysdeps/x86/cpu-features.h (index_cpu_LZCNT): Set to -+ COMMON_CPUID_INDEX_80000001. -+ -+2018-07-10 Florian Weimer -+ -+ [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-06-29 Sylvain Lesage -+ -+ [BZ #22996] -+ * localedata/locales/es_BO (LC_PAPER): Change to “copy "en_US"”. -+ -+2018-07-06 Florian Weimer -+ -+ * conform/conformtest.pl (checknamespace): Escape literal braces -+ in regular expressions. -+ -+2018-06-21 Florian Weimer -+ -+ [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-07-03 Florian Weimer -+ -+ [BZ #23363] -+ * stdio-common/tst-printf.c (DEC, INT, UNS, fp_test): Remove. -+ * stdio-common/tst-printf.sh: Adjust expected output. -+ * LICENSES: Update. -+ -+2018-06-26 Florian Weimer -+ -+ * 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 -+ -+ [BZ #23313] -+ * libio/vtables.c (check_stdfiles_vtables): New ELF constructor. -+ -+2018-06-29 Daniel Alvarez -+ Jakub Sitnicki -+ -+ [BZ #21812] -+ * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs_internal): Retry -+ on NLM_F_DUMP_INTR. -+ -+2018-06-28 Florian Weimer -+ -+ [BZ #23349] -+ * time/bits/types/struct_timespec.h: Change header inclusion guard to -+ _STRUCT_TIMESPEC. -+ -+2018-05-24 Gabriel F. T. Gomes -+ -+ [BZ #23171] -+ * math/math.h [C++] (iseqsig): Fix parameter type for the long -+ double version. -+ -+2018-06-12 Carlos O'Donell -+ Andreas Schwab -+ Dmitry V. Levin -+ Florian Weimer -+ -+ [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 Florian Weimer -+ -+ 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-01 Florian Weimer -+ -+ * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Update from master -+ branch, commit e02c026f38505cd474ff1bdaa88fc671804f5805. -+ * sysdeps/i386/fpu/libm-test-ulps: Likewise. -+ -+2018-06-08 Adhemerval Zanella -+ -+ [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. -+ * NEWS: Add BZ#22264. -+ -+2018-06-01 Florian Weimer -+ -+ [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-23 H.J. Lu -+ -+ [BZ #23196] -+ * string/test-memcpy.c (do_test1): New function. -+ (test_main): Call it. -+ -+2018-05-23 Andreas Schwab -+ -+ [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-11 Florian Weimer -+ -+ [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 -+ -+ [BZ #23152] -+ * localedata/locales/gd_GB (abmon): Fix typo in May: -+ "Mhàrt" -> "Cèit". Adjust the comment according to the change. -+ -+2018-05-09 Paul Pluzhnikov -+ -+ [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-05 Paul Pluzhnikov -+ -+ [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 Stefan Liebler -+ -+ [BZ #23137] -+ * sysdeps/nptl/lowlevellock.h (lll_wait_tid): -+ Use atomic_load_acquire to load __tid. -+ -+2018-04-24 Joseph Myers -+ -+ * 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-09 Florian Weimer -+ -+ [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 Andreas Schwab -+ -+ * manual/charset.texi (Converting a Character): Fix typo. -+ -+2018-04-05 Florian Weimer -+ -+ * 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 -+ -+ * manual/examples/mbstouwcs.c: New file. -+ * manual/charset.texi (Converting a Character): Include it. -+ -+2018-04-03 H.J. Lu -+ -+ [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-03-27 Jesse Hathaway -+ -+ * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Return -+ early when linux sentinel value is set. -+ -+2018-03-27 Andreas Schwab -+ -+ [BZ #23005] -+ * resolv/res_send.c (__res_context_send): Return ENOMEM if -+ allocation of private copy of nsaddr_list fails. -+ -+2018-03-20 Joseph Myers -+ -+ [BZ #17343] -+ * stdlib/random_r.c (__random_r): Use unsigned arithmetic for -+ possibly overflowing computations. -+ -+2018-04-26 Aurelien Jarno -+ -+ * signal/tst-sigaction.c: New file to test BZ #23069. -+ * signal/Makefile (tests): Fix indentation. Add tst-sigaction. -+ -+2018-04-28 Aurelien Jarno -+ -+ [BZ #23069] -+ * sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h: New file. -+ -+2018-03-29 Florian Weimer -+ -+ * sysdeps/unix/sysv/linux/i386/tst-bz21269.c (do_test): Also -+ capture SIGBUS. -+ -+2018-03-23 Andrew Senkevich -+ Max Horn -+ -+ [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-02-22 Andrew Waterman -+ -+ [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 -+ -+ * sysdeps/riscv/tls-macros.h: Do not initialize $gp. -+ -+2018-03-16 Rafal Luzynski -+ -+ [BZ #22963] -+ * localedata/locales/cs_CZ (mon): Rename to... -+ (alt_mon): This. -+ (mon): Import from CLDR (genitive case). -+ -+2018-03-16 Rafal Luzynski -+ -+ [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-16 Rafal Luzynski -+ -+ [BZ #22932] -+ * localedata/locales/lt_LT (abmon): Synchronize with CLDR. -+ -+2018-03-16 Robert Buj -+ -+ [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-12 Dmitry V. Levin -+ -+ * po/pt_BR.po: Update translations. -+ -+2018-03-03 Adhemerval Zanella -+ -+ [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 Andreas Schwab -+ -+ [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-01 DJ Delorie -+ -+ [BZ #22342] -+ * nscd/netgroupcache.c (addinnetgrX): Include trailing NUL in -+ key value. -+ -+2018-02-26 Dmitry V. Levin -+ -+ [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 -+ -+ * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Undefine Linux -+ macros used in __ptrace_request. -+ -+2018-02-21 Mike FABIAN -+ -+ [BZ #22517] -+ * localedata/locales/et_EE (LC_COLLATE): add missing “reorder-end” -+ -+2018-02-21 Rical Jasan -+ -+ * io/fcntl.h: Fix a typo in a comment. -+ -+2018-02-20 Rical Jasan -+ -+ * manual/creature.texi (_ISOC99_SOURCE): Update the dated -+ description. -+ -+ [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-03-09 Aurelien Jarno -+ -+ [BZ #22919] -+ * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S (__startcontext): -+ Add nop before __startcontext, add explaining comments. -+ -+2018-03-07 Adhemerval Zanella -+ -+ [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. -+ -+2018-02-19 Rical Jasan -+ -+ [BZ #6889] -+ * manual/filesys.texi (get_current_dir_name): Clarify behaviour. -+ -+2018-02-16 Rical Jasan -+ -+ * manual/platform.texi (__riscv_flush_icache): Fix @deftypefun -+ syntax. -+ -+2018-02-09 Rical Jasan -+ -+ * manual/creature.texi: Convert references to gcc.info to gcc. -+ * manual/stdio.texi: Likewise. -+ * manual/string.texi: Likewise. -+ -+2018-02-18 Aurelien Jarno -+ -+ [BZ #22818] -+ * posix/tst-glob_lstat_compat.c [__alpha__] (glob): Access -+ the GLIBC_2.1 version. -+ -+2018-02-02 Sean McKean -+ -+ [BZ #22735] -+ * time/time.h (clock): Reference CLOCKS_PER_SEC in comment. -+ -+2018-02-10 Dmitry V. Levin -+ -+ [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-14 Adhemerval Zanella -+ -+ * sysdeps/sh/libm-test-ulps: Update. -+ -+2018-02-09 DJ Delorie -+ -+ [BZ #22827] -+ * sysdeps/unix/sysv/linux/riscv/readelflib.c (process_elf_file): Use -+ 64-bit ELF type for 64-bit ELF objects. -+ -+2018-02-07 Igor Gnatenko -+ -+ [BZ #22797] -+ * sysdeps/unix/sysv/linux/bits/mman-shared.h (pkey_get): Add -+ missing second underscore to parameter name. -+ -+2018-02-05 H.J. Lu -+ -+ [BZ #22638] -+ * sysdeps/sparc/sparc32/start.S (_start): Check PIC instead of -+ SHARED. -+ * sysdeps/sparc/sparc64/start.S (_start): Likewise. -+ - 2018-02-01 Dmitry V. Levin - - * version.h (RELEASE): Set to "stable". -@@ -710,7 +1351,9 @@ - 2018-01-18 Arjun Shankar - - [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 -diff --git a/LICENSES b/LICENSES -index 80f7f14879..858076d9d3 100644 ---- a/LICENSES -+++ b/LICENSES -@@ -441,15 +441,6 @@ Permission to use, copy, modify, and distribute this - software is freely granted, provided that this notice - is preserved. - --Part of stdio-common/tst-printf.c is copyright C E Chew: -- --(C) Copyright C E Chew -- --Feel free to copy, use and distribute this software provided: -- -- 1. you do not pretend that you wrote it -- 2. you leave this copyright notice intact. -- - Various long double libm functions are copyright Stephen L. Moshier: - - Copyright 2001 by Stephen L. Moshier -diff --git a/NEWS b/NEWS -index a71c1038a8..e1a23f076b 100644 ---- a/NEWS -+++ b/NEWS -@@ -5,6 +5,105 @@ See the end for copying conditions. - Please send GNU C library bug reports via - using `glibc' in the "product" field. - -+Version 2.27.1 -+ -+Major new features: -+ -+* Nominative and genitive month names are now supported for the Catalan and -+ Czech languages. The Catalan and Greek languages now support abbreviated -+ alternative month names. -+ -+* Parsing of dynamic string tokens in DT_RPATH, DT_RUNPATH, DT_NEEDED, -+ DT_AUXILIARY, and DT_FILTER has been expanded to support the full -+ range of ELF gABI expressions including such constructs as -+ '$ORIGIN$ORIGIN' (if valid). For SUID/GUID applications the rules -+ have been further restricted, and where in the past a dynamic string -+ token sequence may have been interpreted as a literal string it will -+ now cause a load failure. These load failures were always considered -+ unspecified behaviour from the perspective of the dynamic loader, and -+ for safety are now load errors e.g. /foo/${ORIGIN}.so in DT_NEEDED -+ results in a load failure now. -+ -+Security related changes: -+ -+ CVE-2017-18269: An SSE2-based memmove implementation for the i386 -+ architecture could corrupt memory. Reported by Max Horn. -+ -+ CVE-2018-11236: Very long pathname arguments to realpath function could -+ result in an integer overflow and buffer overflow. Reported by Alexey -+ Izbyshev. -+ -+ CVE-2018-11237: The mempcpy implementation for the Intel Xeon Phi -+ architecture could write beyond the target buffer, resulting in a buffer -+ overflow. Reported by Andreas Schwab. -+ -+ 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. -+ -+The following bugs are resolved with this release: -+ -+ [6889] 'PWD' mentioned but not specified -+ [16335] Feature test macro documentation incomplete and out of date -+ [17343] Signed integer overflow in /stdlib/random_r.c -+ [18018] Additional $ORIGIN handling issues (CVE-2011-0536) -+ [20419] files with large allocated notes crash in open_verify -+ [21269] i386 sigaction sa_restorer handling is wrong -+ [21812] getifaddrs: Don't return ifa entries with NULL names -+ [21942] _dl_dst_substitute incorrectly handles $ORIGIN: with AT_SECURE=1 -+ [22342] NSCD not properly caching netgroup -+ [22638] sparc: static binaries are broken if glibc is built by gcc -+ configured with --enable-default-pie -+ [22644] memmove-sse2-unaligned on 32bit x86 produces garbage when crossing -+ 2GB threshold -+ [22735] Misleading typo in time.h source comment regarding CLOCKS_PER_SECOND -+ [22753] libc: preadv2/pwritev2 fallback code should handle offset=-1 -+ [22786] Stack buffer overflow in realpath() if input size is close -+ to SSIZE_MAX -+ [22797] Linux: use reserved name __key in pkey_get -+ [22807] PTRACE_* constants missing for powerpc -+ [22818] posix/tst-glob_lstat_compat failure on alpha -+ [22827] RISC-V ELF64 parser mis-reads flag in ldconfig -+ [22848] ca_ES: update date definitions from CLDR -+ [22884] RISCV fmax/fmin handle signalling NANs incorrectly -+ [22918] multiple common of `__nss_shadow_database' -+ [22919] sparc32: backtrace yields infinite backtrace with makecontext -+ [22926] FTBFS on powerpcspe -+ [22927] libanl: properly cleanup if first helper thread creation failed -+ [22932] lt_LT: Update of abbreviated month names from CLDR required -+ [22937] Greek (el_GR, el_CY) locales actually need ab_alt_mon -+ [22947] FAIL: misc/tst-preadvwritev2 -+ [22963] cs_CZ: Add alternative month names -+ [22996] localedata: change LC_PAPER to en_US in es_BO locale -+ [23005] Crash in __res_context_send after memory allocation failure -+ [23036] regexec: Fix off-by-one bug in weight comparison -+ [23037] initialize msg_flags to zero for sendmmsg() calls -+ [23069] sigaction broken on riscv64-linux-gnu -+ [23102] Incorrect parsing of consecutive $ variables in runpath entries -+ [23137] s390: pthread_join sometimes block indefinitely (on 31bit and libc -+ build with -Os) -+ [23152] gd_GB: Fix typo in "May" (abbreviated) -+ [23166] sunrpc: Remove stray exports without --enable-obsolete-rpc -+ [23171] Fix parameter type in C++ version of iseqsig -+ [23196] __mempcpy_avx512_no_vzeroupper mishandles large copies -+ [23236] Harden function pointers in _IO_str_fields -+ [23253] Set 387 and SSE2 rounding mode for tgamma on i386 -+ [23259] Unsubstituted ${ORIGIN} remains in DT_NEEDED for AT_SECURE -+ [23264] libc: posix_spawnp wrongly executes ENOEXEC in non compat mode -+ [23313] libio: Disable vtable validation in case of interposition -+ [23349] Various glibc headers no longer compatible with -+ [23363] stdio-common/tst-printf.c has non-free license -+ [23456] Wrong index_cpu_LZCNT -+ [23459] COMMON_CPUID_INDEX_80000001 isn't populated for Intel processors -+ [23538] pthread_cond_broadcast: Fix waiters-after-spinning case -+ [23562] signal: Use correct type for si_band in siginfo_t -+ [23579] libc: Errors misreported in preadv2 -+ [23709] Fix CPU string flags for Haswell-type CPUs -+ [23821] si_band in siginfo_t has wrong type long int on sparc64 -+ [23822] ia64 static libm.a is missing exp2f, log2f and powf symbols -+ [23927] Linux if_nametoindex() does not close descriptor (CVE-2018-19591) -+ -+ - Version 2.27 - - Major new features: -@@ -262,6 +361,10 @@ Security related changes: - an object size near the value of SIZE_MAX, would return a pointer to a - buffer which is too small, instead of NULL. Reported by Jakub Wilk. - -+ CVE-2018-6551: The malloc function, when called with an object size near -+ the value of SIZE_MAX, would return a pointer to a buffer which is too -+ small, instead of NULL. -+ - The following bugs are resolved with this release: - - [866] glob: glob should match dangling symlinks -diff --git a/bits/uio-ext.h b/bits/uio-ext.h -index 8c15a05d9a..d5aa06fd08 100644 ---- a/bits/uio-ext.h -+++ b/bits/uio-ext.h -@@ -28,5 +28,6 @@ - #define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC. */ - #define RWF_SYNC 0x00000004 /* per-IO O_SYNC. */ - #define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */ -+#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */ - - #endif /* sys/uio_ext.h */ -diff --git a/conform/conformtest.pl b/conform/conformtest.pl -index cb500f0e76..a4ef756105 100644 ---- a/conform/conformtest.pl -+++ b/conform/conformtest.pl -@@ -367,7 +367,7 @@ while ($#headers >= 0) { - s/^optional-//; - $optional = 1; - } -- if (/^element *({([^}]*)}|([^{ ]*)) *({([^}]*)}|([^{ ]*)) *([A-Za-z0-9_]*) *(.*)/) { -+ if (/^element *(\{([^}]*)\}|([^{ ]*)) *(\{([^}]*)\}|([^{ ]*)) *([A-Za-z0-9_]*) *(.*)/) { - my($struct) = "$2$3"; - my($type) = "$5$6"; - my($member) = "$7"; -@@ -556,7 +556,7 @@ while ($#headers >= 0) { - "Symbol \"$symbol\" has not the right value.", $res, - $xfail); - } -- } elsif (/^type *({([^}]*)|([a-zA-Z0-9_]*))/) { -+ } elsif (/^type *(\{([^}]*)|([a-zA-Z0-9_]*))/) { - my($type) = "$2$3"; - my($maybe_opaque) = 0; - -@@ -586,7 +586,7 @@ while ($#headers >= 0) { - ? "NOT AVAILABLE" - : "Type \"$type\" not available."), $missing, $optional, - $xfail); -- } elsif (/^tag *({([^}]*)|([a-zA-Z0-9_]*))/) { -+ } elsif (/^tag *(\{([^}]*)|([a-zA-Z0-9_]*))/) { - my($type) = "$2$3"; - - # Remember that this name is allowed. -@@ -607,7 +607,7 @@ while ($#headers >= 0) { - - compiletest ($fnamebase, "Testing for type $type", - "Type \"$type\" not available.", $missing, 0, $xfail); -- } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { -+ } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { - my($rettype) = "$2$3"; - my($fname) = "$4"; - my($args) = "$5"; -@@ -644,7 +644,7 @@ while ($#headers >= 0) { - "Function \"$fname\" has incorrect type.", $res, 0, - $xfail); - } -- } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { -+ } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { - my($rettype) = "$2$3"; - my($fname) = "$4"; - my($args) = "$5"; -@@ -681,7 +681,7 @@ while ($#headers >= 0) { - "Function \"$fname\" has incorrect type.", $res, 0, - $xfail); - } -- } elsif (/^variable *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) *(.*)/) { -+ } elsif (/^variable *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) *(.*)/) { - my($type) = "$2$3"; - my($vname) = "$4"; - my($rest) = "$5"; -@@ -713,7 +713,7 @@ while ($#headers >= 0) { - - 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_]*) ([(].*[)])/) { -+ } elsif (/^macro-function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { - my($rettype) = "$2$3"; - my($fname) = "$4"; - my($args) = "$5"; -@@ -812,11 +812,11 @@ while ($#headers >= 0) { - - s/^xfail(\[([^\]]*)\])?-//; - s/^optional-//; -- if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) { -+ if (/^element *(\{([^}]*)\}|([^ ]*)) *(\{([^}]*)\}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) { - push @allow, $7; - } elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>== 0) { - } else { - push @allow, $type; - } -- } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { -+ } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) { - push @allow, $4; -- } elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { -+ } elsif (/^function *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { - push @allow, $4; -- } elsif (/^variable *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*)/) { -+ } elsif (/^variable *(\{([^}]*)\}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*)/) { - push @allow, $4; -- } elsif (/^macro-function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) { -+ } 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; -diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data -index fa841cfdbe..88c1f5eba2 100644 ---- a/conform/data/signal.h-data -+++ b/conform/data/signal.h-data -@@ -170,7 +170,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/sys/wait.h-data b/conform/data/sys/wait.h-data -index 559ebdf677..a6713461ea 100644 ---- a/conform/data/sys/wait.h-data -+++ b/conform/data/sys/wait.h-data -@@ -44,7 +44,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/debug/vasprintf_chk.c b/debug/vasprintf_chk.c -index a00ef771e6..3eb64617fd 100644 ---- a/debug/vasprintf_chk.c -+++ b/debug/vasprintf_chk.c -@@ -55,8 +55,8 @@ __vasprintf_chk (char **result_ptr, int flags, const char *format, - _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 = (_IO_alloc_type) malloc; -- sf._s._free_buffer = (_IO_free_type) free; -+ 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 - can only come from read-only format strings. */ -diff --git a/elf/Makefile b/elf/Makefile -index 2a432d8bee..2d8fe88aa6 100644 ---- a/elf/Makefile -+++ b/elf/Makefile -@@ -187,7 +187,7 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \ - 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-debug1 tst-main1 tst-big-note - # reldep9 - tests-internal += loadtest unload unload2 circleload1 \ - neededtest neededtest2 neededtest3 neededtest4 \ -@@ -272,7 +272,9 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ - tst-audit12mod1 tst-audit12mod2 tst-audit12mod3 tst-auditmod12 \ - tst-latepthreadmod $(tst-tls-many-dynamic-modules) \ - tst-nodelete-dlclose-dso tst-nodelete-dlclose-plugin \ -- tst-main1mod tst-libc_dlvsym-dso -+ tst-main1mod tst-libc_dlvsym-dso \ -+ tst-big-note-lib -+ - ifeq (yes,$(have-mtls-dialect-gnu2)) - tests += tst-gnu2-tls1 - modules-names += tst-gnu2-tls1mod -@@ -1446,3 +1448,5 @@ $(objpfx)tst-libc_dlvsym-static: $(common-objpfx)dlfcn/libdl.a - tst-libc_dlvsym-static-ENV = \ - LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn - $(objpfx)tst-libc_dlvsym-static.out: $(objpfx)tst-libc_dlvsym-dso.so -+ -+$(objpfx)tst-big-note: $(objpfx)tst-big-note-lib.so -diff --git a/elf/dl-deps.c b/elf/dl-deps.c -index c975fcffd7..20b8e94f2e 100644 ---- a/elf/dl-deps.c -+++ b/elf/dl-deps.c -@@ -100,7 +100,7 @@ struct list - ({ \ - const char *__str = (str); \ - const char *__result = __str; \ -- size_t __dst_cnt = DL_DST_COUNT (__str); \ -+ size_t __dst_cnt = _dl_dst_count (__str); \ - \ - if (__dst_cnt != 0) \ - { \ -diff --git a/elf/dl-dst.h b/elf/dl-dst.h -index 32de5d225a..859032be0d 100644 ---- a/elf/dl-dst.h -+++ b/elf/dl-dst.h -@@ -18,19 +18,6 @@ - - #include "trusted-dirs.h" - --/* Determine the number of DST elements in the name. Only if IS_PATH is -- nonzero paths are recognized (i.e., multiple, ':' separated filenames). */ --#define DL_DST_COUNT(name) \ -- ({ \ -- size_t __cnt = 0; \ -- const char *__sf = strchr (name, '$'); \ -- \ -- if (__glibc_unlikely (__sf != NULL)) \ -- __cnt = _dl_dst_count (__sf); \ -- \ -- __cnt; }) -- -- - #ifdef SHARED - # define IS_RTLD(l) (l) == &GL(dl_rtld_map) - #else -diff --git a/elf/dl-load.c b/elf/dl-load.c -index 7554a99b5a..b20e2a46d0 100644 ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -122,12 +122,6 @@ is_trusted_path_normalize (const char *path, size_t len) - if (len == 0) - return false; - -- if (*path == ':') -- { -- ++path; -- --len; -- } -- - char *npath = (char *) alloca (len + 2); - char *wnp = npath; - while (*path != '\0') -@@ -178,114 +172,165 @@ is_trusted_path_normalize (const char *path, size_t len) - return false; - } - -+/* Given a substring starting at INPUT, just after the DST '$' start -+ token, determine if INPUT contains DST token REF, following the -+ ELF gABI rules for DSTs: -+ -+ * Longest possible sequence using the rules (greedy). - -+ * Must start with a $ (enforced by caller). -+ -+ * Must follow $ with one underscore or ASCII [A-Za-z] (caller -+ follows these rules for REF) or '{' (start curly quoted name). -+ -+ * Must follow first two characters with zero or more [A-Za-z0-9_] -+ (enforced by caller) or '}' (end curly quoted name). -+ -+ If the sequence is a DST matching REF then the length of the DST -+ (excluding the $ sign but including curly braces, if any) is -+ returned, otherwise 0. */ - static size_t --is_dst (const char *start, const char *name, const char *str, int secure) -+is_dst (const char *input, const char *ref) - { -- size_t len; - bool is_curly = false; - -- if (name[0] == '{') -+ /* Is a ${...} input sequence? */ -+ if (input[0] == '{') - { - is_curly = true; -- ++name; -- } -- -- len = 0; -- while (name[len] == str[len] && name[len] != '\0') -- ++len; -- -- if (is_curly) -- { -- if (name[len] != '}') -- return 0; -- -- /* Point again at the beginning of the name. */ -- --name; -- /* Skip over closing curly brace and adjust for the --name. */ -- len += 2; -+ ++input; - } -- else if (name[len] != '\0' && name[len] != '/') -- return 0; - -- if (__glibc_unlikely (secure) -- && ((name[len] != '\0' && name[len] != '/') -- || (name != start + 1))) -+ /* Check for matching name, following closing curly brace (if -+ required), or trailing characters which are part of an -+ identifier. */ -+ size_t rlen = strlen (ref); -+ if (strncmp (input, ref, rlen) != 0 -+ || (is_curly && input[rlen] != '}') -+ || ((input[rlen] >= 'A' && input[rlen] <= 'Z') -+ || (input[rlen] >= 'a' && input[rlen] <= 'z') -+ || (input[rlen] >= '0' && input[rlen] <= '9') -+ || (input[rlen] == '_'))) - return 0; - -- return len; -+ if (is_curly) -+ /* Count the two curly braces. */ -+ return rlen + 2; -+ else -+ return rlen; - } - -- -+/* INPUT is the start of a DST sequence at the first '$' occurrence. -+ If there is a DST we call into _dl_dst_count to count the number of -+ DSTs. We count all known DSTs regardless of __libc_enable_secure; -+ the caller is responsible for enforcing the security of the -+ substitution rules (usually _dl_dst_substitute). */ - size_t --_dl_dst_count (const char *name) -+_dl_dst_count (const char *input) - { -- const char *const start = name; - size_t cnt = 0; - -+ input = strchr (input, '$'); -+ -+ /* Most likely there is no DST. */ -+ if (__glibc_likely (input == NULL)) -+ return 0; -+ - do - { - size_t len; - -- /* $ORIGIN is not expanded for SUID/GUID programs (except if it -- is $ORIGIN alone) and it must always appear first in path. */ -- ++name; -- if ((len = is_dst (start, name, "ORIGIN", __libc_enable_secure)) != 0 -- || (len = is_dst (start, name, "PLATFORM", 0)) != 0 -- || (len = is_dst (start, name, "LIB", 0)) != 0) -+ ++input; -+ /* All DSTs must follow ELF gABI rules, see is_dst (). */ -+ if ((len = is_dst (input, "ORIGIN")) != 0 -+ || (len = is_dst (input, "PLATFORM")) != 0 -+ || (len = is_dst (input, "LIB")) != 0) - ++cnt; - -- name = strchr (name + len, '$'); -+ /* There may be more than one DST in the input. */ -+ input = strchr (input + len, '$'); - } -- while (name != NULL); -+ while (input != NULL); - - return cnt; - } - -- -+/* Process INPUT for DSTs and store in RESULT using the information -+ from link map L to resolve the DSTs. This function only handles one -+ path at a time and does not handle colon-separated path lists (see -+ fillin_rpath ()). Lastly the size of result in bytes should be at -+ least equal to the value returned by DL_DST_REQUIRED. Note that it -+ is possible for a DT_NEEDED, DT_AUXILIARY, and DT_FILTER entries to -+ have colons, but we treat those as literal colons here, not as path -+ list delimeters. */ - char * --_dl_dst_substitute (struct link_map *l, const char *name, char *result) -+_dl_dst_substitute (struct link_map *l, const char *input, char *result) - { -- const char *const start = name; -- -- /* Now fill the result path. While copying over the string we keep -- track of the start of the last path element. When we come across -- a DST we copy over the value or (if the value is not available) -- leave the entire path element out. */ -+ /* Copy character-by-character from input into the working pointer -+ looking for any DSTs. We track the start of input and if we are -+ going to check for trusted paths, all of which are part of $ORIGIN -+ handling in SUID/SGID cases (see below). In some cases, like when -+ a DST cannot be replaced, we may set result to an empty string and -+ return. */ - char *wp = result; -- char *last_elem = result; -+ const char *start = input; - bool check_for_trusted = false; - - do - { -- if (__glibc_unlikely (*name == '$')) -+ if (__glibc_unlikely (*input == '$')) - { - const char *repl = NULL; - size_t len; - -- ++name; -- if ((len = is_dst (start, name, "ORIGIN", __libc_enable_secure)) != 0) -+ ++input; -+ if ((len = is_dst (input, "ORIGIN")) != 0) - { -- repl = l->l_origin; -+ /* For SUID/GUID programs we normally ignore the path with -+ $ORIGIN in DT_RUNPATH, or DT_RPATH. However, there is -+ one exception to this rule, and it is: -+ -+ * $ORIGIN appears as the first path element, and is -+ the only string in the path or is immediately -+ followed by a path separator and the rest of the -+ path. -+ -+ * The path is rooted in a trusted directory. -+ -+ This exception allows such programs to reference -+ shared libraries in subdirectories of trusted -+ directories. The use case is one of general -+ organization and deployment flexibility. -+ Trusted directories are usually such paths as "/lib64" -+ or "/usr/lib64", and the usual RPATHs take the form of -+ [$ORIGIN/../$LIB/somedir]. */ -+ if (__glibc_unlikely (__libc_enable_secure) -+ && !(input == start + 1 -+ && (input[len] == '\0' || input[len] == '/'))) -+ repl = (const char *) -1; -+ else -+ repl = l->l_origin; -+ - check_for_trusted = (__libc_enable_secure - && l->l_type == lt_executable); - } -- else if ((len = is_dst (start, name, "PLATFORM", 0)) != 0) -+ else if ((len = is_dst (input, "PLATFORM")) != 0) - repl = GLRO(dl_platform); -- else if ((len = is_dst (start, name, "LIB", 0)) != 0) -+ else if ((len = is_dst (input, "LIB")) != 0) - repl = DL_DST_LIB; - - if (repl != NULL && repl != (const char *) -1) - { - wp = __stpcpy (wp, repl); -- name += len; -+ input += len; - } -- else if (len > 1) -+ else if (len != 0) - { -- /* We cannot use this path element, the value of the -- replacement is unknown. */ -- wp = last_elem; -- break; -+ /* We found a valid DST that we know about, but we could -+ not find a replacement value for it, therefore we -+ cannot use this path and discard it. */ -+ *result = '\0'; -+ return result; - } - else - /* No DST we recognize. */ -@@ -293,16 +338,26 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result) - } - else - { -- *wp++ = *name++; -+ *wp++ = *input++; - } - } -- while (*name != '\0'); -+ while (*input != '\0'); - - /* In SUID/SGID programs, after $ORIGIN expansion the normalized -- path must be rooted in one of the trusted directories. */ -+ path must be rooted in one of the trusted directories. The $LIB -+ and $PLATFORM DST cannot in any way be manipulated by the caller -+ because they are fixed values that are set by the dynamic loader -+ and therefore any paths using just $LIB or $PLATFORM need not be -+ checked for trust, the authors of the binaries themselves are -+ trusted to have designed this correctly. Only $ORIGIN is tested in -+ this way because it may be manipulated in some ways with hard -+ links. */ - if (__glibc_unlikely (check_for_trusted) -- && !is_trusted_path_normalize (last_elem, wp - last_elem)) -- wp = last_elem; -+ && !is_trusted_path_normalize (result, wp - result)) -+ { -+ *result = '\0'; -+ return result; -+ } - - *wp = '\0'; - -@@ -310,13 +365,13 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result) - } - - --/* Return copy of argument with all recognized dynamic string tokens -- ($ORIGIN and $PLATFORM for now) replaced. On some platforms it -- might not be possible to determine the path from which the object -- belonging to the map is loaded. In this case the path element -- containing $ORIGIN is left out. */ -+/* Return a malloc allocated copy of INPUT with all recognized DSTs -+ replaced. On some platforms it might not be possible to determine the -+ path from which the object belonging to the map is loaded. In this -+ case the path containing the DST is left out. On error NULL -+ is returned. */ - static char * --expand_dynamic_string_token (struct link_map *l, const char *s) -+expand_dynamic_string_token (struct link_map *l, const char *input) - { - /* We make two runs over the string. First we determine how large the - resulting string is and then we copy it over. Since this is no -@@ -326,22 +381,22 @@ expand_dynamic_string_token (struct link_map *l, const char *s) - size_t total; - char *result; - -- /* Determine the number of DST elements. */ -- cnt = DL_DST_COUNT (s); -+ /* Determine the number of DSTs. */ -+ cnt = _dl_dst_count (input); - - /* If we do not have to replace anything simply copy the string. */ - if (__glibc_likely (cnt == 0)) -- return __strdup (s); -+ return __strdup (input); - - /* Determine the length of the substituted string. */ -- total = DL_DST_REQUIRED (l, s, strlen (s), cnt); -+ total = DL_DST_REQUIRED (l, input, strlen (input), cnt); - - /* Allocate the necessary memory. */ - result = (char *) malloc (total + 1); - if (result == NULL) - return NULL; - -- return _dl_dst_substitute (l, s, result); -+ return _dl_dst_substitute (l, input, result); - } - - -@@ -1469,6 +1524,7 @@ open_verify (const char *name, int fd, - ElfW(Ehdr) *ehdr; - ElfW(Phdr) *phdr, *ph; - ElfW(Word) *abi_note; -+ ElfW(Word) *abi_note_malloced = NULL; - unsigned int osversion; - size_t maplength; - -@@ -1640,10 +1696,25 @@ open_verify (const char *name, int fd, - abi_note = (void *) (fbp->buf + ph->p_offset); - else - { -- abi_note = alloca (size); -+ /* Note: __libc_use_alloca is not usable here, because -+ thread info may not have been set up yet. */ -+ if (size < __MAX_ALLOCA_CUTOFF) -+ abi_note = alloca (size); -+ else -+ { -+ /* There could be multiple PT_NOTEs. */ -+ abi_note_malloced = realloc (abi_note_malloced, size); -+ if (abi_note_malloced == NULL) -+ goto read_error; -+ -+ abi_note = abi_note_malloced; -+ } - __lseek (fd, ph->p_offset, SEEK_SET); - if (__libc_read (fd, (void *) abi_note, size) != size) -- goto read_error; -+ { -+ free (abi_note_malloced); -+ goto read_error; -+ } - } - - while (memcmp (abi_note, &expected_note, sizeof (expected_note))) -@@ -1678,6 +1749,7 @@ open_verify (const char *name, int fd, - - break; - } -+ free (abi_note_malloced); - } - - return fd; -diff --git a/elf/tst-big-note-lib.S b/elf/tst-big-note-lib.S -new file mode 100644 -index 0000000000..6b514a03cc ---- /dev/null -+++ b/elf/tst-big-note-lib.S -@@ -0,0 +1,26 @@ -+/* Bug 20419: test for stack overflow in elf/dl-load.c open_verify() -+ 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 -+ . */ -+ -+/* 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. */ -+ -+.pushsection .note.big,"a" -+.balign 4 -+.fill 8*1024*1024, 1, 0 -+.popsection -diff --git a/elf/tst-big-note.c b/elf/tst-big-note.c -new file mode 100644 -index 0000000000..fcd2b0ed82 ---- /dev/null -+++ b/elf/tst-big-note.c -@@ -0,0 +1,26 @@ -+/* Bug 20419: test for stack overflow in elf/dl-load.c open_verify() -+ 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 -+ . */ -+ -+/* This file must be run from within a directory called "elf". */ -+ -+int main (int argc, char *argv[]) -+{ -+ /* Nothing to do here: merely linking against tst-big-note-lib.so triggers -+ the bug. */ -+ return 0; -+} -diff --git a/include/rpc/clnt.h b/include/rpc/clnt.h -index a397023a93..80be0a9cec 100644 ---- a/include/rpc/clnt.h -+++ b/include/rpc/clnt.h -@@ -28,6 +28,7 @@ libc_hidden_proto (clntudp_create) - libc_hidden_proto (get_myaddress) - libc_hidden_proto (clntunix_create) - libc_hidden_proto (__libc_clntudp_bufcreate) -+libc_hidden_proto (rpc_createerr) - - # endif /* !_ISOMAC */ - #endif -diff --git a/include/rpc/svc.h b/include/rpc/svc.h -index 465bf4427d..40ba2546a9 100644 ---- a/include/rpc/svc.h -+++ b/include/rpc/svc.h -@@ -3,6 +3,10 @@ - - # ifndef _ISOMAC - -+libc_hidden_proto (svc_pollfd) -+libc_hidden_proto (svc_max_pollfd) -+libc_hidden_proto (svc_fdset) -+ - libc_hidden_proto (xprt_register) - libc_hidden_proto (xprt_unregister) - libc_hidden_proto (svc_register) -diff --git a/include/unistd.h b/include/unistd.h -index 0f91b8babc..a171b00326 100644 ---- a/include/unistd.h -+++ b/include/unistd.h -@@ -77,6 +77,8 @@ extern char *__getcwd (char *__buf, size_t __size) attribute_hidden; - extern int __rmdir (const char *__path) attribute_hidden; - extern int __execvpe (const char *file, char *const argv[], - char *const envp[]) attribute_hidden; -+extern int __execvpex (const char *file, char *const argv[], -+ char *const envp[]) attribute_hidden; - - /* Get the canonical absolute name of the named directory, and put it in SIZE - bytes of BUF. Returns NULL if the directory couldn't be determined or -diff --git a/io/fcntl.h b/io/fcntl.h -index 3d239e8f09..69a4394191 100644 ---- a/io/fcntl.h -+++ b/io/fcntl.h -@@ -139,7 +139,7 @@ typedef __pid_t pid_t; - # define SEEK_END 2 /* Seek from end of file. */ - #endif /* XPG */ - --/* The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EASSESS -+/* The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EACCESS - is meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to - unlinkat. The two functions do completely different things and therefore, - the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to -diff --git a/libio/Makefile b/libio/Makefile -index 918a86bb74..81bd1792a5 100644 ---- a/libio/Makefile -+++ b/libio/Makefile -@@ -64,6 +64,9 @@ tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \ - 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 -+ -+tests-internal = tst-vtables tst-vtables-interposed -+ - ifeq (yes,$(build-shared)) - # Add test-fopenloc only if shared library is enabled since it depends on - # shared localedata objects. -diff --git a/libio/memstream.c b/libio/memstream.c -index d86befcc02..c5c7c2f6db 100644 ---- a/libio/memstream.c -+++ b/libio/memstream.c -@@ -90,8 +90,8 @@ __open_memstream (char **bufloc, _IO_size_t *sizeloc) - _IO_JUMPS_FILE_plus (&new_f->fp._sf._sbf) = &_IO_mem_jumps; - _IO_str_init_static_internal (&new_f->fp._sf, buf, _IO_BUFSIZ, buf); - new_f->fp._sf._sbf._f._flags &= ~_IO_USER_BUF; -- new_f->fp._sf._s._allocate_buffer = (_IO_alloc_type) malloc; -- new_f->fp._sf._s._free_buffer = (_IO_free_type) free; -+ new_f->fp._sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; -+ new_f->fp._sf._s._free_buffer_unused = (_IO_free_type) free; - - new_f->fp.bufloc = bufloc; - new_f->fp.sizeloc = sizeloc; -diff --git a/libio/strfile.h b/libio/strfile.h -index 68dfcbfe83..52a085e580 100644 ---- a/libio/strfile.h -+++ b/libio/strfile.h -@@ -31,8 +31,11 @@ typedef void (*_IO_free_type) (void*); - - struct _IO_str_fields - { -- _IO_alloc_type _allocate_buffer; -- _IO_free_type _free_buffer; -+ /* These members are preserved for ABI compatibility. The glibc -+ implementation always calls malloc/free for user buffers if -+ _IO_USER_BUF or _IO_FLAGS2_USER_WBUF are not set. */ -+ _IO_alloc_type _allocate_buffer_unused; -+ _IO_free_type _free_buffer_unused; - }; - - /* This is needed for the Irix6 N32 ABI, which has a 64 bit off_t type, -@@ -52,10 +55,6 @@ typedef struct _IO_strfile_ - struct _IO_str_fields _s; - } _IO_strfile; - --/* dynamic: set when the array object is allocated (or reallocated) as -- necessary to hold a character sequence that can change in length. */ --#define _IO_STR_DYNAMIC(FP) ((FP)->_s._allocate_buffer != (_IO_alloc_type)0) -- - /* frozen: set when the program has requested that the array object not - be altered, reallocated, or freed. */ - #define _IO_STR_FROZEN(FP) ((FP)->_f._IO_file_flags & _IO_USER_BUF) -diff --git a/libio/strops.c b/libio/strops.c -index ac995c830e..5fb38976e3 100644 ---- a/libio/strops.c -+++ b/libio/strops.c -@@ -61,7 +61,7 @@ _IO_str_init_static_internal (_IO_strfile *sf, char *ptr, _IO_size_t size, - fp->_IO_read_end = end; - } - /* A null _allocate_buffer function flags the strfile as being static. */ -- sf->_s._allocate_buffer = (_IO_alloc_type) 0; -+ sf->_s._allocate_buffer_unused = (_IO_alloc_type) 0; - } - - void -@@ -103,8 +103,7 @@ _IO_str_overflow (_IO_FILE *fp, int c) - _IO_size_t new_size = 2 * old_blen + 100; - if (new_size < old_blen) - return EOF; -- new_buf -- = (char *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (new_size); -+ new_buf = malloc (new_size); - if (new_buf == NULL) - { - /* __ferror(fp) = 1; */ -@@ -113,7 +112,7 @@ _IO_str_overflow (_IO_FILE *fp, int c) - if (old_buf) - { - memcpy (new_buf, old_buf, old_blen); -- (*((_IO_strfile *) fp)->_s._free_buffer) (old_buf); -+ free (old_buf); - /* Make sure _IO_setb won't try to delete _IO_buf_base. */ - fp->_IO_buf_base = NULL; - } -@@ -182,15 +181,14 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading) - - _IO_size_t newsize = offset + 100; - char *oldbuf = fp->_IO_buf_base; -- char *newbuf -- = (char *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (newsize); -+ char *newbuf = malloc (newsize); - if (newbuf == NULL) - return 1; - - if (oldbuf != NULL) - { - memcpy (newbuf, oldbuf, _IO_blen (fp)); -- (*((_IO_strfile *) fp)->_s._free_buffer) (oldbuf); -+ free (oldbuf); - /* Make sure _IO_setb won't try to delete - _IO_buf_base. */ - fp->_IO_buf_base = NULL; -@@ -346,7 +344,7 @@ void - _IO_str_finish (_IO_FILE *fp, int dummy) - { - if (fp->_IO_buf_base && !(fp->_flags & _IO_USER_BUF)) -- (((_IO_strfile *) fp)->_s._free_buffer) (fp->_IO_buf_base); -+ free (fp->_IO_buf_base); - fp->_IO_buf_base = NULL; - - _IO_default_finish (fp, 0); -diff --git a/libio/tst-vtables-common.c b/libio/tst-vtables-common.c -new file mode 100644 -index 0000000000..dc8d89c195 ---- /dev/null -+++ b/libio/tst-vtables-common.c -@@ -0,0 +1,511 @@ -+/* Test for libio vtables and their validation. Common code. -+ 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 -+ . */ -+ -+/* This test provides some coverage for how various stdio functions -+ use the vtables in FILE * objects. The focus is mostly on which -+ functions call which methods, not so much on validating data -+ processing. An initial series of tests check that custom vtables -+ do not work without activation through _IO_init. -+ -+ Note: libio vtables are deprecated feature. Do not use this test -+ as a documentation source for writing custom vtables. See -+ fopencookie for a different way of creating custom stdio -+ streams. */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* Data shared between the test subprocess and the test driver in the -+ parent. Note that *shared is reset at the start of the check_call -+ function. */ -+struct shared -+{ -+ /* Expected file pointer for method calls. */ -+ FILE *fp; -+ -+ /* If true, assume that a call to _IO_init is needed to enable -+ custom vtables. */ -+ bool initially_disabled; -+ -+ /* Requested return value for the methods which have one. */ -+ int return_value; -+ -+ /* A value (usually a character) recorded by some of the methods -+ below. */ -+ int value; -+ -+ /* Likewise, for some data. */ -+ char buffer[16]; -+ size_t buffer_length; -+ -+ /* Total number of method calls. */ -+ unsigned int calls; -+ -+ /* Individual method call counts. */ -+ unsigned int calls_finish; -+ unsigned int calls_overflow; -+ unsigned int calls_underflow; -+ unsigned int calls_uflow; -+ unsigned int calls_pbackfail; -+ unsigned int calls_xsputn; -+ unsigned int calls_xsgetn; -+ unsigned int calls_seekoff; -+ unsigned int calls_seekpos; -+ unsigned int calls_setbuf; -+ unsigned int calls_sync; -+ unsigned int calls_doallocate; -+ unsigned int calls_read; -+ unsigned int calls_write; -+ unsigned int calls_seek; -+ unsigned int calls_close; -+ unsigned int calls_stat; -+ unsigned int calls_showmanyc; -+ unsigned int calls_imbue; -+} *shared; -+ -+/* Method implementations which increment the counters in *shared. */ -+ -+static void -+log_method (FILE *fp, const char *name) -+{ -+ if (test_verbose > 0) -+ printf ("info: %s (%p) called\n", name, fp); -+} -+ -+static void -+method_finish (FILE *fp, int dummy) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_finish; -+} -+ -+static int -+method_overflow (FILE *fp, int ch) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_overflow; -+ shared->value = ch; -+ return shared->return_value; -+} -+ -+static int -+method_underflow (FILE *fp) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_underflow; -+ return shared->return_value; -+} -+ -+static int -+method_uflow (FILE *fp) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_uflow; -+ return shared->return_value; -+} -+ -+static int -+method_pbackfail (FILE *fp, int ch) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_pbackfail; -+ shared->value = ch; -+ return shared->return_value; -+} -+ -+static size_t -+method_xsputn (FILE *fp, const void *data, size_t n) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_xsputn; -+ -+ size_t to_copy = n; -+ if (n > sizeof (shared->buffer)) -+ to_copy = sizeof (shared->buffer); -+ memcpy (shared->buffer, data, to_copy); -+ shared->buffer_length = to_copy; -+ return to_copy; -+} -+ -+static size_t -+method_xsgetn (FILE *fp, void *data, size_t n) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_xsgetn; -+ return 0; -+} -+ -+static off64_t -+method_seekoff (FILE *fp, off64_t offset, int dir, int mode) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_seekoff; -+ return shared->return_value; -+} -+ -+static off64_t -+method_seekpos (FILE *fp, off64_t offset, int mode) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_seekpos; -+ return shared->return_value; -+} -+ -+static FILE * -+method_setbuf (FILE *fp, char *buffer, ssize_t length) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_setbuf; -+ return fp; -+} -+ -+static int -+method_sync (FILE *fp) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_sync; -+ return shared->return_value; -+} -+ -+static int -+method_doallocate (FILE *fp) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_doallocate; -+ return shared->return_value; -+} -+ -+static ssize_t -+method_read (FILE *fp, void *data, ssize_t length) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_read; -+ return shared->return_value; -+} -+ -+static ssize_t -+method_write (FILE *fp, const void *data, ssize_t length) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_write; -+ return shared->return_value; -+} -+ -+static off64_t -+method_seek (FILE *fp, off64_t offset, int mode) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_seek; -+ return shared->return_value; -+} -+ -+static int -+method_close (FILE *fp) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_close; -+ return shared->return_value; -+} -+ -+static int -+method_stat (FILE *fp, void *buffer) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_stat; -+ return shared->return_value; -+} -+ -+static int -+method_showmanyc (FILE *fp) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_showmanyc; -+ return shared->return_value; -+} -+ -+static void -+method_imbue (FILE *fp, void *locale) -+{ -+ log_method (fp, __func__); -+ TEST_VERIFY (fp == shared->fp); -+ ++shared->calls; -+ ++shared->calls_imbue; -+} -+ -+/* Our custom vtable. */ -+ -+static const struct _IO_jump_t jumps = -+{ -+ JUMP_INIT_DUMMY, -+ JUMP_INIT (finish, method_finish), -+ JUMP_INIT (overflow, method_overflow), -+ JUMP_INIT (underflow, method_underflow), -+ JUMP_INIT (uflow, method_uflow), -+ JUMP_INIT (pbackfail, method_pbackfail), -+ JUMP_INIT (xsputn, method_xsputn), -+ JUMP_INIT (xsgetn, method_xsgetn), -+ JUMP_INIT (seekoff, method_seekoff), -+ JUMP_INIT (seekpos, method_seekpos), -+ JUMP_INIT (setbuf, method_setbuf), -+ JUMP_INIT (sync, method_sync), -+ JUMP_INIT (doallocate, method_doallocate), -+ JUMP_INIT (read, method_read), -+ JUMP_INIT (write, method_write), -+ JUMP_INIT (seek, method_seek), -+ JUMP_INIT (close, method_close), -+ JUMP_INIT (stat, method_stat), -+ JUMP_INIT (showmanyc, method_showmanyc), -+ JUMP_INIT (imbue, method_imbue) -+}; -+ -+/* Our file implementation. */ -+ -+struct my_file -+{ -+ FILE f; -+ const struct _IO_jump_t *vtable; -+}; -+ -+struct my_file -+my_file_create (void) -+{ -+ return (struct my_file) -+ { -+ /* Disable locking, so that we do not have to set up a lock -+ pointer. */ -+ .f._flags = _IO_USER_LOCK, -+ -+ /* Copy the offset from the an initialized handle, instead of -+ figuring it out from scratch. */ -+ .f._vtable_offset = stdin->_vtable_offset, -+ -+ .vtable = &jumps, -+ }; -+} -+ -+/* Initial tests which do not enable vtable compatibility. */ -+ -+/* Inhibit GCC optimization of fprintf. */ -+typedef int (*fprintf_type) (FILE *, const char *, ...); -+static const volatile fprintf_type fprintf_ptr = &fprintf; -+ -+static void -+without_compatibility_fprintf (void *closure) -+{ -+ /* This call should abort. */ -+ fprintf_ptr (shared->fp, " "); -+ _exit (1); -+} -+ -+static void -+without_compatibility_fputc (void *closure) -+{ -+ /* This call should abort. */ -+ fputc (' ', shared->fp); -+ _exit (1); -+} -+ -+static void -+without_compatibility_fgetc (void *closure) -+{ -+ /* This call should abort. */ -+ fgetc (shared->fp); -+ _exit (1); -+} -+ -+static void -+without_compatibility_fflush (void *closure) -+{ -+ /* This call should abort. */ -+ fflush (shared->fp); -+ _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 *)) -+{ -+ struct my_file file = my_file_create (); -+ shared->fp = &file.f; -+ shared->return_value = -1; -+ shared->calls = 0; -+ struct support_capture_subprocess proc -+ = support_capture_subprocess (callback, NULL); -+ support_capture_subprocess_check (&proc, name, termination_status, -+ sc_allow_stderr); -+ const char *message -+ = "Fatal error: glibc detected an invalid stdio handle\n"; -+ TEST_COMPARE_BLOB (proc.err.buffer, proc.err.length, -+ message, strlen (message)); -+ TEST_COMPARE (shared->calls, 0); -+ support_capture_subprocess_free (&proc); -+} -+ -+/* The test with vtable validation disabled. */ -+ -+/* This function does not have a prototype in libioP.h to prevent -+ accidental use from within the library (which would disable vtable -+ verification). */ -+void _IO_init (FILE *fp, int flags); -+ -+static void -+with_compatibility_fprintf (void *closure) -+{ -+ TEST_COMPARE (fprintf_ptr (shared->fp, "A%sCD", "B"), 4); -+ TEST_COMPARE (shared->calls, 3); -+ TEST_COMPARE (shared->calls_xsputn, 3); -+ TEST_COMPARE_BLOB (shared->buffer, shared->buffer_length, -+ "CD", 2); -+} -+ -+static void -+with_compatibility_fputc (void *closure) -+{ -+ shared->return_value = '@'; -+ TEST_COMPARE (fputc ('@', shared->fp), '@'); -+ TEST_COMPARE (shared->calls, 1); -+ TEST_COMPARE (shared->calls_overflow, 1); -+ TEST_COMPARE (shared->value, '@'); -+} -+ -+static void -+with_compatibility_fgetc (void *closure) -+{ -+ shared->return_value = 'X'; -+ TEST_COMPARE (fgetc (shared->fp), 'X'); -+ TEST_COMPARE (shared->calls, 1); -+ TEST_COMPARE (shared->calls_uflow, 1); -+} -+ -+static void -+with_compatibility_fflush (void *closure) -+{ -+ TEST_COMPARE (fflush (shared->fp), 0); -+ TEST_COMPARE (shared->calls, 1); -+ TEST_COMPARE (shared->calls_sync, 1); -+} -+ -+/* Call CALLBACK in a subprocess, after setting up a custom file -+ object and updating shared->fp. */ -+static void -+check_call (const char *name, void (*callback) (void *), -+ bool initially_disabled) -+{ -+ *shared = (struct shared) -+ { -+ .initially_disabled = initially_disabled, -+ }; -+ -+ /* Set up a custom file object. */ -+ struct my_file file = my_file_create (); -+ shared->fp = &file.f; -+ if (shared->initially_disabled) -+ _IO_init (shared->fp, file.f._flags); -+ -+ if (test_verbose > 0) -+ printf ("info: calling test %s\n", name); -+ support_isolate_in_subprocess (callback, NULL); -+} -+ -+/* Run the tests. INITIALLY_DISABLED indicates whether custom vtables -+ are disabled when the test starts. */ -+static int -+run_tests (bool initially_disabled) -+{ -+ /* The test relies on fatal error messages being printed to standard -+ error. */ -+ setenv ("LIBC_FATAL_STDERR_", "1", 1); -+ -+ shared = support_shared_allocate (sizeof (*shared)); -+ shared->initially_disabled = initially_disabled; -+ init_termination_status (); -+ -+ if (initially_disabled) -+ { -+ check_for_termination ("fprintf", without_compatibility_fprintf); -+ check_for_termination ("fputc", without_compatibility_fputc); -+ check_for_termination ("fgetc", without_compatibility_fgetc); -+ check_for_termination ("fflush", without_compatibility_fflush); -+ } -+ -+ check_call ("fprintf", with_compatibility_fprintf, initially_disabled); -+ check_call ("fputc", with_compatibility_fputc, initially_disabled); -+ check_call ("fgetc", with_compatibility_fgetc, initially_disabled); -+ check_call ("fflush", with_compatibility_fflush, initially_disabled); -+ -+ support_shared_free (shared); -+ shared = NULL; -+ -+ return 0; -+} -diff --git a/libio/tst-vtables-interposed.c b/libio/tst-vtables-interposed.c -new file mode 100644 -index 0000000000..c8f4e8c7c3 ---- /dev/null -+++ b/libio/tst-vtables-interposed.c -@@ -0,0 +1,37 @@ -+/* Test for libio vtables and their validation. Enabled through interposition. -+ 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 -+ . */ -+ -+/* Provide an interposed definition of the standard file handles with -+ our own vtable. stdout/stdin/stderr will not work as a result, but -+ a succesful test does not print anything, so this is fine. */ -+static const struct _IO_jump_t jumps; -+#define _IO_file_jumps jumps -+#include "stdfiles.c" -+ -+#include "tst-vtables-common.c" -+ -+static int -+do_test (void) -+{ -+ return run_tests (false); -+} -+ -+/* Calling setvbuf in the test driver is not supported with our -+ interposed file handles. */ -+#define TEST_NO_SETVBUF -+#include -diff --git a/libio/tst-vtables.c b/libio/tst-vtables.c -new file mode 100644 -index 0000000000..f16acf5d23 ---- /dev/null -+++ b/libio/tst-vtables.c -@@ -0,0 +1,29 @@ -+/* Test for libio vtables and their validation. Initially disabled case. -+ 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 -+ . */ -+ -+#include "libioP.h" -+ -+#include "tst-vtables-common.c" -+ -+static int -+do_test (void) -+{ -+ return run_tests (true); -+} -+ -+#include -diff --git a/libio/vasprintf.c b/libio/vasprintf.c -index 390a63d124..0bb217e46e 100644 ---- a/libio/vasprintf.c -+++ b/libio/vasprintf.c -@@ -54,8 +54,8 @@ _IO_vasprintf (char **result_ptr, const char *format, _IO_va_list args) - _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 = (_IO_alloc_type) malloc; -- sf._s._free_buffer = (_IO_free_type) free; -+ 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); - if (ret < 0) - { -diff --git a/libio/vtables.c b/libio/vtables.c -index 9fd4ccf642..9df75668c8 100644 ---- a/libio/vtables.c -+++ b/libio/vtables.c -@@ -71,3 +71,19 @@ _IO_vtable_check (void) - - __libc_fatal ("Fatal error: glibc detected an invalid stdio handle\n"); - } -+ -+/* Some variants of libstdc++ interpose _IO_2_1_stdin_ etc. and -+ install their own vtables directly, without calling _IO_init or -+ other functions. Detect this by looking at the vtables values -+ during startup, and disable vtable validation in this case. */ -+#ifdef SHARED -+__attribute__ ((constructor)) -+static void -+check_stdfiles_vtables (void) -+{ -+ if (_IO_2_1_stdin_.vtable != &_IO_file_jumps -+ || _IO_2_1_stdout_.vtable != &_IO_file_jumps -+ || _IO_2_1_stderr_.vtable != &_IO_file_jumps) -+ IO_set_accept_foreign_vtables (&_IO_vtable_check); -+} -+#endif -diff --git a/libio/wmemstream.c b/libio/wmemstream.c -index c962071d26..f4c6e75246 100644 ---- a/libio/wmemstream.c -+++ b/libio/wmemstream.c -@@ -92,8 +92,8 @@ open_wmemstream (wchar_t **bufloc, _IO_size_t *sizeloc) - _IO_wstr_init_static (&new_f->fp._sf._sbf._f, buf, - _IO_BUFSIZ / sizeof (wchar_t), buf); - new_f->fp._sf._sbf._f._flags2 &= ~_IO_FLAGS2_USER_WBUF; -- new_f->fp._sf._s._allocate_buffer = (_IO_alloc_type) malloc; -- new_f->fp._sf._s._free_buffer = (_IO_free_type) free; -+ new_f->fp._sf._s._allocate_buffer_unused = (_IO_alloc_type) malloc; -+ new_f->fp._sf._s._free_buffer_unused = (_IO_free_type) free; - - new_f->fp.bufloc = bufloc; - new_f->fp.sizeloc = sizeloc; -diff --git a/libio/wstrops.c b/libio/wstrops.c -index a3374a7b15..0839a70bfb 100644 ---- a/libio/wstrops.c -+++ b/libio/wstrops.c -@@ -63,7 +63,7 @@ _IO_wstr_init_static (_IO_FILE *fp, wchar_t *ptr, _IO_size_t size, - fp->_wide_data->_IO_read_end = end; - } - /* A null _allocate_buffer function flags the strfile as being static. */ -- (((_IO_strfile *) fp)->_s._allocate_buffer) = (_IO_alloc_type)0; -+ (((_IO_strfile *) fp)->_s._allocate_buffer_unused) = (_IO_alloc_type)0; - } - - _IO_wint_t -@@ -95,9 +95,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c) - || __glibc_unlikely (new_size > SIZE_MAX / sizeof (wchar_t))) - return EOF; - -- new_buf -- = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (new_size -- * sizeof (wchar_t)); -+ new_buf = malloc (new_size * sizeof (wchar_t)); - if (new_buf == NULL) - { - /* __ferror(fp) = 1; */ -@@ -106,7 +104,7 @@ _IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c) - if (old_buf) - { - __wmemcpy (new_buf, old_buf, old_wblen); -- (*((_IO_strfile *) fp)->_s._free_buffer) (old_buf); -+ free (old_buf); - /* Make sure _IO_setb won't try to delete _IO_buf_base. */ - fp->_wide_data->_IO_buf_base = NULL; - } -@@ -186,16 +184,14 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading) - return 1; - - wchar_t *oldbuf = wd->_IO_buf_base; -- wchar_t *newbuf -- = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (newsize -- * sizeof (wchar_t)); -+ wchar_t *newbuf = malloc (newsize * sizeof (wchar_t)); - if (newbuf == NULL) - return 1; - - if (oldbuf != NULL) - { - __wmemcpy (newbuf, oldbuf, _IO_wblen (fp)); -- (*((_IO_strfile *) fp)->_s._free_buffer) (oldbuf); -+ free (oldbuf); - /* Make sure _IO_setb won't try to delete - _IO_buf_base. */ - wd->_IO_buf_base = NULL; -@@ -357,7 +353,7 @@ void - _IO_wstr_finish (_IO_FILE *fp, int dummy) - { - if (fp->_wide_data->_IO_buf_base && !(fp->_flags2 & _IO_FLAGS2_USER_WBUF)) -- (((_IO_strfile *) fp)->_s._free_buffer) (fp->_wide_data->_IO_buf_base); -+ free (fp->_wide_data->_IO_buf_base); - fp->_wide_data->_IO_buf_base = NULL; - - _IO_wdefault_finish (fp, 0); -diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES -index 914c066dab..f0d744d537 100644 ---- a/localedata/locales/ca_ES -+++ b/localedata/locales/ca_ES -@@ -106,36 +106,67 @@ grouping 0;0 - END LC_NUMERIC - - LC_TIME --abday "dg";"dl";"dt";"dc";"dj";"dv";"ds" --day "diumenge";/ -- "dilluns";/ -- "dimarts";/ -- "dimecres";/ -- "dijous";/ -- "divendres";/ -- "dissabte" --abmon "gen";"feb";/ -- "mar";"abr";/ -- "mai";"jun";/ -- "jul";"ago";/ -- "set";"oct";/ -- "nov";"des" --mon "gener";/ -- "febrer";/ -- "mar";/ -- "abril";/ -- "maig";/ -- "juny";/ -- "juliol";/ -- "agost";/ -- "setembre";/ -- "octubre";/ -- "novembre";/ -- "desembre" --d_t_fmt "%a %d %b %Y %T %Z" --d_fmt "%d//%m//%y" --t_fmt "%T" --am_pm "";"" -+abday "dg.";"dl.";"dt.";"dc.";"dj.";"dv.";"ds." -+day "diumenge";/ -+ "dilluns";/ -+ "dimarts";/ -+ "dimecres";/ -+ "dijous";/ -+ "divendres";/ -+ "dissabte" -+ab_alt_mon "gen.";/ -+ "febr.";/ -+ "mar";/ -+ "abr.";/ -+ "maig";/ -+ "juny";/ -+ "jul.";/ -+ "ag.";/ -+ "set.";/ -+ "oct.";/ -+ "nov.";/ -+ "des." -+abmon "de gen.";/ -+ "de febr.";/ -+ "de mar";/ -+ "dabr.";/ -+ "de maig";/ -+ "de juny";/ -+ "de jul.";/ -+ "dag.";/ -+ "de set.";/ -+ "doct.";/ -+ "de nov.";/ -+ "de des." -+alt_mon "gener";/ -+ "febrer";/ -+ "mar";/ -+ "abril";/ -+ "maig";/ -+ "juny";/ -+ "juliol";/ -+ "agost";/ -+ "setembre";/ -+ "octubre";/ -+ "novembre";/ -+ "desembre" -+mon "de gener";/ -+ "de febrer";/ -+ "de mar";/ -+ "dabril";/ -+ "de maig";/ -+ "de juny";/ -+ "de juliol";/ -+ "dagost";/ -+ "de setembre";/ -+ "doctubre";/ -+ "de novembre";/ -+ "de desembre" -+d_t_fmt "%A, %-d %B de %Y, %T %Z" -+d_fmt "%-d//%-m//%y" -+t_fmt "%T" -+am_pm "a. m.";/ -+ "p. m." - t_fmt_ampm "" - week 7;19971130;4 - first_weekday 2 -@@ -146,9 +177,9 @@ copy "i18n" - END LC_PAPER - - LC_TELEPHONE --tel_int_fmt "+%c %a %l" --int_prefix "34" --int_select "00" -+tel_int_fmt "+%c %a %l" -+int_prefix "34" -+int_select "00" - END LC_TELEPHONE - - LC_MEASUREMENT -@@ -156,19 +187,19 @@ copy "i18n" - END LC_MEASUREMENT - - LC_NAME --name_fmt "%d%t%g%t%m%t%f" -+name_fmt "%d%t%g%t%m%t%f" - 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" -+postal_fmt "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N" - country_name "Espanya" --country_ab2 "ES" --country_ab3 "ESP" --country_num 724 --country_car "E" -+country_ab2 "ES" -+country_ab3 "ESP" -+country_num 724 -+country_car "E" - % català - lang_name "catal" - lang_ab "ca" - lang_term "cat" --lang_lib "cat" -+lang_lib "cat" - END LC_ADDRESS -diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ -index f80d3e1b37..8f4c69e493 100644 ---- a/localedata/locales/cs_CZ -+++ b/localedata/locales/cs_CZ -@@ -272,7 +272,7 @@ day "Nedle";/ - "Ptek";/ - "Sobota" - --mon "leden";/ -+alt_mon "leden";/ - "nor";/ - "bezen";/ - "duben";/ -@@ -334,6 +334,19 @@ abmon "led";/ - % "Nov";/ - % "Dec" - -+mon "ledna";/ -+ "nora";/ -+ "bezna";/ -+ "dubna";/ -+ "kvtna";/ -+ "ervna";/ -+ "ervence";/ -+ "srpna";/ -+ "z";/ -+ "jna";/ -+ "listopadu";/ -+ "prosince" -+ - week 7;19971130;4 - first_weekday 2 - -diff --git a/localedata/locales/el_CY b/localedata/locales/el_CY -index f27a74bb76..28055f335b 100644 ---- a/localedata/locales/el_CY -+++ b/localedata/locales/el_CY -@@ -72,12 +72,18 @@ day "";/ - "";/ - "";/ - "" --abmon "";"";/ -+ab_alt_mon "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"" -+abmon "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"" - alt_mon "";/ - "";/ - "";/ -diff --git a/localedata/locales/el_GR b/localedata/locales/el_GR -index a82ef8c6d9..7362492fbd 100644 ---- a/localedata/locales/el_GR -+++ b/localedata/locales/el_GR -@@ -104,12 +104,18 @@ day "";/ - "";/ - "";/ - "" --abmon "";"";/ -+ab_alt_mon "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"" -+abmon "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"";/ -+ "";"" - alt_mon "";/ - "";/ - "";/ -diff --git a/localedata/locales/es_BO b/localedata/locales/es_BO -index 4202c5a0cf..5b6c6e2312 100644 ---- a/localedata/locales/es_BO -+++ b/localedata/locales/es_BO -@@ -124,7 +124,7 @@ first_weekday 2 - END LC_TIME - - LC_PAPER --copy "i18n" -+copy "en_US" - END LC_PAPER - - LC_TELEPHONE -diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE -index 9cb55b568f..bab7493c98 100644 ---- a/localedata/locales/et_EE -+++ b/localedata/locales/et_EE -@@ -103,6 +103,8 @@ reorder-after - ;;;IGNORE % ü - ;;;IGNORE % Ü - -+reorder-end -+ - END LC_COLLATE - - LC_CTYPE -diff --git a/localedata/locales/gd_GB b/localedata/locales/gd_GB -index 676ee940c9..77d11e5977 100644 ---- a/localedata/locales/gd_GB -+++ b/localedata/locales/gd_GB -@@ -66,12 +66,12 @@ mon "Am Faoilleach";/ - "An Dmhair";/ - "An t-Samhain";/ - "An Dbhlachd" --% Faoi, Gearr, Màrt, Gibl, Mhàrt, Ògmh, Iuch, Lùna, Sult, Dàmh, Samh, Dùbh -+% Faoi, Gearr, Màrt, Gibl, Cèit, Ògmh, Iuch, Lùna, Sult, Dàmh, Samh, Dùbh - abmon "Faoi";/ - "Gearr";/ - "Mrt";/ - "Gibl";/ -- "Mhrt";/ -+ "Cit";/ - "gmh";/ - "Iuch";/ - "Lna";/ -diff --git a/localedata/locales/lt_LT b/localedata/locales/lt_LT -index c935fcf75e..bec67726e9 100644 ---- a/localedata/locales/lt_LT -+++ b/localedata/locales/lt_LT -@@ -201,12 +201,12 @@ day "Sekmadienis";/ - "Ketvirtadienis";/ - "Penktadienis";/ - "etadienis" --abmon "Sau";"Vas";/ -- "Kov";"Bal";/ -- "Geg";"Bir";/ -- "Lie";"Rgp";/ -- "Rgs";"Spa";/ -- "Lap";"Grd" -+abmon "saus.";"vas.";/ -+ "kov.";"bal.";/ -+ "geg.";"bir.";/ -+ "liep.";"rugp.";/ -+ "rugs.";"spal.";/ -+ "lapkr.";"gruod." - alt_mon "sausis";/ - "vasaris";/ - "kovas";/ -diff --git a/manual/charset.texi b/manual/charset.texi -index 1867ace485..f6a980f6cb 100644 ---- a/manual/charset.texi -+++ b/manual/charset.texi -@@ -643,8 +643,8 @@ and they also do not require it to be in the initial state. - @cindex stateful - The @code{mbrtowc} function (``multibyte restartable to wide - character'') converts the next multibyte character in the string pointed --to by @var{s} into a wide character and stores it in the wide character --string pointed to by @var{pwc}. The conversion is performed according -+to by @var{s} into a wide character and stores it in the location -+pointed to by @var{pwc}. The conversion is performed according - to the locale currently selected for the @code{LC_CTYPE} category. If - the conversion for the character set used in the locale requires a state, - the multibyte string is interpreted in the state represented by the -@@ -652,7 +652,7 @@ object pointed to by @var{ps}. If @var{ps} is a null pointer, a static, - internal state variable used only by the @code{mbrtowc} function is - used. - --If the next multibyte character corresponds to the NUL wide character, -+If the next multibyte character corresponds to the null wide character, - the return value of the function is @math{0} and the state object is - afterwards in the initial state. If the next @var{n} or fewer bytes - form a correct multibyte character, the return value is the number of -@@ -665,71 +665,59 @@ by @var{pwc} if @var{pwc} is not null. - If the first @var{n} bytes of the multibyte string possibly form a valid - multibyte character but there are more than @var{n} bytes needed to - complete it, the return value of the function is @code{(size_t) -2} and --no value is stored. Please note that this can happen even if @var{n} --has a value greater than or equal to @code{MB_CUR_MAX} since the input --might contain redundant shift sequences. -+no value is stored in @code{*@var{pwc}}. The conversion state is -+updated and all @var{n} input bytes are consumed and should not be -+submitted again. Please note that this can happen even if @var{n} has a -+value greater than or equal to @code{MB_CUR_MAX} since the input might -+contain redundant shift sequences. - - If the first @code{n} bytes of the multibyte string cannot possibly form - a valid multibyte character, no value is stored, the global variable - @code{errno} is set to the value @code{EILSEQ}, and the function returns - @code{(size_t) -1}. The conversion state is afterwards undefined. - -+As specified, the @code{mbrtowc} function could deal with multibyte -+sequences which contain embedded null bytes (which happens in Unicode -+encodings such as UTF-16), but @theglibc{} does not support such -+multibyte encodings. When encountering a null input byte, the function -+will either return zero, or return @code{(size_t) -1)} and report a -+@code{EILSEQ} error. The @code{iconv} function can be used for -+converting between arbitrary encodings. @xref{Generic Conversion -+Interface}. -+ - @pindex wchar.h - @code{mbrtowc} was introduced in @w{Amendment 1} to @w{ISO C90} and - is declared in @file{wchar.h}. - @end deftypefun - --Use of @code{mbrtowc} is straightforward. A function that copies a --multibyte string into a wide character string while at the same time --converting all lowercase characters into uppercase could look like this --(this is not the final version, just an example; it has no error --checking, and sometimes leaks memory): -+A function that copies a multibyte string into a wide character string -+while at the same time converting all lowercase characters into -+uppercase could look like this: - - @smallexample --wchar_t * --mbstouwcs (const char *s) --@{ -- size_t len = strlen (s); -- wchar_t *result = malloc ((len + 1) * sizeof (wchar_t)); -- wchar_t *wcp = result; -- wchar_t tmp[1]; -- mbstate_t state; -- size_t nbytes; -- -- memset (&state, '\0', sizeof (state)); -- while ((nbytes = mbrtowc (tmp, s, len, &state)) > 0) -- @{ -- if (nbytes >= (size_t) -2) -- /* Invalid input string. */ -- return NULL; -- *wcp++ = towupper (tmp[0]); -- len -= nbytes; -- s += nbytes; -- @} -- return result; --@} -+@include mbstouwcs.c.texi - @end smallexample - --The use of @code{mbrtowc} should be clear. A single wide character is --stored in @code{@var{tmp}[0]}, and the number of consumed bytes is stored --in the variable @var{nbytes}. If the conversion is successful, the --uppercase variant of the wide character is stored in the @var{result} --array and the pointer to the input string and the number of available --bytes is adjusted. -- --The only non-obvious thing about @code{mbrtowc} might be the way memory --is allocated for the result. The above code uses the fact that there --can never be more wide characters in the converted result than there are --bytes in the multibyte input string. This method yields a pessimistic --guess about the size of the result, and if many wide character strings --have to be constructed this way or if the strings are long, the extra --memory required to be allocated because the input string contains --multibyte characters might be significant. The allocated memory block can --be resized to the correct size before returning it, but a better solution --might be to allocate just the right amount of space for the result right --away. Unfortunately there is no function to compute the length of the wide --character string directly from the multibyte string. There is, however, a --function that does part of the work. -+In the inner loop, a single wide character is stored in @code{wc}, and -+the number of consumed bytes is stored in the variable @code{nbytes}. -+If the conversion is successful, the uppercase variant of the wide -+character is stored in the @code{result} array and the pointer to the -+input string and the number of available bytes is adjusted. If the -+@code{mbrtowc} function returns zero, the null input byte has not been -+converted, so it must be stored explicitly in the result. -+ -+The above code uses the fact that there can never be more wide -+characters in the converted result than there are bytes in the multibyte -+input string. This method yields a pessimistic guess about the size of -+the result, and if many wide character strings have to be constructed -+this way or if the strings are long, the extra memory required to be -+allocated because the input string contains multibyte characters might -+be significant. The allocated memory block can be resized to the -+correct size before returning it, but a better solution might be to -+allocate just the right amount of space for the result right away. -+Unfortunately there is no function to compute the length of the wide -+character string directly from the multibyte string. There is, however, -+a function that does part of the work. - - @deftypefun size_t mbrlen (const char *restrict @var{s}, size_t @var{n}, mbstate_t *@var{ps}) - @standards{ISO, wchar.h} -diff --git a/manual/creature.texi b/manual/creature.texi -index 96f8ee0a0c..fe7a7790a2 100644 ---- a/manual/creature.texi -+++ b/manual/creature.texi -@@ -8,7 +8,7 @@ is controlled by which @dfn{feature test macros} you define. - If you compile your programs using @samp{gcc -ansi}, you get only the - @w{ISO C} library features, unless you explicitly request additional - features by defining one or more of the feature macros. --@xref{Invoking GCC,, GNU CC Command Options, gcc.info, The GNU CC Manual}, -+@xref{Invoking GCC,, GNU CC Command Options, gcc, The GNU CC Manual}, - for more information about GCC options.@refill - - You should define these macros by using @samp{#define} preprocessor -@@ -61,13 +61,27 @@ If you define this macro to a value greater than or equal to @code{199309L}, - then the functionality from the 1993 edition of the POSIX.1b standard - (IEEE Standard 1003.1b-1993) is made available. - -+If you define this macro to a value greater than or equal to -+@code{199506L}, then the functionality from the 1995 edition of the -+POSIX.1c standard (IEEE Standard 1003.1c-1995) is made available. -+ -+If you define this macro to a value greater than or equal to -+@code{200112L}, then the functionality from the 2001 edition of the -+POSIX standard (IEEE Standard 1003.1-2001) is made available. -+ -+If you define this macro to a value greater than or equal to -+@code{200809L}, then the functionality from the 2008 edition of the -+POSIX standard (IEEE Standard 1003.1-2008) is made available. -+ - Greater values for @code{_POSIX_C_SOURCE} will enable future extensions. - The POSIX standards process will define these values as necessary, and - @theglibc{} should support them some time after they become standardized. - The 1996 edition of POSIX.1 (ISO/IEC 9945-1: 1996) states that - if you define @code{_POSIX_C_SOURCE} to a value greater than - or equal to @code{199506L}, then the functionality from the 1996 --edition is made available. -+edition is made available. In general, in @theglibc{}, bugfixes to -+the standards are included when specifying the base version; e.g., -+POSIX.1-2004 will always be included with a value of @code{200112L}. - @end defvr - - @defvr Macro _XOPEN_SOURCE -@@ -87,7 +101,10 @@ available which are necessary for the X/Open Unix brand. - - If the macro @code{_XOPEN_SOURCE} has the value @math{500} this includes - all functionality described so far plus some new definitions from the --Single Unix Specification, @w{version 2}. -+Single Unix Specification, @w{version 2}. The value @math{600} -+(corresponding to the sixth revision) includes definitions from SUSv3, -+and using @math{700} (the seventh revision) includes definitions from -+SUSv4. - @end defvr - - @defvr Macro _LARGEFILE_SOURCE -@@ -150,10 +167,14 @@ This macro was introduced as part of the Large File Support extension - - @defvr Macro _ISOC99_SOURCE - @standards{GNU, (none)} --Until the revised @w{ISO C} standard is widely adopted the new features --are not automatically enabled. @Theglibc{} nevertheless has a complete --implementation of the new standard and to enable the new features the --macro @code{_ISOC99_SOURCE} should be defined. -+If this macro is defined, features from ISO C99 are included. Since -+these features are included by default, this macro is mostly relevant -+when the compiler uses an earlier language version. -+@end defvr -+ -+@defvr Macro _ISOC11_SOURCE -+@standards{C11, (none)} -+If this macro is defined, ISO C11 extensions to ISO C99 are included. - @end defvr - - @defvr Macro __STDC_WANT_LIB_EXT2__ -@@ -209,6 +230,19 @@ enables those features even when the other options would otherwise - cause them to be disabled. - @end defvr - -+@defvr Macro _ATFILE_SOURCE -+@standards{GNU, (none)} -+If this macro is defined, additional @code{*at} interfaces are -+included. -+@end defvr -+ -+@defvr Macro _FORTIFY_SOURCE -+@standards{GNU, (none)} -+If this macro is defined to @math{1}, security hardening is added to -+various library functions. If defined to @math{2}, even stricter -+checks are applied. -+@end defvr -+ - @defvr Macro _REENTRANT - @defvrx Macro _THREAD_SAFE - @standards{Obsolete, (none)} -diff --git a/manual/examples/mbstouwcs.c b/manual/examples/mbstouwcs.c -new file mode 100644 -index 0000000000..c94e1fa790 ---- /dev/null -+++ b/manual/examples/mbstouwcs.c -@@ -0,0 +1,53 @@ -+#include -+#include -+#include -+#include -+ -+/* Do not include the above headers in the example. -+*/ -+wchar_t * -+mbstouwcs (const char *s) -+{ -+ /* Include the null terminator in the conversion. */ -+ size_t len = strlen (s) + 1; -+ wchar_t *result = reallocarray (NULL, len, sizeof (wchar_t)); -+ if (result == NULL) -+ return NULL; -+ -+ wchar_t *wcp = result; -+ mbstate_t state; -+ memset (&state, '\0', sizeof (state)); -+ -+ while (true) -+ { -+ wchar_t wc; -+ size_t nbytes = mbrtowc (&wc, s, len, &state); -+ if (nbytes == 0) -+ { -+ /* Terminate the result string. */ -+ *wcp = L'\0'; -+ break; -+ } -+ else if (nbytes == (size_t) -2) -+ { -+ /* Truncated input string. */ -+ errno = EILSEQ; -+ free (result); -+ return NULL; -+ } -+ else if (nbytes == (size_t) -1) -+ { -+ /* Some other error (including EILSEQ). */ -+ free (result); -+ return NULL; -+ } -+ else -+ { -+ /* A character was converted. */ -+ *wcp++ = towupper (wc); -+ len -= nbytes; -+ s += nbytes; -+ } -+ } -+ return result; -+} -diff --git a/manual/filesys.texi b/manual/filesys.texi -index ca77996902..cc70a6b7ee 100644 ---- a/manual/filesys.texi -+++ b/manual/filesys.texi -@@ -147,19 +147,20 @@ necessarily enough space to contain the directory name. That is why - this function is deprecated. - @end deftypefn - -+@vindex PWD - @deftypefun {char *} get_current_dir_name (void) - @standards{GNU, unistd.h} - @safety{@prelim{}@mtsafe{@mtsenv{}}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{} @acsfd{}}} - @c Besides getcwd, which this function calls as a fallback, it calls - @c getenv, with the potential thread-safety issues that brings about. --@vindex PWD --This @code{get_current_dir_name} function is basically equivalent to --@w{@code{getcwd (NULL, 0)}}. The only difference is that the value of --the @code{PWD} variable is returned if this value is correct. This is a --subtle difference which is visible if the path described by the --@code{PWD} value is using one or more symbol links in which case the --value returned by @code{getcwd} can resolve the symbol links and --therefore yield a different result. -+The @code{get_current_dir_name} function is basically equivalent to -+@w{@code{getcwd (NULL, 0)}}, except the value of the @env{PWD} -+environment variable is first examined, and if it does in fact -+correspond to the current directory, that value is returned. This is -+a subtle difference which is visible if the path described by the -+value in @env{PWD} is using one or more symbolic links, in which case -+the value returned by @code{getcwd} would resolve the symbolic links -+and therefore yield a different result. - - This function is a GNU extension. - @end deftypefun -diff --git a/manual/llio.texi b/manual/llio.texi -index 642e56e710..82f03be2be 100644 ---- a/manual/llio.texi -+++ b/manual/llio.texi -@@ -1251,9 +1251,13 @@ When the source file is compiled using @code{_FILE_OFFSET_BITS == 64} on a - @c This is a syscall for Linux v4.6. The sysdeps/posix fallback emulation - @c is also MT-Safe since it calls preadv. - --This function is similar to the @code{preadv} function, with the difference --it adds an extra @var{flags} parameter of type @code{int}. The supported --@var{flags} are dependent of the underlying system. For Linux it supports: -+This function is similar to the @code{preadv} function, with the -+difference it adds an extra @var{flags} parameter of type @code{int}. -+Additionally, if @var{offset} is @math{-1}, the current file position -+is used and updated (like the @code{readv} function). -+ -+The supported @var{flags} are dependent of the underlying system. For -+Linux it supports: - - @vtable @code - @item RWF_HIPRI -@@ -1271,6 +1275,9 @@ Per-IO synchronization as if the file was opened with @code{O_SYNC} flag. - @item RWF_NOWAIT - Use nonblocking mode for this operation; that is, this call to @code{preadv2} - will fail and set @code{errno} to @code{EAGAIN} if the operation would block. -+ -+@item RWF_APPEND -+Per-IO synchronization as if the file was opened with @code{O_APPEND} flag. - @end vtable - - When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the -@@ -1320,10 +1327,13 @@ When the source file is compiled using @code{_FILE_OFFSET_BITS == 64} on a - @c This is a syscall for Linux v4.6. The sysdeps/posix fallback emulation - @c is also MT-Safe since it calls pwritev. - --This function is similar to the @code{pwritev} function, with the difference --it adds an extra @var{flags} parameter of type @code{int}. The supported --@var{flags} are dependent of the underlying system and for Linux it supports --the same ones as for @code{preadv2}. -+This function is similar to the @code{pwritev} function, with the -+difference it adds an extra @var{flags} parameter of type @code{int}. -+Additionally, if @var{offset} is @math{-1}, the current file position -+should is used and updated (like the @code{writev} function). -+ -+The supported @var{flags} are dependent of the underlying system. For -+Linux, the supported flags are the same as those for @code{preadv2}. - - When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the - @code{pwritev2} function is in fact @code{pwritev64v2} and the type -diff --git a/manual/platform.texi b/manual/platform.texi -index b8721a0712..504addc956 100644 ---- a/manual/platform.texi -+++ b/manual/platform.texi -@@ -123,7 +123,7 @@ when it is not allowed, the priority is set to medium. - Cache management facilities specific to RISC-V systems that implement the Linux - ABI are declared in @file{sys/cachectl.h}. - --@deftypefun {void} __riscv_flush_icache(void *@var{start}, void *@var{end}, unsigned long int @var{flags}) -+@deftypefun {void} __riscv_flush_icache (void *@var{start}, void *@var{end}, unsigned long int @var{flags}) - @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} - Enforce ordering between stores and instruction cache fetches. The range of - addresses over which ordering is enforced is specified by @var{start} and -diff --git a/manual/stdio.texi b/manual/stdio.texi -index 5d7b50c442..38be236991 100644 ---- a/manual/stdio.texi -+++ b/manual/stdio.texi -@@ -1808,7 +1808,7 @@ verifies that the correct number and types of arguments are supplied. - There is also a GNU C syntax to tell the compiler that a function you - write uses a @code{printf}-style format string. - @xref{Function Attributes, , Declaring Attributes of Functions, --gcc.info, Using GNU CC}, for more information. -+gcc, Using GNU CC}, for more information. - - @node Table of Output Conversions - @subsection Table of Output Conversions -@@ -2730,7 +2730,7 @@ This tells the compiler that @code{eprintf} uses a format string like - the format string appears as the first argument; - and the arguments to satisfy the format begin with the second. - @xref{Function Attributes, , Declaring Attributes of Functions, --gcc.info, Using GNU CC}, for more information. -+gcc, Using GNU CC}, for more information. - - @node Parsing a Template String - @subsection Parsing a Template String -@@ -3478,7 +3478,7 @@ verifies that the correct number and types of arguments are supplied. - There is also a GNU C syntax to tell the compiler that a function you - write uses a @code{scanf}-style format string. - @xref{Function Attributes, , Declaring Attributes of Functions, --gcc.info, Using GNU CC}, for more information. -+gcc, Using GNU CC}, for more information. - - @node Table of Input Conversions - @subsection Table of Input Conversions -@@ -4033,7 +4033,7 @@ know that a function uses a @code{scanf}-style format string. Then it - can check the number and types of arguments in each call to the - function, and warn you when they do not match the format string. - For details, see @ref{Function Attributes, , Declaring Attributes of Functions, --gcc.info, Using GNU CC}. -+gcc, Using GNU CC}. - - @node EOF and Errors - @section End-Of-File and Errors -diff --git a/manual/string.texi b/manual/string.texi -index ac02c6d85e..b07cfb4550 100644 ---- a/manual/string.texi -+++ b/manual/string.texi -@@ -1087,7 +1087,7 @@ are often easier and safer automatic techniques that cause buffer - overruns to reliably terminate a program, such as GCC's - @option{-fcheck-pointer-bounds} and @option{-fsanitize=address} - options. @xref{Debugging Options,, Options for Debugging Your Program --or GCC, gcc.info, Using GCC}. Because truncation functions can mask -+or GCC, gcc, Using GCC}. Because truncation functions can mask - application bugs that would otherwise be caught by the automatic - techniques, these functions should be used only when the application's - underlying logic requires truncation. -diff --git a/math/math.h b/math/math.h -index 3c515f817f..0fcbd91366 100644 ---- a/math/math.h -+++ b/math/math.h -@@ -1223,7 +1223,7 @@ template<> struct __iseqsig_type - - template<> struct __iseqsig_type - { -- static int __call (double __x, double __y) throw () -+ static int __call (long double __x, long double __y) throw () - { - # ifndef __NO_LONG_DOUBLE_MATH - return __iseqsigl (__x, __y); -diff --git a/misc/tst-preadvwritev-common.c b/misc/tst-preadvwritev-common.c -index 560c8f89b6..b59a3de465 100644 ---- a/misc/tst-preadvwritev-common.c -+++ b/misc/tst-preadvwritev-common.c -@@ -16,6 +16,7 @@ - License along with the GNU C Library; if not, see - . */ - -+#include - #include - #include - #include -@@ -25,6 +26,7 @@ - - #include - #include -+#include - - static char *temp_filename; - static int temp_fd; -@@ -50,6 +52,42 @@ do_prepare (int argc, char **argv) - pwritev (__fd, __iov, __iovcnt, __offset) - #endif - -+static __attribute__ ((unused)) void -+do_test_without_offset (void) -+{ -+ xftruncate (temp_fd, 0); -+ -+ xwrite (temp_fd, "123", 3); -+ xlseek (temp_fd, 2, SEEK_SET); -+ { -+ struct iovec iov[] = -+ { -+ { (void *) "abc", 3 }, -+ { (void *) "xyzt", 4 }, -+ }; -+ TEST_COMPARE (PWRITEV (temp_fd, iov, array_length (iov), -1), 7); -+ } -+ TEST_COMPARE (xlseek (temp_fd, 0, SEEK_CUR), 9); -+ -+ xlseek (temp_fd, 1, SEEK_SET); -+ char buf1[3]; -+ char buf2[2]; -+ { -+ struct iovec iov[] = -+ { -+ { buf1, sizeof (buf1) }, -+ { buf2, sizeof (buf2) }, -+ }; -+ TEST_COMPARE (PREADV (temp_fd, iov, array_length (iov), -1), -+ sizeof (buf1) + sizeof (buf2)); -+ TEST_COMPARE (memcmp ("2ab", buf1, sizeof (buf1)), 0); -+ TEST_COMPARE (memcmp ("cx", buf2, sizeof (buf2)), 0); -+ TEST_COMPARE (xlseek (temp_fd, 0, SEEK_CUR), 6); -+ } -+ -+ xftruncate (temp_fd, 0); -+} -+ - static int - do_test_with_offset (off_t offset) - { -diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c -index 89fd0a3ff5..50b9da3fea 100644 ---- a/misc/tst-preadvwritev2-common.c -+++ b/misc/tst-preadvwritev2-common.c -@@ -19,9 +19,6 @@ - #include - #include - --static void --do_test_with_invalid_flags (void) --{ - #ifndef RWF_HIPRI - # define RWF_HIPRI 0 - #endif -@@ -34,7 +31,73 @@ do_test_with_invalid_flags (void) - #ifndef RWF_NOWAIT - # define RWF_NOWAIT 0 - #endif --#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT) -+#ifndef RWF_APPEND -+# define RWF_APPEND 0 -+#endif -+#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT \ -+ | RWF_APPEND) -+ -+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 d8a9daf66a..cb58cbe41e 100644 ---- a/misc/tst-preadvwritev2.c -+++ b/misc/tst-preadvwritev2.c -@@ -29,6 +29,9 @@ static int - 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-preadvwritev64v2.c b/misc/tst-preadvwritev64v2.c -index 2c656ae3d7..6a9de54c78 100644 ---- a/misc/tst-preadvwritev64v2.c -+++ b/misc/tst-preadvwritev64v2.c -@@ -31,6 +31,9 @@ static int - 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/nptl/Makefile b/nptl/Makefile -index 6fc2c8bb6a..a3447addea 100644 ---- a/nptl/Makefile -+++ b/nptl/Makefile -@@ -235,9 +235,9 @@ 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-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 \ -@@ -730,6 +730,8 @@ $(objpfx)tst-compat-forwarder: $(objpfx)tst-compat-forwarder-mod.so - # destroying a mutex. - tst-mutex8-ENV = GLIBC_TUNABLES=glibc.elision.enable=0 - -+tst-mutex10-ENV = GLIBC_TUNABLES=glibc.elision.enable=1 -+ - # The tests here better do not run in parallel - ifneq ($(filter %tests,$(MAKECMDGOALS)),) - .NOTPARALLEL: -diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h -index 583515ff48..ff51f452c6 100644 ---- a/nptl/pthreadP.h -+++ b/nptl/pthreadP.h -@@ -110,19 +110,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 -diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c -index 8e425eb01e..479e54febb 100644 ---- a/nptl/pthread_cond_common.c -+++ b/nptl/pthread_cond_common.c -@@ -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_mutex_consistent.c b/nptl/pthread_mutex_consistent.c -index 85b8e1a6cb..4fbd875430 100644 ---- a/nptl/pthread_mutex_consistent.c -+++ b/nptl/pthread_mutex_consistent.c -@@ -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..713ea68496 100644 ---- a/nptl/pthread_mutex_destroy.c -+++ b/nptl/pthread_mutex_destroy.c -@@ -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..ee85949578 100644 ---- a/nptl/pthread_mutex_getprioceiling.c -+++ b/nptl/pthread_mutex_getprioceiling.c -@@ -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..5cf290c272 100644 ---- a/nptl/pthread_mutex_init.c -+++ b/nptl/pthread_mutex_init.c -@@ -101,7 +101,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 +111,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 +145,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..29cc143e6c 100644 ---- a/nptl/pthread_mutex_lock.c -+++ b/nptl/pthread_mutex_lock.c -@@ -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); -@@ -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) - { -@@ -502,7 +510,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 +618,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..8306cabcf4 100644 ---- a/nptl/pthread_mutex_setprioceiling.c -+++ b/nptl/pthread_mutex_setprioceiling.c -@@ -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 66efd3989f..40b559f517 100644 ---- a/nptl/pthread_mutex_timedlock.c -+++ b/nptl/pthread_mutex_timedlock.c -@@ -53,6 +53,8 @@ __pthread_mutex_timedlock (pthread_mutex_t *mutex, - /* 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)) - { -@@ -338,8 +340,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) - { -@@ -509,7 +517,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; - -diff --git a/nptl/pthread_mutex_trylock.c b/nptl/pthread_mutex_trylock.c -index 7de61f4f68..fa90c1d1e6 100644 ---- a/nptl/pthread_mutex_trylock.c -+++ b/nptl/pthread_mutex_trylock.c -@@ -36,6 +36,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)) - { -@@ -199,8 +201,14 @@ __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. */ -@@ -325,7 +333,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..68d04d5395 100644 ---- a/nptl/pthread_mutex_unlock.c -+++ b/nptl/pthread_mutex_unlock.c -@@ -35,6 +35,8 @@ 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)) -@@ -222,13 +224,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 +259,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)); -diff --git a/nptl/tst-mutex10.c b/nptl/tst-mutex10.c -new file mode 100644 -index 0000000000..e1113ca60a ---- /dev/null -+++ b/nptl/tst-mutex10.c -@@ -0,0 +1,109 @@ -+/* Testing race while enabling lock elision. -+ 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 -+ . */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+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 -diff --git a/nscd/gai.c b/nscd/gai.c -index d081747797..576fd0045b 100644 ---- a/nscd/gai.c -+++ b/nscd/gai.c -@@ -45,3 +45,6 @@ - #ifdef HAVE_LIBIDN - # include - #endif -+ -+/* Some variables normally defined in libc. */ -+service_user *__nss_hosts_database attribute_hidden; -diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c -index b832c9315f..2f187b208c 100644 ---- a/nscd/netgroupcache.c -+++ b/nscd/netgroupcache.c -@@ -480,7 +480,7 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req, - { - const char *group = key; - key = (char *) rawmemchr (key, '\0') + 1; -- size_t group_len = key - group - 1; -+ size_t group_len = key - group; - const char *host = *key++ ? key : NULL; - if (host != NULL) - key = (char *) rawmemchr (key, '\0') + 1; -diff --git a/nss/nsswitch.c b/nss/nsswitch.c -index d5e655974f..b0f0c11a3e 100644 ---- a/nss/nsswitch.c -+++ b/nss/nsswitch.c -@@ -62,7 +62,7 @@ static service_library *nss_new_service (name_database *database, - - /* Declare external database variables. */ - #define DEFINE_DATABASE(name) \ -- extern service_user *__nss_##name##_database attribute_hidden; \ -+ service_user *__nss_##name##_database attribute_hidden; \ - weak_extern (__nss_##name##_database) - #include "databases.def" - #undef DEFINE_DATABASE -diff --git a/nss/nsswitch.h b/nss/nsswitch.h -index eccb535ef5..63573b9ebc 100644 ---- a/nss/nsswitch.h -+++ b/nss/nsswitch.h -@@ -226,10 +226,10 @@ libc_hidden_proto (__nss_hostname_digits_dots) - #define MAX_NR_ADDRS 48 - - /* Prototypes for __nss_*_lookup2 functions. */ --#define DEFINE_DATABASE(arg) \ -- service_user *__nss_##arg##_database attribute_hidden; \ -- int __nss_##arg##_lookup2 (service_user **, const char *, \ -- const char *, void **); \ -+#define DEFINE_DATABASE(arg) \ -+ extern service_user *__nss_##arg##_database attribute_hidden; \ -+ int __nss_##arg##_lookup2 (service_user **, const char *, \ -+ const char *, void **); \ - libc_hidden_proto (__nss_##arg##_lookup2) - #include "databases.def" - #undef DEFINE_DATABASE -diff --git a/po/pt_BR.po b/po/pt_BR.po -index b7c1650957..d49d6ec279 100644 ---- a/po/pt_BR.po -+++ b/po/pt_BR.po -@@ -1,4283 +1,7213 @@ --# Brazilian portuguese messages for glibc. --# Copyright © 1998, 1999 Free Software Foundation, Inc. -+# Brazilian Portuguese translation for glibc. -+# Copyright © 2018 Free Software Foundation, Inc. -+# This file is distributed under the same license as the glibc package. - # Fabio Dorival Victorelli , 1998. --# Márcio Macedo , 1998. -+# Márcio Macedo , 1998. - # Arnaldo Carvalho de Mello , 1998. - # Sandro Nunes Henrique , 1998. - # Rodrigo Stulzer Lopes , 1999. --# -+# Rafael Fontenelle , 2018. - msgid "" - msgstr "" --"Project-Id-Version: libc 2.1\n" --"POT-Creation-Date: 1998-11-28 09:29-0800\n" --"PO-Revision-Date: 1999-06-29 18:07-0300\n" --"Last-Translator: Rodrigo Parra Novo \n" --"Language-Team: Brazilian Portuguese \n" --"X-Bugs: Report translation errors to the Language-Team address.\n" -+"Project-Id-Version: libc 2.26.9000\n" -+"POT-Creation-Date: 2018-01-10 15:00+0000\n" -+"PO-Revision-Date: 2018-03-11 11:16-0300\n" -+"Last-Translator: Rafael Fontenelle \n" -+"Language-Team: Brazilian Portuguese \n" -+"Language: pt_BR\n" - "MIME-Version: 1.0\n" --"Content-Type: text/plain; charset=ISO-8859-1\n" --"Content-Transfer-Encoding: 8-bit\n" -- --#: nis/nis_print.c:273 --msgid "\t\tAccess Rights : " --msgstr "\t\tDireitos de Acesso: " -- --#: nis/nis_print.c:271 --msgid "\t\tAttributes : " --msgstr "\t\tAtributos : " -- --#: sunrpc/rpc_main.c:1416 --#, c-format --msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n" --msgstr "%s [-abkCLNTM][-Dname[=valor]] [-i tamanho] [-I [-K segundos]] [-Y rota] arquivo_entrada\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=2; plural=(n > 1);\n" -+"X-Generator: Virtaal 1.0.0-beta1\n" - --#: sunrpc/rpc_main.c:1418 -+#: argp/argp-help.c:227 - #, c-format --msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n" --msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o arquivo-saída] [arquivo-entrada]\n" -+msgid "%.*s: ARGP_HELP_FMT parameter requires a value" -+msgstr "%.*s: ARGP_HELP_FMT parâmetro requer um valor" - --#: sunrpc/rpc_main.c:1421 -+#: argp/argp-help.c:237 - #, c-format --msgid "\t%s [-n netid]* [-o outfile] [infile]\n" --msgstr "\t%s [-n id-rede]* [-o arquivo-saída] [arquivo-entrada]\n" -+msgid "%.*s: Unknown ARGP_HELP_FMT parameter" -+msgstr "%.*s: Parâmetro ARGP_HELP_FMT desconhecido" - --#: sunrpc/rpc_main.c:1420 -+#: argp/argp-help.c:250 - #, c-format --msgid "\t%s [-s nettype]* [-o outfile] [infile]\n" --msgstr "\t%s [-s tipo-rede]* [-o arquivo-saída] [arquivo-entrada]\n" -+msgid "Garbage in ARGP_HELP_FMT: %s" -+msgstr "Lixo em ARGP_HELP_FMT: %s" - --#: nis/nis_print.c:235 --msgid "\tAccess rights: " --msgstr "\tDireitos acesso: " -+#: argp/argp-help.c:1214 -+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." -+msgstr "Parâmetros obrigatórios ou opcionais para opções longas são também obrigatórios ou opcionais para qualquer opção curta correspondente." - --#: nis/nis_print.c:293 --#, c-format --msgid "\tEntry data of type %s\n" --msgstr "\tEntrada de dados de tipo %s\n" -+#: argp/argp-help.c:1600 -+msgid "Usage:" -+msgstr "Uso:" - --#: nis/nis_print.c:171 --#, c-format --msgid "\tName : %s\n" --msgstr "\tNome : %s\n" -+#: argp/argp-help.c:1604 -+msgid " or: " -+msgstr " ou: " - --#: nis/nis_print.c:172 --msgid "\tPublic Key : " --msgstr "\tChave pública: " -+#: argp/argp-help.c:1616 -+msgid " [OPTION...]" -+msgstr " [OPÇÃO...]" - --#: nis/nis_print.c:234 -+#: argp/argp-help.c:1643 - #, c-format --msgid "\tType : %s\n" --msgstr "\tTipo : %s\n" -+msgid "Try `%s --help' or `%s --usage' for more information.\n" -+msgstr "Tente “%s --help” ou “%s --usage” para mais informações.\n" - --#: nis/nis_print.c:201 -+#: argp/argp-help.c:1671 - #, c-format --msgid "\tUniversal addresses (%u)\n" --msgstr "\tEndereço universal (%u)\n" -+msgid "Report bugs to %s.\n" -+msgstr "Relate erros para %s.\n" - --#: nis/nis_print.c:269 --#, c-format --msgid "\t[%d]\tName : %s\n" --msgstr "\t[%d]\tNome : %s\n" -+#: argp/argp-parse.c:101 -+msgid "Give this help list" -+msgstr "Retorna este arquivo de ajuda" - --#: nis/nis_print.c:296 --#, c-format --msgid "\t[%u] - [%u bytes] " --msgstr "\t[%u] - [%u bytes] " -+#: argp/argp-parse.c:102 -+msgid "Give a short usage message" -+msgstr "Retorna uma mensagem de uso curta" - --#: nscd/nscd_stat.c:153 --msgid "" --"\n" --"%s cache:\n" --"\n" --"%15s cache is enabled\n" --"%15Zd suggested size\n" --"%15ld seconds time to live for positive entries\n" --"%15ld seconds time to live for negative entries\n" --"%15ld cache hits on positive entries\n" --"%15ld cache hits on negative entries\n" --"%15ld cache misses on positive entries\n" --"%15ld cache misses on negative entries\n" --"%15ld%% cache hit rate\n" --"%15s check /etc/%s for changes\n" --msgstr "" --"\n" --"cache %s:\n" --"\n" --"%15s cache está habilitado\n" --"%15Zd tamanho sugerido%15ld segundos de vida para entradas positivas\n" --"%15ld segundos de vida para entradas negativas\n" --"%15ld hits do cache para entradas positivas\n" --"%15ld hits do cache para entradas negativas\n" --"%15ld%% quantidade de hits no cache\n" --"%15s verifique o arquivo /etc/%s para mudanças\n" -+#: argp/argp-parse.c:103 catgets/gencat.c:109 catgets/gencat.c:113 -+#: iconv/iconv_prog.c:60 iconv/iconv_prog.c:61 nscd/nscd.c:105 -+#: nss/makedb.c:120 -+msgid "NAME" -+msgstr "NOME" - --#: nis/nis_print.c:251 --msgid "\nGroup Members :\n" --msgstr "\nMembros do Grupo : \n" -+#: argp/argp-parse.c:104 -+msgid "Set the program name" -+msgstr "Configura o nome do programa" - --#: nis/nis_print.c:320 --msgid "\nTime to Live : " --msgstr "\nTempo de Vida : " -+#: argp/argp-parse.c:105 -+msgid "SECS" -+msgstr "SEG" - --#: sunrpc/rpcinfo.c:679 --msgid " rpcinfo -b prognum versnum\n" --msgstr " rpcinfo -b númprog númvers\n" -+#: argp/argp-parse.c:106 -+msgid "Hang for SECS seconds (default 3600)" -+msgstr "Retém por SEG segundos (o padrão é 3600)" - --#: sunrpc/rpcinfo.c:680 --msgid " rpcinfo -d prognum versnum\n" --msgstr " rpcinfo -b númprog númvers\n" -+#: argp/argp-parse.c:167 -+msgid "Print program version" -+msgstr "Mostra versão do programa" - --#: sunrpc/rpcinfo.c:678 --msgid " rpcinfo -p [ host ]\n" --msgstr " rpcinfo -p [ host ]\n" -+#: argp/argp-parse.c:183 -+msgid "(PROGRAM ERROR) No version known!?" -+msgstr "(ERRO DE PROGRAMA) Versão desconhecida!?" - --#: sunrpc/rpcinfo.c:676 --msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n" --msgstr " rpcinfo [ -n númporta ] -t host númprog [ númvers ]\n" -+#: argp/argp-parse.c:623 -+#, c-format -+msgid "%s: Too many arguments\n" -+msgstr "%s: Argumentos demais\n" - --#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147 --msgid " no" --msgstr " não" -+#: argp/argp-parse.c:766 -+msgid "(PROGRAM ERROR) Option should have been recognized!?" -+msgstr "(ERRO DE PROGRAMA) Opção deveria ter sido reconhecida!?" - --#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147 --msgid " yes" --msgstr " sim" -+#: assert/assert-perr.c:35 -+#, c-format -+msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" -+msgstr "%s%s%s:%u: %s%sErro inesperado: %s.\n" - --#: nis/nis_print.c:344 -+#: assert/assert.c:101 - #, c-format --msgid " Data Length = %u\n" --msgstr " Tamanho dados = %u\n" -+msgid "" -+"%s%s%s:%u: %s%sAssertion `%s' failed.\n" -+"%n" -+msgstr "" -+"%s%s%s:%u: %s%sAssertiva “%s” falhou.\n" -+"%n" - --#: nis/nis_print_group_entry.c:121 --msgid " Explicit members:\n" --msgstr " Membros explícitos:\n" -+#: catgets/gencat.c:110 -+msgid "Create C header file NAME containing symbol definitions" -+msgstr "Cria arquivo NOME com cabeçalho C contendo definições de símbolos" - --#: nis/nis_print_group_entry.c:145 nis/nis_print_group_entry.c:161 --msgid " Explicit nonmembers:\n" --msgstr " Não-membros explícitos:\n" -+#: catgets/gencat.c:112 -+msgid "Do not use existing catalog, force new output file" -+msgstr "Não usa catálogo existente, força um novo arquivo de saída" - --#: nis/nis_print_group_entry.c:129 --msgid " Implicit members:\n" --msgstr " Membros implícitos:\n" -+#: catgets/gencat.c:113 nss/makedb.c:120 -+msgid "Write output to file NAME" -+msgstr "Escreve a saída para o arquivo NOME" - --#: nis/nis_print_group_entry.c:153 --msgid " Implicit nonmembers:\n" --msgstr " Não-membros implícitos:\n" -+#: catgets/gencat.c:118 -+msgid "" -+"Generate message catalog.\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" -+"is -, output is written to standard output.\n" -+msgstr "" -+"Gera catálogo de mensagens.\\vSe ARQUIVO-DE-ENTRADA for -, a entrada é lida da entrada padrão.\n" -+"Se ARQUIVO-DE-SAÍDA for -, a saída é escrita para a saída padrão.\n" - --#: nis/nis_print_group_entry.c:126 --msgid " No explicit members\n" --msgstr " Membros não explícitos\n" -+#: catgets/gencat.c:123 -+msgid "" -+"-o OUTPUT-FILE [INPUT-FILE]...\n" -+"[OUTPUT-FILE [INPUT-FILE]...]" -+msgstr "" -+"-o ARQUIVO-SAÍDA [ARQUIVO-ENTRADA]...\n" -+"[ARQUIVO-SAÍDA [ARQUIVO-ENTRADA...]" - --#: nis/nis_print_group_entry.c:150 --msgid " No explicit nonmembers\n" --msgstr "Não-membros não explícitos\n" -+#: 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:913 nss/makedb.c:369 -+#: posix/getconf.c:503 sysdeps/unix/sysv/linux/lddlibc4.c:61 -+#, c-format -+msgid "" -+"For bug reporting instructions, please see:\n" -+"%s.\n" -+msgstr "" -+"Para instruções sobre como relatar erros, por favor veja:\n" -+"%s.\n" - --#: nis/nis_print_group_entry.c:134 --msgid " No implicit members\n" --msgstr " Membros não implícitos\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/sprof.c:389 iconv/iconv_prog.c:422 iconv/iconvconfig.c:396 -+#: locale/programs/locale.c:292 locale/programs/localedef.c:453 -+#: login/programs/pt_chown.c:63 malloc/memusage.sh:71 -+#: malloc/memusagestat.c:581 nscd/nscd.c:509 nss/getent.c:86 nss/makedb.c:385 -+#: posix/getconf.c:485 sysdeps/unix/sysv/linux/lddlibc4.c:68 -+#, c-format -+msgid "" -+"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" -+msgstr "" -+"Copyright (C) %s Free Software Foundation, Inc.\n" -+"Este é um software livre; leia os fontes para condições de cópia. NÃO HÁ\n" -+"QUALQUER GARANTIA; nem para COMERCIALIZAÇÃO ou ADEQUAÇÃO A QUALQUER\n" -+"PROPÓSITO EME PARTICULAR.\n" - --#: nis/nis_print_group_entry.c:158 --msgid " No implicit nonmembers\n" --msgstr "Não-membros não implícitos\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:91 nss/makedb.c:390 -+#: posix/getconf.c:490 -+#, c-format -+msgid "Written by %s.\n" -+msgstr "Escrito por %s.\n" - --#: nis/nis_print_group_entry.c:142 --msgid " No recursive members\n" --msgstr "Membros não recursivos\n" -+#: catgets/gencat.c:281 -+msgid "*standard input*" -+msgstr "*entrada padrão*" - --#: nis/nis_print_group_entry.c:166 --msgid " No recursive nonmembers\n" --msgstr "Não-membros não recursivos\n" -+#: catgets/gencat.c:287 iconv/iconv_charmap.c:167 iconv/iconv_prog.c:290 -+#: nss/makedb.c:246 -+#, c-format -+msgid "cannot open input file `%s'" -+msgstr "não é possível abrir arquivo de entrada “%s”" - --#: nis/nis_print_group_entry.c:137 --msgid " Recursive members:\n" --msgstr " Membros recursivos:\n" -+#: catgets/gencat.c:416 catgets/gencat.c:491 -+msgid "illegal set number" -+msgstr "número de conjunto ilegal" - --#: sunrpc/rpcinfo.c:574 --msgid " program vers proto port\n" --msgstr " programa versão protocolo porta\n" -+#: catgets/gencat.c:443 -+msgid "duplicate set definition" -+msgstr "definição de conjunto duplicada" - --#: argp/argp-help.c:1571 --msgid " or: " --msgstr " ou: " -+#: catgets/gencat.c:445 catgets/gencat.c:617 catgets/gencat.c:669 -+msgid "this is the first definition" -+msgstr "esta é a primeira definição" - --#: timezone/zic.c:421 -+#: catgets/gencat.c:516 - #, c-format --msgid " (rule from \"%s\", line %d)" --msgstr " (regra de \"%s\", linha %d)" -- --#: argp/argp-help.c:1583 --msgid " [OPTION...]" --msgstr " [OPÇÃO...]" -+msgid "unknown set `%s'" -+msgstr "conjunto desconhecido “%s”" - --#: locale/programs/ld-collate.c:370 locale/programs/ld-ctype.c:1291 --msgid " done\n" --msgstr " feito\n" -+#: catgets/gencat.c:557 -+msgid "invalid quote character" -+msgstr "caractere de aspas inválido" - --#: timezone/zic.c:418 -+#: catgets/gencat.c:570 - #, c-format --msgid "\"%s\", line %d: %s" --msgstr "\"%s\", linha %d: %s" -+msgid "unknown directive `%s': line ignored" -+msgstr "diretiva desconhecida “%s”: linha ignorada" - --#: timezone/zic.c:958 --#, 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" -+#: catgets/gencat.c:615 -+msgid "duplicated message number" -+msgstr "número de mensagem duplicado" - --#: timezone/zic.c:966 --#, 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" -+#: catgets/gencat.c:666 -+msgid "duplicated message identifier" -+msgstr "identificador de mensagens duplicado" - --#: sunrpc/rpc_main.c:1401 --msgid "\"infile\" is required for template generation flags.\n" --msgstr "\"arquivo-entrada\" é necessário para geração de indicadores do modelo.\n" -+#: catgets/gencat.c:723 -+msgid "invalid character: message ignored" -+msgstr "caractere inválido: mensagem ignorada" - --#: argp/argp-help.c:210 --#, c-format --msgid "%.*s: ARGP_HELP_FMT parameter requires a value" --msgstr "%.*s: ARGP_HELP_FMT parâmetro requer um valor" -+#: catgets/gencat.c:766 -+msgid "invalid line" -+msgstr "linha inválida" - --#: argp/argp-help.c:219 --#, c-format --msgid "%.*s: Unknown ARGP_HELP_FMT parameter" --msgstr "%.*s: Parâmetro ARGP_HELP_FMT desconhecido" -+#: catgets/gencat.c:820 -+msgid "malformed line ignored" -+msgstr "linha inválida ignorada" - --#: timezone/zic.c:768 -+#: catgets/gencat.c:984 catgets/gencat.c:1025 - #, c-format --msgid "%s in ruleless zone" --msgstr "%s em uma zona sem regras" -+msgid "cannot open output file `%s'" -+msgstr "não é possível abrir arquivo de saída “%s”" - --#: assert/assert.c:51 --#, c-format --msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" --msgstr "%s%s%s:%u: %s%sAssertiva `%s' falhou.\n" -+#: catgets/gencat.c:1187 locale/programs/linereader.c:560 -+msgid "invalid escape sequence" -+msgstr "sequência de escape inválida" - --#: assert/assert-perr.c:52 --#, c-format --msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" --msgstr "%s%s%s:%u: %s%sErro inesperado: %s.\n" -+#: catgets/gencat.c:1209 -+msgid "unterminated message" -+msgstr "mensagem não terminada" - --#: stdio-common/psignal.c:47 -+#: catgets/gencat.c:1233 - #, c-format --msgid "%s%sUnknown signal %d\n" --msgstr "%s%sSinal desconhecido %d\n" -+msgid "while opening old catalog file" -+msgstr "enquanto abrindo antigo arquivo de catálogo" - --#: timezone/zic.c:2201 -+#: catgets/gencat.c:1324 - #, c-format --msgid "%s: %d did not sign extend correctly\n" --msgstr "%s: %d não fez extensão de sinal corretamente\n" -+msgid "conversion modules not available" -+msgstr "módulos de conversão não estão disponíveis" - --#: locale/programs/charmap.c:261 -+#: catgets/gencat.c:1350 - #, c-format --msgid "%s: must be greater than \n" --msgstr "%s: deve ser maior que \n" -+msgid "cannot determine escape character" -+msgstr "não é possível determinar caractere de escape" - --#: sunrpc/rpc_main.c:422 --#, c-format --msgid "%s: C preprocessor failed with exit code %d\n" --msgstr "%s: Pré-processador C falhou com código de saída %d\n" -+#: debug/pcprofiledump.c:53 -+msgid "Don't buffer output" -+msgstr "Não usa buffer para a saída" - --#: sunrpc/rpc_main.c:419 --#, c-format --msgid "%s: C preprocessor failed with signal %d\n" --msgstr "%s: Pré-processador C falhou com sinal %d\n" -+#: debug/pcprofiledump.c:58 -+msgid "Dump information generated by PC profiling." -+msgstr "Despeja a informação gerada pelo perfilador de PC." - --#: timezone/zic.c:1469 --#, c-format --msgid "%s: Can't create %s: %s\n" --msgstr "%s: Não é possível criar %s: %s\n" -+#: debug/pcprofiledump.c:61 -+msgid "[FILE]" -+msgstr "[ARQUIVO]" - --#: timezone/zic.c:2179 -+#: debug/pcprofiledump.c:108 - #, c-format --msgid "%s: Can't create directory %s: %s\n" --msgstr "%s: Não é possível criar o diretório %s: %s\n" -+msgid "cannot open input file" -+msgstr "não foi possível abrir arquivo de entrada" - --#: timezone/zic.c:620 -+#: debug/pcprofiledump.c:115 - #, c-format --msgid "%s: Can't link from %s to %s: %s\n" --msgstr "%s: Não é possível criar um link de %s para %s: %s\n" -+msgid "cannot read header" -+msgstr "não foi possível ler cabeçalho" - --#: timezone/zic.c:794 -+#: debug/pcprofiledump.c:179 - #, c-format --msgid "%s: Can't open %s: %s\n" --msgstr "%s: Não é possível abrir %s: %s\n" -+msgid "invalid pointer size" -+msgstr "tamanho de ponteiro inválido" - --#: timezone/zic.c:1459 --#, c-format --msgid "%s: Can't remove %s: %s\n" --msgstr "%s: Não é possível remover %s: %s\n" -+#: debug/xtrace.sh:26 debug/xtrace.sh:44 -+msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" -+msgstr "Uso: xtrace [OPÇÃO]... PROGRAMA [OPÇÃOPROGRAMA]...\\n" - --#: timezone/zic.c:863 --#, c-format --msgid "%s: Error closing %s: %s\n" --msgstr "%s: Erro fechando %s: %s\n" -+#: debug/xtrace.sh:32 elf/sotruss.sh:56 elf/sotruss.sh:67 elf/sotruss.sh:135 -+#: malloc/memusage.sh:26 -+msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n" -+msgstr "Tente “%s --help” ou “%s --usage” para mais informações.\\n" - --#: timezone/zic.c:856 --#, c-format --msgid "%s: Error reading %s\n" --msgstr "%s: Erro lendo %s\n" -+#: debug/xtrace.sh:38 -+msgid "%s: option '%s' requires an argument.\\n" -+msgstr "%s: opção “%s” requer um argumento.\\n" - --#: timezone/zic.c:1535 --#, c-format --msgid "%s: Error writing %s\n" --msgstr "%s: Erro escrevendo %s\n" -+#: debug/xtrace.sh:45 -+msgid "" -+"Trace execution of program by printing currently executed function.\n" -+"\n" -+" --data=FILE Don't run the program, just print the data from FILE.\n" -+"\n" -+" -?,--help Print this help and exit\n" -+" --usage Give a short usage message\n" -+" -V,--version Print version information and exit\n" -+"\n" -+"Mandatory arguments to long options are also mandatory for any corresponding\n" -+"short options.\n" -+"\n" -+msgstr "" -+"Rastreia a execução do programa exibindo a função atualmente executada.\n" -+"\n" -+" --data=ARQUIVO Não executa o programa, apenas exibe os dados\n" -+" do ARQUIVO.\n" -+"\n" -+" -?,--help Exibe essa ajuda e sai\n" -+" --usage Fornece uma curta mensagem de uso\n" -+" -V,--version Exibe informação da versão e sai\n" -+"\n" -+"Argumentos obrigatórios para opções longas são também obrigatórias para opções curtas correspondentes.\n" -+"\n" - --#: timezone/zdump.c:266 --#, c-format --msgid "%s: Error writing standard output " --msgstr "%s: Erro escrevendo para saída padrão " -+#: 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 "Para instruções sobre como relatar erros, por favor veja:\\\\n%s.\\\\n" - --#: timezone/zic.c:841 --#, c-format --msgid "%s: Leap line in non leap seconds file %s\n" --msgstr "%s: linha Leap no arquivo %s, que não é arquivo de ajuste\n" -+#: debug/xtrace.sh:125 -+msgid "xtrace: unrecognized option \\`$1'\\n" -+msgstr "xtrace: opção não reconhecida “$1”\\n" - --#: timezone/zic.c:359 --#, c-format --msgid "%s: Memory exhausted: %s\n" --msgstr "%s: Memória esgotada: %s\n" -+#: debug/xtrace.sh:138 -+msgid "No program name given\\n" -+msgstr "Nenhum nome de programa dado\\n" - --#: timezone/zic.c:524 --#, c-format --msgid "%s: More than one -L option specified\n" --msgstr "%s: Mais que uma opção -L foi especificada\n" -+#: debug/xtrace.sh:146 -+#, sh-format -+msgid "executable \\`$program' not found\\n" -+msgstr "“$program” executável não foi encontrado\\n" - --#: timezone/zic.c:484 --#, c-format --msgid "%s: More than one -d option specified\n" --msgstr "%s: Mais que uma opção -d foi especificada\n" -+#: debug/xtrace.sh:150 -+#, sh-format -+msgid "\\`$program' is no executable\\n" -+msgstr "“$program” não é um executável\\n" - --#: timezone/zic.c:494 --#, c-format --msgid "%s: More than one -l option specified\n" --msgstr "%s: Mais que uma opção -l especificada\n" -+#: dlfcn/dlinfo.c:63 -+msgid "RTLD_SELF used in code not dynamically loaded" -+msgstr "RTLD_SELF usado em código não carregado dinamicamente" - --#: timezone/zic.c:504 --#, c-format --msgid "%s: More than one -p option specified\n" --msgstr "%s: Mais que uma opção -p especificada\n" -+#: dlfcn/dlinfo.c:72 -+msgid "unsupported dlinfo request" -+msgstr "requisição dlinfo sem suporte" - --#: timezone/zic.c:514 --#, c-format --msgid "%s: More than one -y option specified\n" --msgstr "%s: Mais que uma opção -y especificada\n" -+#: dlfcn/dlmopen.c:63 -+msgid "invalid namespace" -+msgstr "espaço de nome inválido" - --#: argp/argp-parse.c:640 --#, c-format --msgid "%s: Too many arguments\n" --msgstr "%s: Muitos parâmetros\n" -+#: dlfcn/dlmopen.c:68 -+msgid "invalid mode" -+msgstr "modo inválido" - --#: login/programs/database.c:129 --#, c-format --msgid "%s: cannot get modification time" --msgstr "%s: não é possível processar modificações de horário" -+#: dlfcn/dlopen.c:64 -+msgid "invalid mode parameter" -+msgstr "parâmetro de modo inválido" - --#: timezone/zic.c:1900 --#, c-format --msgid "%s: command was '%s', result was %d\n" --msgstr "%s: comando era '%s', resultado era %d\n" -+#: elf/cache.c:69 -+msgid "unknown" -+msgstr "desconhecido" - --#: locale/programs/charmap.c:677 locale/programs/locfile.c:1008 --#, c-format --msgid "%s: error in state machine" --msgstr "%s: erro na máquina de estados" -+# Operating System (OS) = Sistema Operacional (SO) -+#: elf/cache.c:135 -+msgid "Unknown OS" -+msgstr "SO desconhecido" - --#: posix/getopt.c:784 -+#: elf/cache.c:140 - #, c-format --msgid "%s: illegal option -- %c\n" --msgstr "%s: opção ilegal -- %c\n" -+msgid ", OS ABI: %s %d.%d.%d" -+msgstr ", ABI de SO: %s %d.%d.%d" - --#: posix/getopt.c:787 -+#: elf/cache.c:157 elf/ldconfig.c:1332 - #, c-format --msgid "%s: invalid option -- %c\n" --msgstr "%s: opção inválida -- %c\n" -+msgid "Can't open cache file %s\n" -+msgstr "Não foi possível abrir arquivo de cache %s\n" - --#: posix/getopt.c:707 -+#: elf/cache.c:171 - #, c-format --msgid "%s: option `%c%s' doesn't allow an argument\n" --msgstr "%s: opção `%c%s' não permite um argumento\n" -+msgid "mmap of cache file failed.\n" -+msgstr "mmap de arquivo de cache falhou.\n" - --#: posix/getopt.c:677 -+#: elf/cache.c:175 elf/cache.c:189 - #, c-format --msgid "%s: option `%s' is ambiguous\n" --msgstr "%s: opção `%s' é ambígua\n" -+msgid "File is not a cache file.\n" -+msgstr "Arquivo não é um arquivo de cache.\n" - --#: posix/getopt.c:725 posix/getopt.c:898 -+# %d = número (quantidade) de bibliotecas -+#: elf/cache.c:222 elf/cache.c:232 - #, c-format --msgid "%s: option `%s' requires an argument\n" --msgstr "%s: opção `%s' requer um argumento\n" -+msgid "%d libs found in cache `%s'\n" -+msgstr "%d bibliotecas localizadas no cache “%s”\n" - --#: posix/getopt.c:702 -+#: elf/cache.c:426 - #, c-format --msgid "%s: option `--%s' doesn't allow an argument\n" --msgstr "%s: opção `--%s' não permite um argumento\n" -+msgid "Can't create temporary cache file %s" -+msgstr "Não foi possível criar arquivo temporário de cache %s" - --#: posix/getopt.c:882 -+#: elf/cache.c:434 elf/cache.c:444 elf/cache.c:448 elf/cache.c:453 - #, c-format --msgid "%s: option `-W %s' doesn't allow an argument\n" --msgstr "%s: opção `-W %s' não permite um argumento\n" -+msgid "Writing of cache data failed" -+msgstr "Escrita de dados de cache falhou" - --#: posix/getopt.c:864 -+#: elf/cache.c:458 - #, c-format --msgid "%s: option `-W %s' is ambiguous\n" --msgstr "%s: opção `-W %s' é ambígua\n" -+msgid "Changing access rights of %s to %#o failed" -+msgstr "Mudança de direitos de acesso de %s para %#o falhou" - --#: posix/getopt.c:817 posix/getopt.c:947 -+#: elf/cache.c:463 - #, c-format --msgid "%s: option requires an argument -- %c\n" --msgstr "%s: opção requer um argumento -- %c\n" -+msgid "Renaming of %s to %s failed" -+msgstr "Renomeio de %s para %s falhou" - --#: sunrpc/rpc_main.c:287 --#, c-format --msgid "%s: output would overwrite %s\n" --msgstr "%s: saída poderá sobrescrever %s\n" -+#: elf/dl-close.c:399 elf/dl-open.c:425 -+msgid "cannot create scope list" -+msgstr "não é possível criar lista de escopo" - --#: timezone/zic.c:848 timezone/zic.c:1262 timezone/zic.c:1287 --#, c-format --msgid "%s: panic: Invalid l_value %d\n" --msgstr "%s: pânico: l_value inválido %d\n" -+#: elf/dl-close.c:839 -+msgid "shared object not open" -+msgstr "objeto compartilhado não está aberto" - --#: locale/programs/charmap.c:684 locale/programs/repertoire.c:289 --#, c-format --msgid "%s: premature end of file" --msgstr "%s: fim de arquivo prematuro" -+#: elf/dl-deps.c:111 -+msgid "DST not allowed in SUID/SGID programs" -+msgstr "DST não permitido em programas SUID/SGID" - --#: sunrpc/rpc_main.c:294 --#, c-format --msgid "%s: unable to open " --msgstr "%s: Não foi possível abrir " -+#: elf/dl-deps.c:124 -+msgid "empty dynamic string token substitution" -+msgstr "substituição de token de string dinâmica vazia" - --#: posix/getopt.c:758 -+#: elf/dl-deps.c:130 - #, c-format --msgid "%s: unrecognized option `%c%s'\n" --msgstr "%s: opção não reconhecida `%c%s'\n" -+msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n" -+msgstr "não foi possível carregar “%s” auxiliar por causa de substituição de token de string dinâmica vazia\n" - --#: posix/getopt.c:754 --#, c-format --msgid "%s: unrecognized option `--%s'\n" --msgstr "%s: opção não reconhecida `--%s'\n" -+#: elf/dl-deps.c:442 -+msgid "cannot allocate dependency list" -+msgstr "não foi possível alocar lista de dependências" - --#: timezone/zic.c:443 --#, c-format --msgid "" --"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n" --"\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n" --msgstr "" --"%s: uso é %s [ -s ] [ -v ] [ -l tempolocal ] [ -p regrasposix ] [ -d diretório ]\n" --"\t[ -L segundosajuste ] [ -y tipoano ] [ nome do arquivo ... ]\n" -+#: elf/dl-deps.c:479 elf/dl-deps.c:539 -+msgid "cannot allocate symbol search list" -+msgstr "não foi possível alocar lista de pesquisa de símbolos" - --#: timezone/zdump.c:174 --#, c-format --msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n" --msgstr "%s: uso é %s [ -v ] [ -c cutoff ] nomezona ...\n" -+#: elf/dl-deps.c:519 -+msgid "Filters not supported with LD_TRACE_PRELINKING" -+msgstr "Filtros sem suporte com LD_TRACE_PRELINKING" - --#: sunrpc/rpc_main.c:307 --#, c-format --msgid "%s: while writing output: " --msgstr "%s: enquanto escrevendo saída: " -+#: elf/dl-error-skeleton.c:80 -+msgid "error while loading shared libraries" -+msgstr "erro ao carregar bibliotecas compartilhadas" - --#: argp/argp-parse.c:164 --msgid "(PROGRAM ERROR) No version known!?" --msgstr "(ERRO DE PROGRAMA) Versão desconhecida!?" -+#: elf/dl-error-skeleton.c:113 -+msgid "DYNAMIC LINKER BUG!!!" -+msgstr "ERRO NO VINCULADOR DINÂMICO!!!" - --#: argp/argp-parse.c:781 --msgid "(PROGRAM ERROR) Option should have been recognized!?" --msgstr "(ERRO DE PROGRAMA) Opção deveria ter sido reconhecida!?" -+#: elf/dl-fptr.c:88 sysdeps/hppa/dl-fptr.c:95 -+msgid "cannot map pages for fdesc table" -+msgstr "não foi possível mapear as páginas para tabela de fdesc" - --#: nis/nis_print.c:129 --msgid "(Unknown object)\n" --msgstr "(Objeto desconhecido)\n" -+#: elf/dl-fptr.c:192 sysdeps/hppa/dl-fptr.c:213 -+msgid "cannot map pages for fptr table" -+msgstr "não foi possível mapear as páginas para tabela de fptr" - --#: sunrpc/clnt_perr.c:124 --#, c-format --msgid "(unknown authentication error - %d)" --msgstr "(erro de autenticação desconhecido - %d)" -+#: elf/dl-fptr.c:221 sysdeps/hppa/dl-fptr.c:242 -+msgid "internal error: symidx out of range of fptr table" -+msgstr "erro interno: symidx fora de alcance da tabela fptr" - --#: sunrpc/rpcinfo.c:613 --msgid "(unknown)" --msgstr "(desconhecido)" -+#: elf/dl-hwcaps.c:202 elf/dl-hwcaps.c:214 -+msgid "cannot create capability list" -+msgstr "não foi possível criar lista de capacidades" - --#: elf/sprof.c:574 --#, c-format --msgid "*** The file `%s' is stripped: no detailed analysis possible\n" --msgstr "*** O arquivo `%s' está sem símbolos (stripped): a análise detalhada é impossível\n" -+#: elf/dl-load.c:369 -+msgid "cannot allocate name record" -+msgstr "não foi possível alocar registro de nome" - --#: catgets/gencat.c:266 --msgid "*standard input*" --msgstr "*entrada padrão*" -+#: elf/dl-load.c:455 elf/dl-load.c:568 elf/dl-load.c:657 elf/dl-load.c:753 -+msgid "cannot create cache for search path" -+msgstr "não foi possível criar socket para caminho de pesquisa" - --#: catgets/gencat.c:120 --msgid "" --"-o OUTPUT-FILE [INPUT-FILE]...\n" --"[OUTPUT-FILE [INPUT-FILE]...]" --msgstr "" --"-o ARQUIVO-SAÍDA [ARQUIVO-ENTRADA]...\n" --"[ARQUIVO-SAÍDA [ARQUIVO-ENTRADA...]" -+#: elf/dl-load.c:551 -+msgid "cannot create RUNPATH/RPATH copy" -+msgstr "não foi possível criar cópia de RUNPATH/RPATH" - --#: stdio-common/../sysdeps/gnu/errlist.c:778 --msgid ".lib section in a.out corrupted" --msgstr "seção .lib corrompida em a.out" -+#: elf/dl-load.c:644 -+msgid "cannot create search path array" -+msgstr "não foi possível criar vetor de caminho de pesquisa" - --#: sunrpc/clnt_perr.c:110 sunrpc/clnt_perr.c:131 --#, c-format --msgid "; low version = %lu, high version = %lu" --msgstr "; versão baixa = %lu, versão alta = %lu" -+#: elf/dl-load.c:825 -+msgid "cannot stat shared object" -+msgstr "não foi possível obter estado do objeto compartilhado" - --#: sunrpc/clnt_perr.c:117 --msgid "; why = " --msgstr "; porque = " -+#: elf/dl-load.c:902 -+msgid "cannot open zero fill device" -+msgstr "não foi possível abrir dispositivo preenchido com zero" - --#: locale/programs/charset.c:98 --#, c-format --msgid "<%s> and <%s> are illegal names for range" --msgstr "<%s> e <%s> são nomes ilegais para faixa de caracteres" -+#: elf/dl-load.c:949 elf/dl-load.c:2125 -+msgid "cannot create shared object descriptor" -+msgstr "não foi possível criar descritor de objeto compartilhado" - --#: locale/programs/ld-ctype.c:342 --#, c-format --msgid " character must not be in class `%s'" --msgstr " caracter não deve estar na classe `%s'" -+#: elf/dl-load.c:968 elf/dl-load.c:1499 elf/dl-load.c:1611 -+msgid "cannot read file data" -+msgstr "não foi possível carregar dados do arquivo" - --#: locale/programs/ld-ctype.c:330 --#, c-format --msgid " character not in class `%s'" --msgstr " caracter não está na classe `%s'" -+#: elf/dl-load.c:1014 -+msgid "ELF load command alignment not page-aligned" -+msgstr "alinhamento de comando de carregamento de ELF não está alinhado por página" - --#. TRANS The experienced user will know what is wrong. --#. TRANS @c This error code is a joke. Its perror text is part of the joke. --#. TRANS @c Don't change it. --#: stdio-common/../sysdeps/gnu/errlist.c:603 --msgid "?" --msgstr "?" -+#: elf/dl-load.c:1021 -+msgid "ELF load command address/offset not properly aligned" -+msgstr "endereço/deslocamento de comando de carregamento de ELF não alinhado adequadamente" - --#: sysdeps/unix/sysv/linux/siglist.h:27 --msgid "Aborted" --msgstr "Abortado" -+#: elf/dl-load.c:1106 -+msgid "object file has no loadable segments" -+msgstr "arquivo de objeto não possui segmentos carregáveis" - --#: nis/nis_print.c:318 --msgid "Access Rights : " --msgstr "Direitos de Acesso : " -+#: elf/dl-load.c:1115 elf/dl-load.c:1591 -+msgid "cannot dynamically load executable" -+msgstr "não foi possível carregar dinamicamente o executável" - --#: stdio-common/../sysdeps/gnu/errlist.c:774 --msgid "Accessing a corrupted shared library" --msgstr "Acessando uma biblioteca compartilhado corrompida" -+#: elf/dl-load.c:1136 -+msgid "object file has no dynamic section" -+msgstr "arquivo de objeto não possui seção dinâmica" - --#. TRANS The requested socket address is already in use. @xref{Socket Addresses}. --#: stdio-common/../sysdeps/gnu/errlist.c:366 --msgid "Address already in use" --msgstr "Endereço já em uso" -+#: elf/dl-load.c:1159 -+msgid "shared object cannot be dlopen()ed" -+msgstr "objeto compartilhado não pode ser dlopen()ado" - --#: posix/../sysdeps/posix/gai_strerror.c:30 --msgid "Address family for hostname not supported" --msgstr "Família de endereços não suportada para nome de máquina" -+#: elf/dl-load.c:1172 -+msgid "cannot allocate memory for program header" -+msgstr "não foi possível alocar memória para cabeçalho do programa" - --#. TRANS The address family specified for a socket is not supported; it is --#. TRANS inconsistent with the protocol being used on the socket. @xref{Sockets}. --#: stdio-common/../sysdeps/gnu/errlist.c:361 --msgid "Address family not supported by protocol" --msgstr "Família de endereços não suportada pelo protocolo" -+#: elf/dl-load.c:1188 elf/dl-open.c:193 -+msgid "invalid caller" -+msgstr "chamador inválido" - --#: stdio-common/../sysdeps/gnu/errlist.c:742 --msgid "Advertise error" --msgstr "Erro de aviso" -+#: elf/dl-load.c:1211 elf/dl-load.h:130 -+msgid "cannot change memory protections" -+msgstr "não é possível alterar proteções de memória" - --#: stdio-common/../sysdeps/unix/siglist.c:39 --#: sysdeps/unix/sysv/linux/siglist.h:33 --msgid "Alarm clock" --msgstr "Alarme de tempo" -+#: elf/dl-load.c:1231 -+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" - --#. TRANS Argument list too long; used when the arguments passed to a new program --#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a --#. TRANS File}) occupy too much memory space. This condition never arises in the --#. TRANS GNU system. --#: stdio-common/../sysdeps/gnu/errlist.c:69 --msgid "Argument list too long" --msgstr "Lista de argumentos muito longa" -+#: elf/dl-load.c:1244 -+msgid "cannot close file descriptor" -+msgstr "não é possível fechar o descritor de arquivo" - --#: nis/nis_error.c:65 --msgid "Attempt to remove a non-empty table" --msgstr "Tentativa de remoção de uma tabela que não está vazia" -+#: elf/dl-load.c:1499 -+msgid "file too short" -+msgstr "arquivo pequeno demais" - --#: stdio-common/../sysdeps/gnu/errlist.c:782 --msgid "Attempting to link in too many shared libraries" --msgstr "Tentando o link em muitas bibliotecas compartilhadas" -+#: elf/dl-load.c:1534 -+msgid "invalid ELF header" -+msgstr "cabeçalho de ELF inválido" - --#: sunrpc/clnt_perr.c:273 --msgid "Authentication OK" --msgstr "Autenticação OK" -+#: elf/dl-load.c:1546 -+msgid "ELF file data encoding not big-endian" -+msgstr "codificação de dados de arquivo ELF não é big-endian" - --#. TRANS ??? --#: stdio-common/../sysdeps/gnu/errlist.c:561 --msgid "Authentication error" --msgstr "Erro de autenticação" -+#: elf/dl-load.c:1548 -+msgid "ELF file data encoding not little-endian" -+msgstr "codificação de dados de arquivo ELF não é little-endian" - --#: nis/nis_print.c:105 --msgid "BOGUS OBJECT\n" --msgstr "OBJETO FALSO\n" -+#: elf/dl-load.c:1552 -+msgid "ELF file version ident does not match current one" -+msgstr "identificação de versão de arquivo ELF não corresponde ao atual" - --#. TRANS Bad address; an invalid pointer was detected. --#. TRANS In the GNU system, this error never happens; you get a signal instead. --#: stdio-common/../sysdeps/gnu/errlist.c:114 --msgid "Bad address" --msgstr "Endereço inválido" -+#: elf/dl-load.c:1556 -+msgid "ELF file OS ABI invalid" -+msgstr "ABI de SO do arquivo ELF inválido" - --#. TRANS Bad file descriptor; 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). --#: stdio-common/../sysdeps/gnu/errlist.c:82 --msgid "Bad file descriptor" --msgstr "Descritor de arquivo inválido" -+#: elf/dl-load.c:1559 -+msgid "ELF file ABI version invalid" -+msgstr "versão de ABI do arquivo ELF inválido" - --#: stdio-common/../sysdeps/gnu/errlist.c:730 --msgid "Bad font file format" --msgstr "Formato do arquivo fonte inválido " -+#: elf/dl-load.c:1562 -+msgid "nonzero padding in e_ident" -+msgstr "espaçamento não-zero em e_ident" - --#: stdio-common/../sysdeps/gnu/errlist.c:622 --msgid "Bad message" --msgstr "Mensagem inválida" -+#: elf/dl-load.c:1565 -+msgid "internal error" -+msgstr "erro interno" - --#: stdio-common/../sysdeps/unix/siglist.c:37 --#: sysdeps/unix/sysv/linux/siglist.h:56 --msgid "Bad system call" --msgstr "Chamada de sistema inválida" -+#: elf/dl-load.c:1572 -+msgid "ELF file version does not match current one" -+msgstr "versão de arquivo ELF não corresponde à atual" - --#: posix/../sysdeps/posix/gai_strerror.c:32 --msgid "Bad value for ai_flags" --msgstr "Valor inválido para ai_flags" -- --#: locale/programs/localedef.c:104 --msgid "Be strictly POSIX conform" --msgstr "Se extremamente compatível com o POSIX" -+#: elf/dl-load.c:1580 -+msgid "only ET_DYN and ET_EXEC can be loaded" -+msgstr "apenas ET_DYN e ET_EXEC podem ser carregados" - --#: nis/nis_print.c:301 --msgid "Binary data\n" --msgstr "Dados binários\n" -+#: elf/dl-load.c:1596 -+msgid "ELF file's phentsize not the expected size" -+msgstr "phentsize do arquivo ELF não está no tamanho esperado" - --#. TRANS A file that isn't a block special file was given in a situation that --#. TRANS requires one. For example, trying to mount an ordinary file as a file --#. TRANS system in Unix gives this error. --#: stdio-common/../sysdeps/gnu/errlist.c:121 --msgid "Block device required" --msgstr "Dispositivo de bloco requerido" -+#: elf/dl-load.c:2144 -+msgid "wrong ELF class: ELFCLASS64" -+msgstr "classe ELF errada: ELFCLASS64" - --#: sunrpc/pmap_rmt.c:347 --msgid "Broadcast poll problem" --msgstr "Problema em select para broadcast" -+#: elf/dl-load.c:2145 -+msgid "wrong ELF class: ELFCLASS32" -+msgstr "classe ELF errada: ELFCLASS32" - --#. TRANS Broken pipe; there is no process reading from the other end of a pipe. --#. TRANS Every library function that returns this error code also generates a --#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled --#. TRANS or blocked. Thus, your program will never actually see @code{EPIPE} --#. TRANS unless it has handled or blocked @code{SIGPIPE}. --#: stdio-common/../sysdeps/gnu/errlist.c:234 --#: stdio-common/../sysdeps/unix/siglist.c:38 --#: sysdeps/unix/sysv/linux/siglist.h:32 --msgid "Broken pipe" --msgstr "Pipe quebrado" -+#: elf/dl-load.c:2148 -+msgid "cannot open shared object file" -+msgstr "não é possível abrir arquivo compartilhado" - --#: stdio-common/../sysdeps/unix/siglist.c:35 --#: sysdeps/unix/sysv/linux/siglist.h:30 --msgid "Bus error" --msgstr "Erro no barramento" -+#: elf/dl-load.h:128 -+msgid "failed to map segment from shared object" -+msgstr "falha no mapeamento de segmento do objeto compartilhado" - --#: nis/nis_print.c:45 --msgid "CDS" --msgstr "CDS" -+#: elf/dl-load.h:132 -+msgid "cannot map zero-fill pages" -+msgstr "não é possível mapear páginas preenchidas com zero" - --#: stdio-common/../sysdeps/unix/siglist.c:49 --#: sysdeps/unix/sysv/linux/siglist.h:43 --msgid "CPU time limit exceeded" --msgstr "Tempo de CPU excedido" -+#: elf/dl-lookup.c:834 -+msgid "relocation error" -+msgstr "erro de realocação" - --#: nis/nis_error.c:32 --msgid "Cache expired" --msgstr "Tempo expirado" -+#: elf/dl-lookup.c:857 -+msgid "symbol lookup error" -+msgstr "erro de procura por símbolo" - --#: stdio-common/../sysdeps/gnu/errlist.c:770 --msgid "Can not access a needed shared library" --msgstr "Não foi possível acessar uma biblioteca compartilhada" -+#: elf/dl-open.c:101 -+msgid "cannot extend global scope" -+msgstr "não foi possível estender escopo global" - --#: nis/ypclnt.c:769 --msgid "Can't bind to server which serves this domain" --msgstr "Não posso executar bind com o servidor deste domínio" -+#: elf/dl-open.c:475 -+msgid "TLS generation counter wrapped! Please report this." -+msgstr "Contador de geração TLS envolto! Por favor, relate isso." - --#: nis/ypclnt.c:781 --msgid "Can't communicate with portmapper" --msgstr "Não foi possível comunicar-se com o portmapper" -+#: elf/dl-open.c:539 -+msgid "invalid mode for dlopen()" -+msgstr "modo inválido para dlopen()" - --#: nis/ypclnt.c:783 --msgid "Can't communicate with ypbind" --msgstr "Não foi possível comunicar-se com o ypbind" -+#: elf/dl-open.c:556 -+msgid "no more namespaces available for dlmopen()" -+msgstr "não há mais espaços de nomes disponíveis para dlmopen()" - --#: nis/ypclnt.c:785 --msgid "Can't communicate with ypserv" --msgstr "Não foi possível comunicar-se com o ypserv" -+#: elf/dl-open.c:580 -+msgid "invalid target namespace in dlmopen()" -+msgstr "espaço de nomes de alvo inválido em dlmopen()" - --#. TRANS No memory available. The system cannot allocate more virtual memory --#. TRANS because its capacity is full. --#: stdio-common/../sysdeps/gnu/errlist.c:103 --msgid "Cannot allocate memory" --msgstr "Não foi possível alocar memória" -+#: elf/dl-reloc.c:120 -+msgid "cannot allocate memory in static TLS block" -+msgstr "não foi possível alocar memória em bloco TLS estático" - --#. TRANS The requested socket address is not available; for example, you tried --#. TRANS to give a socket a name that doesn't match the local host name. --#. TRANS @xref{Socket Addresses}. --#: stdio-common/../sysdeps/gnu/errlist.c:373 --msgid "Cannot assign requested address" --msgstr "Não foi possível acessar o endereço requisitado" -+#: elf/dl-reloc.c:205 -+msgid "cannot make segment writable for relocation" -+msgstr "não foi possível fazer segmento gravável para realocação" - --#: sunrpc/pmap_rmt.c:264 --msgid "Cannot create socket for broadcast rpc" --msgstr "Não é possível criar socket para rpc de broadcast" -+#: elf/dl-reloc.c:276 -+#, 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" - --#: stdio-common/../sysdeps/gnu/errlist.c:786 --msgid "Cannot exec a shared library directly" --msgstr "Não foi possível executar uma biblioteca compartilhado diretamente" -+#: elf/dl-reloc.c:292 -+msgid "cannot restore segment prot after reloc" -+msgstr "não foi possível restaurar proteção de segmento após realocação" - --#: sunrpc/rpc_main.c:1406 --msgid "Cannot have more than one file generation flag!\n" --msgstr "Não é possível ter mais de um indicador de geração de arquivo!\n" -+#: elf/dl-reloc.c:323 -+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" - --#: sunrpc/pmap_rmt.c:360 --msgid "Cannot receive reply to broadcast" --msgstr "Não foi possível receber resposta para broadcast" -+#: elf/dl-sym.c:136 -+msgid "RTLD_NEXT used in code not dynamically loaded" -+msgstr "RTLD_NEXT usado em código não dinamicamente carregado" - --#: sunrpc/pmap_clnt.c:74 --msgid "Cannot register service" --msgstr "Não foi possível registrar serviço" -+#: elf/dl-tls.c:931 -+msgid "cannot create TLS data structures" -+msgstr "não é possível criar estruturas de dados TLS" - --#. TRANS The socket has already been shut down. --#: stdio-common/../sysdeps/gnu/errlist.c:434 --msgid "Cannot send after transport endpoint shutdown" --msgstr "Não é possível enviar após desligamento do ponto final de transporte" -+#: elf/dl-version.c:148 -+msgid "version lookup error" -+msgstr "erro na procura por versão" - --#: sunrpc/pmap_rmt.c:322 --msgid "Cannot send broadcast packet" --msgstr "Não foi possível enviar pacote de broadcast" -+#: elf/dl-version.c:279 -+msgid "cannot allocate version reference table" -+msgstr "não foi possível alocar tabela de referência de versão" - --#: sunrpc/pmap_rmt.c:271 --msgid "Cannot set socket option SO_BROADCAST" --msgstr "Não foi possível usar opção do socket SO_BROADCAST" -+#: elf/ldconfig.c:142 -+msgid "Print cache" -+msgstr "Mostra o cache" - --#: sunrpc/rpc_main.c:1193 --msgid "Cannot specify more than one input file!\n" --msgstr "Nao é possível especificar mais de um arquivo de entrada!\n" -+#: elf/ldconfig.c:143 -+msgid "Generate verbose messages" -+msgstr "Gera mensagens detalhadas" - --#: sunrpc/rpc_main.c:1363 --msgid "Cannot use netid flag with inetd flag!\n" --msgstr "Não é possível user tabela de indicadores com novo estilo!\n" -+#: elf/ldconfig.c:144 -+msgid "Don't build cache" -+msgstr "Não compila o cache" - --#: sunrpc/rpc_main.c:1375 --msgid "Cannot use netid flag without TIRPC!\n" --msgstr "Não é possível usar indicador netid sem TIRPC!\n" -+#: elf/ldconfig.c:145 -+msgid "Don't update symbolic links" -+msgstr "Não atualiza links simbólicos" - --#: sunrpc/rpc_main.c:1382 --msgid "Cannot use table flags with newstyle!\n" --msgstr "Não é possível usar indicadores de tabelas com novo estilo!\n" -+#: elf/ldconfig.c:146 -+msgid "Change to and use ROOT as root directory" -+msgstr "Muda para e usa ROOT como diretório raiz" - --#: stdio-common/../sysdeps/gnu/errlist.c:670 --msgid "Channel number out of range" --msgstr "Número do canal fora do intervalo" -+#: elf/ldconfig.c:146 -+msgid "ROOT" -+msgstr "ROOT" - --#: nis/nis_print.c:264 --#, c-format --msgid "Character Separator : %c\n" --msgstr "Separador de caracteres \"%c\n" -+#: elf/ldconfig.c:147 -+msgid "CACHE" -+msgstr "CACHE" - --#: stdio-common/../sysdeps/unix/siglist.c:45 --#: sysdeps/unix/sysv/linux/siglist.h:39 --msgid "Child exited" --msgstr "Filho finalizado" -+#: elf/ldconfig.c:147 -+msgid "Use CACHE as cache file" -+msgstr "Usa CACHE como arquivo de cache" - --#: sunrpc/clnt_perr.c:283 --msgid "Client credential too weak" --msgstr "Credencial do cliente muito fraca" -+#: elf/ldconfig.c:148 -+msgid "CONF" -+msgstr "CONF" - --#: nis/nis_print.c:266 --msgid "Columns :\n" --msgstr "Colunas :\n" -+#: elf/ldconfig.c:148 -+msgid "Use CONF as configuration file" -+msgstr "Usa CONF como arquivo de configuração" - --#: stdio-common/../sysdeps/gnu/errlist.c:750 --msgid "Communication error on send" --msgstr "Erro de communicação ao enviar" -+#: elf/ldconfig.c:149 -+msgid "Only process directories specified on the command line. Don't build cache." -+msgstr "Processa apenas diretórios especificados na linha de comando. Não compila o cache." - --#: locale/programs/localedef.c:112 --msgid "Compile locale specification" --msgstr "Compila especificação localizada" -+#: elf/ldconfig.c:150 -+msgid "Manually link individual libraries." -+msgstr "Vincula manualmente bibliotecas individuais." - --#. TRANS Go home and have a glass of warm, dairy-fresh milk. --#: stdio-common/../sysdeps/gnu/errlist.c:613 --msgid "Computer bought the farm" --msgstr "O computador comprou a fazenda" -+#: elf/ldconfig.c:151 -+msgid "FORMAT" -+msgstr "FORMATO" - --#: locale/programs/ld-ctype.c:1253 --msgid "Computing table size for character classes might take a while..." --msgstr "O cálculo do tamanho da tabela de classes de caracteres pode demorar..." -+#: elf/ldconfig.c:151 -+msgid "Format to use: new, old or compat (default)" -+msgstr "Formato para usar: new, old ou compat (padrão)" - --#: locale/programs/ld-collate.c:336 --msgid "Computing table size for collation information might take a while..." --msgstr "O cálculo do tamanho da tabela de informações de comparação (collation) pode demorar..." -+#: elf/ldconfig.c:152 -+msgid "Ignore auxiliary cache file" -+msgstr "Ignora arquivo de cache auxiliar" - --#. TRANS A remote host refused to allow the network connection (typically because --#. TRANS it is not running the requested service). --#: stdio-common/../sysdeps/gnu/errlist.c:451 --msgid "Connection refused" --msgstr "Conexão recusada" -+#: elf/ldconfig.c:160 -+msgid "Configure Dynamic Linker Run Time Bindings." -+msgstr "Configura associações de tempo real do vinculador dinâmico." - --#. TRANS A network connection was closed for reasons outside the control of the --#. TRANS local host, such as by the remote machine rebooting or an unrecoverable --#. TRANS protocol violation. --#: stdio-common/../sysdeps/gnu/errlist.c:401 --msgid "Connection reset by peer" --msgstr "Conexão fechada pela outra ponta" -+#: elf/ldconfig.c:347 -+#, c-format -+msgid "Path `%s' given more than once" -+msgstr "Caminho “%s” fornecido mais de uma vez" - --#. TRANS A socket operation with a specified timeout received no response during --#. TRANS the timeout period. --#: stdio-common/../sysdeps/gnu/errlist.c:445 --msgid "Connection timed out" --msgstr "Tempo esgotado para conexão" -+#: elf/ldconfig.c:387 -+#, c-format -+msgid "%s is not a known library type" -+msgstr "%s não é um tipo de memória conhecida" - --#: stdio-common/../sysdeps/unix/siglist.c:44 --#: sysdeps/unix/sysv/linux/siglist.h:38 --msgid "Continued" --msgstr "Continua" -+#: elf/ldconfig.c:415 -+#, c-format -+msgid "Can't stat %s" -+msgstr "Não foi possível obter estado de %s" - --#: iconv/iconv_prog.c:66 --msgid "Convert encoding of given files from one encoding to another." --msgstr "Converte codificação dos arquivos dados de uma codificação para outra." -+#: elf/ldconfig.c:489 -+#, c-format -+msgid "Can't stat %s\n" -+msgstr "Não foi possível obter estado de %s\n" - --#: db2/makedb.c:58 --msgid "Convert key to lower case" --msgstr "Converte chave para letras minúsculas" -+#: elf/ldconfig.c:499 -+#, c-format -+msgid "%s is not a symbolic link\n" -+msgstr "%s não é um link simbólico\n" - --#: catgets/gencat.c:236 db2/makedb.c:242 elf/sprof.c:359 --#: iconv/iconv_prog.c:294 locale/programs/locale.c:267 --#: locale/programs/localedef.c:403 nscd/nscd.c:223 nss/getent.c:65 --#: posix/getconf.c:624 -+#: elf/ldconfig.c:518 - #, c-format --msgid "" --"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" --msgstr "" --"Copyright (C) %s Free Software Foundation, Inc.\n" --"Este é um software free; leia os fontes para condicões de cópia. Não existe\n" --"garantia; nem para comércio ou adequacão para propóstios particulares.\n" -+msgid "Can't unlink %s" -+msgstr "Não foi possível desvincular %s" - --#: nscd/nscd_conf.c:167 -+#: elf/ldconfig.c:524 - #, c-format --msgid "Could not create log file \"%s\"" --msgstr "não é possível ler arquivo de registro \"%s\"" -+msgid "Can't link %s to %s" -+msgstr "Não foi possível vincular %s a %s" - --#: catgets/gencat.c:107 --msgid "Create C header file NAME containing symbol definitions" --msgstr "Cria arquivo NOME com cabeçalho C contendo definições de símbolos " -+# link alterado -+#: elf/ldconfig.c:530 -+msgid " (changed)\n" -+msgstr " (alterado)\n" - --#: locale/programs/localedef.c:103 --msgid "Create output even if warning messages were issued" --msgstr "Cria saída mesmo que mensagens de aviso forem produzidas" -+# link ignorado -+#: elf/ldconfig.c:532 -+msgid " (SKIPPED)\n" -+msgstr " (IGNORADO)\n" - --#: db2/makedb.c:68 --msgid "Create simple DB database from textual input." --msgstr "Cria um base de dados DB simples de uma entrada textual." -+#: elf/ldconfig.c:587 -+#, c-format -+msgid "Can't find %s" -+msgstr "Não foi possível localizar %s" - --#: nis/nis_print.c:322 -+# `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 "Creation Time : %s" --msgstr "Horário de criação : %s" -+msgid "Cannot lstat %s" -+msgstr "Não foi possível obter estado do link %s" - --#: nis/nss_nisplus/nisplus-publickey.c:89 --#: nis/nss_nisplus/nisplus-publickey.c:159 -+#: elf/ldconfig.c:610 - #, c-format --msgid "DES entry for netname %s not unique\n" --msgstr "Entrada DES para nome de rede (netname) %s não é única\n" -+msgid "Ignored file %s since it is not a regular file." -+msgstr "Arquivo %s ignorado já que agora não é mais um arquivo comum." - --#: nis/nis_print.c:111 --msgid "DIRECTORY\n" --msgstr "DIRETÓRIO\n" -+#: elf/ldconfig.c:619 -+#, c-format -+msgid "No link created since soname could not be found for %s" -+msgstr "Nenhum link foi criado porque um soname não foi encontrado para %s" - --#: nis/nis_print.c:41 --msgid "DNANS" --msgstr "DNANS" -+#: elf/ldconfig.c:702 -+#, c-format -+msgid "Can't open directory %s" -+msgstr "Não foi possível abrir o diretório %s" - --#: nis/nis_print.c:37 --msgid "DNS" --msgstr "DNS" -+#: elf/ldconfig.c:787 elf/ldconfig.c:845 elf/readlib.c:97 -+#, c-format -+msgid "Input file %s not found.\n" -+msgstr "Arquivo de entrada %s não foi localizado.\n" - --#: nis/nis_error.c:51 --msgid "Database for table does not exist" --msgstr "Base de dados para tabela não existe" -+#: elf/ldconfig.c:794 -+#, c-format -+msgid "Cannot stat %s" -+msgstr "Não foi possível obter estado do arquivo %s" - --#: nis/ypclnt.c:795 --msgid "Database is busy" --msgstr "Base de dados está ocupada" -+#: elf/ldconfig.c:939 -+#, c-format -+msgid "libc5 library %s in wrong directory" -+msgstr "biblioteca libc5 %s em diretório errado" - --#: nis/nis_print.c:225 --msgid "Default Access rights :\n" --msgstr "Direitos de Acesso padrão :\n" -+#: elf/ldconfig.c:942 -+#, c-format -+msgid "libc6 library %s in wrong directory" -+msgstr "biblioteca libc6 %s em diretório errado" - --#. TRANS No default destination address was set for the socket. You get this --#. TRANS error when you try to transmit data over a connectionless socket, --#. TRANS without first specifying a destination for the data with @code{connect}. --#: stdio-common/../sysdeps/gnu/errlist.c:429 --msgid "Destination address required" --msgstr "Endereço de destino requerido" -+#: elf/ldconfig.c:945 -+#, c-format -+msgid "libc4 library %s in wrong directory" -+msgstr "biblioteca libc4 %s em diretório errado" - --#: stdio-common/../sysdeps/gnu/errlist.c:650 --msgid "Device not a stream" --msgstr "Dispositivo não é um stream" -+#: elf/ldconfig.c:973 -+#, c-format -+msgid "libraries %s and %s in directory %s have same soname but different type." -+msgstr "bibliotecas %s e %s no diretório %s possuem o mesmo soname, mas tipos diferentes." - --#. TRANS No such device or address. The system tried to use the device --#. TRANS represented by a file you specified, and it couldn't find the device. --#. TRANS This can mean that the device file was installed incorrectly, or that --#. TRANS the physical device is missing or not correctly attached to the --#. TRANS computer. --#: stdio-common/../sysdeps/gnu/errlist.c:61 --msgid "Device not configured" --msgstr "Dispositivo não configurado" -+#: elf/ldconfig.c:1082 -+#, c-format -+msgid "Warning: ignoring configuration file that cannot be opened: %s" -+msgstr "Aviso: ignorando arquivo de configuração que não pode ser aberto: %s" - --#. TRANS Resource busy; a system resource that can't be shared is already in use. --#. TRANS For example, if you try to delete a file that is the root of a currently --#. TRANS mounted filesystem, you get this error. --#: stdio-common/../sysdeps/gnu/errlist.c:128 --msgid "Device or resource busy" --msgstr "Dispositivo ou recurso está ocupado" -+#: elf/ldconfig.c:1148 -+#, c-format -+msgid "%s:%u: bad syntax in hwcap line" -+msgstr "%s:%u: sintaxe incorreta na linha hwcap" - --#: nis/nis_print.c:179 -+#: elf/ldconfig.c:1154 - #, c-format --msgid "Diffie-Hellmann (%d bits)\n" --msgstr "Diffie-Hellmann (%d bits)\n" -+msgid "%s:%u: hwcap index %lu above maximum %u" -+msgstr "%s:%u: índica de hwcap %lu acima do máximo %u" - --#: nis/nis_print.c:315 -+#: elf/ldconfig.c:1161 elf/ldconfig.c:1169 - #, c-format --msgid "Directory : %s\n" --msgstr "Diretório : %s\n" -+msgid "%s:%u: hwcap index %lu already defined as %s" -+msgstr "%s:%u: índice de hwcap %lu já definido como %s" - --#. TRANS Directory not empty, where an empty directory was expected. Typically, --#. TRANS this error occurs when you are trying to delete a directory. --#: stdio-common/../sysdeps/gnu/errlist.c:480 --msgid "Directory not empty" --msgstr "Diretório não vazio" -+#: elf/ldconfig.c:1172 -+#, c-format -+msgid "%s:%u: duplicate hwcap %lu %s" -+msgstr "%s:%u: hwcap %lu duplicado %s" - --#. TRANS The user's disk quota was exceeded. --#: stdio-common/../sysdeps/gnu/errlist.c:498 --msgid "Disc quota exceeded" --msgstr "Cota de disco excedida" -+#: elf/ldconfig.c:1194 -+#, c-format -+msgid "need absolute file name for configuration file when using -r" -+msgstr "necessita de nome de arquivo absoluto para arquivo de configuração quando usado -r" - --#: nscd/nscd.c:80 --msgid "Do not fork and display messages on the current tty" --msgstr "Não divide (fork) e mostre mensagens na tty corrente" -+#: 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 -+#, c-format -+msgid "memory exhausted" -+msgstr "memória esgotada" - --#: db2/makedb.c:61 --msgid "Do not print messages while building database" --msgstr "Não mostra mensagens enquanto constrói base de dados" -+#: elf/ldconfig.c:1233 -+#, c-format -+msgid "%s:%u: cannot read directory %s" -+msgstr "%s:%u: não foi possível ler diretório %s" - --#: catgets/gencat.c:109 --msgid "Do not use existing catalog, force new output file" --msgstr "Não usar catálogo existente, forçar novo arquivo de saída" -+#: elf/ldconfig.c:1281 -+#, c-format -+msgid "relative path `%s' used to build cache" -+msgstr "caminho relativo “%s” usado para compilar o cache" - --#: nis/ypclnt.c:841 --msgid "Domain not bound" --msgstr "Domínio não limitado (not bound)" -+#: elf/ldconfig.c:1311 -+#, c-format -+msgid "Can't chdir to /" -+msgstr "Não foi possível mudar o diretório para /" - --#: stdio-common/../sysdeps/unix/siglist.c:32 --#: sysdeps/unix/sysv/linux/siglist.h:53 --msgid "EMT trap" --msgstr "trap EMT" -+#: elf/ldconfig.c:1352 -+#, 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" - --#: nis/nis_print.c:120 --msgid "ENTRY\n" --msgstr "ENTRADA\n" -+#: elf/ldd.bash.in:42 -+msgid "Written by %s and %s.\n" -+msgstr "Escrito por %s e %s.\n" - --#: nis/nis_print.c:299 --msgid "Encrypted data\n" --msgstr "Dado criptografado\n" -+#: elf/ldd.bash.in:47 -+msgid "" -+"Usage: ldd [OPTION]... FILE...\n" -+" --help print this help and exit\n" -+" --version print version information and exit\n" -+" -d, --data-relocs process data relocations\n" -+" -r, --function-relocs process data and function relocations\n" -+" -u, --unused print unused direct dependencies\n" -+" -v, --verbose print all information\n" -+msgstr "" -+"Uso: ldd [OPÇÃO]... ARQUIVO...\n" -+" --help exibe essa ajuda e sai\n" -+" --version exibe informação da versão e sai\n" -+" -d, --data-relocs processa realocações de dados\n" -+" -r, --function-relocs processa realocações de dados e funções\n" -+" -u, --unused exibe dependências diretas não usadas\n" -+" -v, --verbose exibe todas informações\n" -+ -+#: elf/ldd.bash.in:80 -+msgid "ldd: option \\`$1' is ambiguous" -+msgstr "ldd: opção “$1” é ambígua" -+ -+#: elf/ldd.bash.in:87 -+msgid "unrecognized option" -+msgstr "opção não reconhecida" -+ -+#: elf/ldd.bash.in:88 elf/ldd.bash.in:125 -+msgid "Try \\`ldd --help' for more information." -+msgstr "Tente “ldd --help” para mais informações." -+ -+#: elf/ldd.bash.in:124 -+msgid "missing file arguments" -+msgstr "faltando argumento ARQUIVO" -+ -+#. 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 "Arquivo ou diretório inexistente" - --#: nis/nis_error.c:52 --msgid "Entry/Table type mismatch" --msgstr "Tipo de entrada/tabela incompatíveis" -+#: elf/ldd.bash.in:150 inet/rcmd.c:480 -+msgid "not regular file" -+msgstr "não é arquivo normal" - --#: nis/nis_error.c:56 --msgid "Error in RPC subsystem" --msgstr "Erro no subsistema RPC" -+# após "for" vem um nome de arquivo -+#: elf/ldd.bash.in:153 -+msgid "warning: you do not have execution permission for" -+msgstr "aviso: você não tem permissão para execução para" - --#: nis/nis_error.c:66 --msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?" --msgstr "Erro acessando arquivo inicial do NIS+. O NIS+ está instalado?" -+#: elf/ldd.bash.in:170 -+msgid "\tnot a dynamic executable" -+msgstr "\tnão é um executável dinâmico" - --#: string/../sysdeps/mach/_strerror.c:56 --#: sysdeps/mach/hurd/mips/dl-machine.c:67 --msgid "Error in unknown error system: " --msgstr "Falha no erro desconhecido do sistema: " -+#: elf/ldd.bash.in:178 -+msgid "exited with unknown exit code" -+msgstr "saiu com código de saída desconhecido" - --#: nis/nis_error.c:59 --msgid "Error while talking to callback proc" --msgstr "Erro durante a chamada a processo callback" -+# após "for" vem um nome de arquivo -+#: elf/ldd.bash.in:183 -+msgid "error: you do not have read permission for" -+msgstr "erro: você não possui permissão de leitura para" - --#: inet/ruserpass.c:161 --msgid "Error: .netrc file is readable by others." --msgstr "Erro: arquivo .netrc é legível por outros." -+#: elf/pldd-xx.c:105 -+#, c-format -+msgid "cannot find program header of process" -+msgstr "não foi possível localizar cabeçalho do programa do processo" - --#: stdio-common/../sysdeps/gnu/errlist.c:710 --msgid "Exchange full" --msgstr "Troca completa" -+#: elf/pldd-xx.c:110 -+#, c-format -+msgid "cannot read program header" -+msgstr "não foi possível ler o cabeçalho do programa" - --#. TRANS Invalid executable file format. This condition is detected by the --#. TRANS @code{exec} functions; see @ref{Executing a File}. --#: stdio-common/../sysdeps/gnu/errlist.c:75 --msgid "Exec format error" --msgstr "Erro no formato exec" -+#: elf/pldd-xx.c:135 -+#, c-format -+msgid "cannot read dynamic section" -+msgstr "não foi possível ler a seção dinâmica" - --#: locale/programs/localedef.c:190 --msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'" --msgstr "FATAL: sistema não define `_POSIX2_LOCALEDEF'" -+#: elf/pldd-xx.c:147 -+#, c-format -+msgid "cannot read r_debug" -+msgstr "não foi possível ler r_debug" - --#: locale/programs/localedef.c:99 --msgid "FILE contains mapping from symbolic names to UCS4 values" --msgstr "ARQUIVO contém mapas de nomes simbólicos para valores UCS4" -+#: elf/pldd-xx.c:167 -+#, c-format -+msgid "cannot read program interpreter" -+msgstr "não foi possível ler o interpretador de programa" - --#: sunrpc/clnt_perr.c:287 --msgid "Failed (unspecified error)" --msgstr "Falha (erro não especificado)" -+#: elf/pldd-xx.c:197 -+#, c-format -+msgid "cannot read link map" -+msgstr "não foi possível ler o mapa de links" - --#: stdio-common/../sysdeps/gnu/errlist.c:762 --msgid "File descriptor in bad state" --msgstr "Descritor de arquivo em mal estado" -+#: elf/pldd-xx.c:209 -+#, c-format -+msgid "cannot read object name" -+msgstr "não foi possível ler o nome do objeto" - --#. TRANS File exists; an existing file was specified in a context where it only --#. TRANS makes sense to specify a new file. --#: stdio-common/../sysdeps/gnu/errlist.c:134 --msgid "File exists" --msgstr "Arquivo existe" -+#: elf/pldd-xx.c:219 -+#, c-format -+msgid "cannot allocate buffer for object name" -+msgstr "não foi possível alocar buffer para o nome de objeto" - --#: stdio-common/../sysdeps/gnu/errlist.c:726 --msgid "File locking deadlock error" --msgstr "Erro de bloqueio em arquivo (deadlock)" -+#: elf/pldd.c:64 -+msgid "List dynamic shared objects loaded into process." -+msgstr "Lista objetos compartilhados dinâmicos carregados no processo." - --#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for --#. TRANS Files}) or host name too long (in @code{gethostname} or --#. TRANS @code{sethostname}; @pxref{Host Identification}). --#: stdio-common/../sysdeps/gnu/errlist.c:464 --msgid "File name too long" --msgstr "Nome de arquivo muito longo" -+#: elf/pldd.c:68 -+msgid "PID" -+msgstr "PID" - --#: stdio-common/../sysdeps/unix/siglist.c:50 --#: sysdeps/unix/sysv/linux/siglist.h:44 --msgid "File size limit exceeded" --msgstr "Excedido tamanho limite de arquivo" -+#: elf/pldd.c:100 -+#, c-format -+msgid "Exactly one parameter with process ID required.\n" -+msgstr "É necessário exatamente um parâmetro com ID de processo.\n" - --#. TRANS File too big; the size of a file would be larger than allowed by the system. --#: stdio-common/../sysdeps/gnu/errlist.c:202 --msgid "File too large" --msgstr "Arquivo muito grande" -+#: elf/pldd.c:112 -+#, c-format -+msgid "invalid process ID '%s'" -+msgstr "ID de processo inválido “%s”" - --#: nis/nis_error.c:37 --msgid "First/Next chain broken" --msgstr "Primeira/próxima corrente quebrada" -+#: elf/pldd.c:120 -+#, c-format -+msgid "cannot open %s" -+msgstr "não foi possível abrir %s" - --#: stdio-common/../sysdeps/unix/siglist.c:33 --#: sysdeps/unix/sysv/linux/siglist.h:28 --msgid "Floating point exception" --msgstr "Exceção de ponto flutuante" -+#: elf/pldd.c:152 -+#, c-format -+msgid "cannot open %s/task" -+msgstr "não foi possível abrir %s/tarefa" - --#: nis/nis_error.c:67 --msgid "Full resync required for directory" --msgstr "Resincronismo total necessário para o diretório" -+#: elf/pldd.c:155 -+#, c-format -+msgid "cannot prepare reading %s/task" -+msgstr "não foi possível preparar a leitura de %s/tarefa" - --#. TRANS Function not implemented. Some functions have commands or options defined --#. TRANS that might not be supported in all implementations, and this is the kind --#. TRANS of error you get if you request them and they are not supported. --#: stdio-common/../sysdeps/gnu/errlist.c:573 --msgid "Function not implemented" --msgstr "Função não implementada" -+#: elf/pldd.c:168 -+#, c-format -+msgid "invalid thread ID '%s'" -+msgstr "ID de thread “%s” inválido" - --#: nis/nis_print.c:114 --msgid "GROUP\n" --msgstr "GRUPO\n" -+#: elf/pldd.c:179 -+#, c-format -+msgid "cannot attach to process %lu" -+msgstr "não foi possível anexar ao processado %lu" - --#: argp/argp-help.c:231 -+#: elf/pldd.c:294 - #, c-format --msgid "Garbage in ARGP_HELP_FMT: %s" --msgstr "Lixo em ARGP_HELP_FMT: %s" -+msgid "cannot get information about process %lu" -+msgstr "não foi possível obter informação sobre o processo %lu" - --#: catgets/gencat.c:115 --msgid "" --"Generate message catalog.\\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" --"is -, output is written to standard output.\n" --msgstr "" --"Gera catálogo de mensagens.\\vSe ARQUIVO-DE-ENTRADA é -, a entrada é lidada entrada padrão. Se ARQUIVO-DE-SAÍDA\n" --"é -, a saída é escrita para a saída padrão.\n" -+#: elf/pldd.c:307 -+#, c-format -+msgid "process %lu is no ELF program" -+msgstr "processo %lu não é um programa ELF" - --#: nis/nis_error.c:36 --msgid "Generic system error" --msgstr "Erro desconhecido de sistema" -+#: elf/readelflib.c:34 -+#, c-format -+msgid "file %s is truncated\n" -+msgstr "arquivo %s está truncado\n" - --#: locale/programs/locale.c:75 --msgid "Get locale-specific information." --msgstr "Pegar informações específicas de localização." -+#: elf/readelflib.c:66 -+#, c-format -+msgid "%s is a 32 bit ELF file.\n" -+msgstr "%s é um arquivo ELF de 32 bits.\n" - --#: argp/argp-parse.c:88 --msgid "Give a short usage message" --msgstr "Retorna uma mensagem de uso curta" -+#: elf/readelflib.c:68 -+#, c-format -+msgid "%s is a 64 bit ELF file.\n" -+msgstr "%s é um arquivo ELF de 64 bits.\n" - --#: argp/argp-parse.c:87 --msgid "Give this help list" --msgstr "Retorna este arquivo de ajuda" -+#: elf/readelflib.c:70 -+#, c-format -+msgid "Unknown ELFCLASS in file %s.\n" -+msgstr "ELFCLASS desconhecida em arquivo %s.\n" - --#. TRANS This error code has no purpose. --#: stdio-common/../sysdeps/gnu/errlist.c:618 --msgid "Gratuitous error" --msgstr "Erro gratuito" -+#: elf/readelflib.c:77 -+#, c-format -+msgid "%s is not a shared object file (Type: %d).\n" -+msgstr "%s não é um arquivo de objeto compartilhado (Tipo: %d).\n" - --#: nis/nis_print.c:317 -+#: elf/readelflib.c:108 - #, c-format --msgid "Group : %s\n" --msgstr "Grupo : %s\n" -+msgid "more than one dynamic segment\n" -+msgstr "mais do que um segmento dinâmico\n" - --#: nis/nis_print.c:248 --msgid "Group Flags :" --msgstr "Indicadores de Grupo :" -+#: elf/readlib.c:103 -+#, c-format -+msgid "Cannot fstat file %s.\n" -+msgstr "Não é possível obter estado do arquivo %s.\n" - --#: nis/nis_print_group_entry.c:113 -+#: elf/readlib.c:114 - #, c-format --msgid "Group entry for \"%s.%s\" group:\n" --msgstr "Entrada de Grupo para grupo \"%s.%s\":\n" -+msgid "File %s is empty, not checked." -+msgstr "Arquivo %s está vazio, não verificado." - --#: argp/argp-parse.c:91 --msgid "Hang for SECS seconds (default 3600)" --msgstr "Pendurar por SEG segundos (o padrão é 3600)" -+#: elf/readlib.c:120 -+#, c-format -+msgid "File %s is too small, not checked." -+msgstr "Arquivo %s é pequeno demais, não verificado." - --#: stdio-common/../sysdeps/unix/siglist.c:26 --#: sysdeps/unix/sysv/linux/siglist.h:22 --msgid "Hangup" --msgstr "Desconexão" -+#: elf/readlib.c:130 -+#, c-format -+msgid "Cannot mmap file %s.\n" -+msgstr "Não foi possível executar mmap no arquivo %s.\n" - --#: nscd/grpcache.c:238 -+#: elf/readlib.c:169 - #, c-format --msgid "Haven't found \"%d\" in group cache!" --msgstr "Não encontrado \"%d\" no cache de grupo!" -+msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" -+msgstr "%s não é um arquivo ELF – ele tem os magic bytes errados no início.\n" - --#: nscd/pwdcache.c:235 -+#: elf/sln.c:76 - #, c-format --msgid "Haven't found \"%d\" in password cache!" --msgstr "Não encontrado \"%d\" no cache de senhas!" -+msgid "" -+"Usage: sln src dest|file\n" -+"\n" -+msgstr "" -+"Uso: sln fonte destino|arquivo\n" -+"\n" - --#: nscd/grpcache.c:210 -+#: elf/sln.c:97 - #, c-format --msgid "Haven't found \"%s\" in group cache!" --msgstr "Não encontrado \"%s\" no cache de grupo!" -+msgid "%s: file open error: %m\n" -+msgstr "%s: erro na abertura do arquivo: %m\n" - --#: nscd/hstcache.c:297 nscd/hstcache.c:328 nscd/hstcache.c:359 --#: nscd/hstcache.c:390 -+#: elf/sln.c:134 - #, c-format --msgid "Haven't found \"%s\" in hosts cache!" --msgstr "Não encontrado \"%s\" no cache de máquinas!" -+msgid "No target in line %d\n" -+msgstr "Nenhum alvo na linha %d\n" - --#: nscd/pwdcache.c:207 -+#: elf/sln.c:164 - #, c-format --msgid "Haven't found \"%s\" in password cache!" --msgstr "Não encontrado \"%s\" no cache de senhas! " -+msgid "%s: destination must not be a directory\n" -+msgstr "%s: destino não pode ser um diretório\n" - --#. TRANS The remote host for a requested network connection is down. --#: stdio-common/../sysdeps/gnu/errlist.c:469 --msgid "Host is down" --msgstr "Host está desligado" -+#: elf/sln.c:170 -+#, c-format -+msgid "%s: failed to remove the old destination\n" -+msgstr "%s: falha ao remover o destino antigo\n" - --#: resolv/herror.c:75 --msgid "Host name lookup failure" --msgstr "Falha na procura do nome de host" -+#: elf/sln.c:178 -+#, c-format -+msgid "%s: invalid destination: %s\n" -+msgstr "%s: destino inválido: %s\n" - --#: stdio-common/../sysdeps/unix/siglist.c:48 --#: sysdeps/unix/sysv/linux/siglist.h:42 --msgid "I/O possible" --msgstr "possível E/S" -+#: elf/sln.c:189 elf/sln.c:198 -+#, c-format -+msgid "Invalid link from \"%s\" to \"%s\": %s\n" -+msgstr "Link inválido de “%s” para “%s”: %s\n" - --#: db2/makedb.c:71 -+#: elf/sotruss.sh:32 -+#, sh-format - msgid "" --"INPUT-FILE OUTPUT-FILE\n" --"-o OUTPUT-FILE INPUT-FILE\n" --"-u INPUT-FILE" -+"Usage: sotruss [OPTION...] [--] EXECUTABLE [EXECUTABLE-OPTION...]\n" -+" -F, --from FROMLIST Trace calls from objects on FROMLIST\n" -+" -T, --to TOLIST Trace calls to objects on TOLIST\n" -+"\n" -+" -e, --exit Also show exits from the function calls\n" -+" -f, --follow Trace child processes\n" -+" -o, --output FILENAME Write output to FILENAME (or FILENAME.$PID in case\n" -+"\t\t\t -f is also used) instead of standard error\n" -+"\n" -+" -?, --help Give this help list\n" -+" --usage Give a short usage message\n" -+" --version Print program version" - msgstr "" --"ARQUIVO-ENTRADA ARQUIVO-SAÏDA\n" --"-o ARQUIVO-SAÍDA ARQUIVO-ENTRADA\n" --"-u ARQUIVO-ENTRADA" -+"Uso: sotruss [OPÇÃO...] [--] EXECUTÁVEL [OPÇÃO-EXECUTÁVEL...]\n" -+" -F, --from LISTA-DE Rastreia chamadas a partir de objetos na LISTA-DE\n" -+" -T, --to LISTA-PARA Rastreia chamadas para objetos na LISTA-PARA\n" -+"\n" -+" -e, --exit Também mostra saídas de chamadas de função\n" -+" -f, --follow Rastreia processos filhos\n" -+" -o, --output ARQUIVO Escreve a saída para ARQUIVO (ou ARQUIVO.$PID, caso\n" -+" -f também seja usada) em vez da saída de erro\n" -+"\n" -+" -?, --help Fornece essa lista de ajuda\n" -+" --usage Fornece uma mensagem curta de uso\n" -+" --version Exibe a versão do programa" - --#: stdio-common/../sysdeps/unix/siglist.c:31 --msgid "IOT trap" --msgstr "trap IOT" -+# caractere de nova linha (\n) inserido visando não ultrapassar 80 caracteres. -+#: elf/sotruss.sh:46 -+msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n" -+msgstr "Argumentos obrigatórios para opções longas são também obrigatórios para\\nqualquer opção curta correspondente.\\n" - --#: nis/nis_print.c:35 --msgid "IVY" --msgstr "IVY" -+#: elf/sotruss.sh:55 -+msgid "%s: option requires an argument -- '%s'\\n" -+msgstr "%s: opção requer um argumento -- “%s”\\n" - --#: stdio-common/../sysdeps/gnu/errlist.c:626 --msgid "Identifier removed" --msgstr "Identificador removido" -+#: elf/sotruss.sh:61 -+msgid "%s: option is ambiguous; possibilities:" -+msgstr "%s: opção é ambígua; possibilidades:" - --#: stdio-common/../sysdeps/unix/siglist.c:29 --#: sysdeps/unix/sysv/linux/siglist.h:25 --msgid "Illegal instruction" --msgstr "Instrução ilegal" -+#: elf/sotruss.sh:79 -+msgid "Written by %s.\\n" -+msgstr "Escrito por %s.\\n" - --#: nis/nis_error.c:61 --msgid "Illegal object type for operation" --msgstr "Tipo ilegal de objeto para a operação" -- --#. TRANS Invalid seek operation (such as on a pipe). --#: stdio-common/../sysdeps/gnu/errlist.c:213 --msgid "Illegal seek" --msgstr "Procura ilegal" -+#: elf/sotruss.sh:86 -+msgid "" -+"Usage: %s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n" -+"\t [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\n" -+"\t [--help] [--usage] [--version] [--]\n" -+"\t EXECUTABLE [EXECUTABLE-OPTION...]\\n" -+msgstr "" -+"Uso: %s [-ef] [-F LISTA-DE] [-o ARQUIVO] [-T LISTA-PARA] [--exit]\n" -+"\t [--follow] [--from LISTA-DE] [--output ARQUIVO] [--to LISTA-PARA]\n" -+"\t [--help] [--usage] [--version] [--]\n" -+"\t EXECUTÁVEL [OPÇÃO-EXECUTÁVEL...]\\n" - --#. TRANS Inappropriate file type or format. The file was the wrong type for the --#. TRANS operation, or a data file had the wrong format. --#. TRANS --#. TRANS On some systems @code{chmod} returns this error if you try to set the --#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}. --#: stdio-common/../sysdeps/gnu/errlist.c:556 --msgid "Inappropriate file type or format" --msgstr "Tipo ou formato de arquivo inapropriado" -+#: elf/sotruss.sh:134 -+msgid "%s: unrecognized option '%c%s'\\n" -+msgstr "%s: opção não reconhecida “%c%s”\\n" - --#. TRANS Inappropriate I/O control operation, such as trying to set terminal --#. TRANS modes on an ordinary file. --#: stdio-common/../sysdeps/gnu/errlist.c:188 --msgid "Inappropriate ioctl for device" --msgstr "ioctl inapropriado para dispositivo" -+#: elf/sprof.c:77 -+msgid "Output selection:" -+msgstr "Seleção de saída:" - --#. TRANS In the GNU system, servers supporting the @code{term} protocol return --#. TRANS this error for certain operations when the caller is not in the --#. TRANS foreground process group of the terminal. Users do not usually see this --#. TRANS error because functions such as @code{read} and @code{write} translate --#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control}, --#. TRANS for information on process groups and these signals. --#: stdio-common/../sysdeps/gnu/errlist.c:589 --msgid "Inappropriate operation for background process" --msgstr "Operação inapropriada para processo em background" -+#: elf/sprof.c:79 -+msgid "print list of count paths and their number of use" -+msgstr "mostra lista de número de rotas e seu número de uso" - --#: sysdeps/unix/sysv/linux/siglist.h:62 --msgid "Information request" --msgstr "Requesição de informação" -+#: elf/sprof.c:81 -+msgid "generate flat profile with counts and ticks" -+msgstr "gera perfil com contadores e “ticks”" - --#: iconv/iconv_prog.c:57 --msgid "Information:" --msgstr "Informação:" -+#: elf/sprof.c:82 -+msgid "generate call graph" -+msgstr "gera gráfico de chamadas" - --#: locale/programs/localedef.c:94 --msgid "Input Files:" --msgstr "Arquivos de entrada:" -+#: elf/sprof.c:89 -+msgid "Read and display shared object profiling data." -+msgstr "Lê e mostra dados de perfil do objeto compartilhado." - --#: iconv/iconv_prog.c:54 --msgid "Input/Output format specification:" --msgstr "Especificação de formato de Entrada/Saída:" -+#: elf/sprof.c:94 -+msgid "SHOBJ [PROFDATA]" -+msgstr "SHOBJ [DADOSPERFIL]" - --#. TRANS Input/output error; usually used for physical read or write errors. --#: stdio-common/../sysdeps/gnu/errlist.c:52 --msgid "Input/output error" --msgstr "Erro de entrada/saída" -+#: elf/sprof.c:433 -+#, c-format -+msgid "failed to load shared object `%s'" -+msgstr "falha no carregamento do objeto compartilhado “%s”" - --#: nis/ypclnt.c:775 --msgid "Internal NIS error" --msgstr "Erro NIS interno" -+#: elf/sprof.c:442 elf/sprof.c:825 elf/sprof.c:923 -+#, c-format -+msgid "cannot create internal descriptor" -+msgstr "não é possível criar descritor interno" - --#: nis/ypclnt.c:839 --msgid "Internal ypbind error" --msgstr "Erro interno de ypbind" -+#: elf/sprof.c:554 -+#, c-format -+msgid "Reopening shared object `%s' failed" -+msgstr "Reabertura de objeto compartilhado “%s” falhou" - --#: stdio-common/../sysdeps/unix/siglist.c:27 --#: sysdeps/unix/sysv/linux/siglist.h:23 --msgid "Interrupt" --msgstr "Interrupção" -+#: elf/sprof.c:561 elf/sprof.c:656 -+#, c-format -+msgid "reading of section headers failed" -+msgstr "a leitura de cabeçalhos de seção falhou" - --#. TRANS Interrupted function call; an asynchronous signal occurred and prevented --#. TRANS completion of the call. When this happens, you should try the call --#. TRANS again. --#. TRANS --#. TRANS You can choose to have functions resume after a signal that is handled, --#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted --#. TRANS Primitives}. --#: stdio-common/../sysdeps/gnu/errlist.c:47 --msgid "Interrupted system call" --msgstr "Chamada de sistema interrompida" -+#: elf/sprof.c:569 elf/sprof.c:664 -+#, c-format -+msgid "reading of section header string table failed" -+msgstr "a leitura da tabela de string do cabeçalho da seção falhou" - --#: stdio-common/../sysdeps/gnu/errlist.c:666 --msgid "Interrupted system call should be restarted" --msgstr "Chamada de sistema interrompida deve ser reiniciada" -+#: elf/sprof.c:595 -+#, c-format -+msgid "*** Cannot read debuginfo file name: %m\n" -+msgstr "*** Não foi possível ler o arquivo de debuginfo: %m\n" - --#: nis/nis_error.c:44 --msgid "Invalid Object for operation" --msgstr "Objeto inválido para operação" -+#: elf/sprof.c:616 -+#, c-format -+msgid "cannot determine file name" -+msgstr "não foi possível determinar o nome do arquivo" - --#. TRANS Invalid argument. This is used to indicate various kinds of problems --#. TRANS with passing the wrong argument to a library function. --#: stdio-common/../sysdeps/gnu/errlist.c:164 --msgid "Invalid argument" --msgstr "Argumento inválido" -+#: elf/sprof.c:649 -+#, c-format -+msgid "reading of ELF header failed" -+msgstr "a leitura de cabeçalho de ELF falhou" - --#: posix/regex.c:1018 --msgid "Invalid back reference" --msgstr "Referência anterior inválida" -+#: elf/sprof.c:685 -+#, c-format -+msgid "*** The file `%s' is stripped: no detailed analysis possible\n" -+msgstr "*** O arquivo “%s” está sem símbolos (stripped): análise detalhada é impossível\n" - --#: posix/regex.c:1016 --msgid "Invalid character class name" --msgstr "Nome de classe de caracter inválido" -+#: elf/sprof.c:715 -+#, c-format -+msgid "failed to load symbol data" -+msgstr "falha ao carregar dados de símbolos" - --#: sunrpc/clnt_perr.c:275 --msgid "Invalid client credential" --msgstr "Credencial de cliente inválido" -+#: elf/sprof.c:780 -+#, c-format -+msgid "cannot load profiling data" -+msgstr "impossível carregar dados de perfil" - --#: sunrpc/clnt_perr.c:279 --msgid "Invalid client verifier" --msgstr "Verificador de cliente inválido" -+#: elf/sprof.c:789 -+#, c-format -+msgid "while stat'ing profiling data file" -+msgstr "enquanto obtinha estado do arquivo de dados de perfil" - --#: posix/regex.c:1015 --msgid "Invalid collation character" --msgstr "Caracter de comparação inválido" -+#: elf/sprof.c:797 -+#, c-format -+msgid "profiling data file `%s' does not match shared object `%s'" -+msgstr "arquivo de dados de perfil “%s” não coincide com objetos compartilhados “%s”" - --#: posix/regex.c:1022 --msgid "Invalid content of \\{\\}" --msgstr "Conteúdo inválido de \\{\\}" -+#: elf/sprof.c:808 -+#, c-format -+msgid "failed to mmap the profiling data file" -+msgstr "falha para mapear (mmap) o arquivo de dados de perfil" - --#. TRANS An attempt to make an improper link across file systems was detected. --#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but --#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}). --#: stdio-common/../sysdeps/gnu/errlist.c:141 --msgid "Invalid cross-device link" --msgstr "Link entre dispositivos inválido" -+#: elf/sprof.c:816 -+#, c-format -+msgid "error while closing the profiling data file" -+msgstr "erro ao fechar arquivo de dados de perfil" - --#: stdio-common/../sysdeps/gnu/errlist.c:702 --msgid "Invalid exchange" --msgstr "Troca inválida" -+#: elf/sprof.c:899 -+#, c-format -+msgid "`%s' is no correct profile data file for `%s'" -+msgstr "“%s” não é o arquivo de perfil de dados correto para “%s”" - --#. TRANS While decoding a multibyte character the function came along an invalid --#. TRANS or an incomplete sequence of bytes or the given wide character is invalid. --#: stdio-common/../sysdeps/gnu/errlist.c:579 --msgid "Invalid or incomplete multibyte or wide character" --msgstr "Multibyte ou caracter largo inválido" -+#: elf/sprof.c:1080 elf/sprof.c:1138 -+#, c-format -+msgid "cannot allocate symbol data" -+msgstr "não foi possível alocar dados de símbolos" - --#: posix/regex.c:1025 --msgid "Invalid preceding regular expression" --msgstr "Expressão regular precedente inválida" -+#: iconv/iconv_charmap.c:141 iconv/iconv_prog.c:445 -+#, c-format -+msgid "cannot open output file" -+msgstr "não foi possível abrir arquivo de saída" - --#: posix/regex.c:1023 --msgid "Invalid range end" --msgstr "Intervalo final inválida" -+#: iconv/iconv_charmap.c:187 iconv/iconv_prog.c:308 -+#, c-format -+msgid "error while closing input `%s'" -+msgstr "erro ao fechar a entrada “%s”" - --#: posix/regex.c:1014 --msgid "Invalid regular expression" --msgstr "Expressão regular inválida" -+#: iconv/iconv_charmap.c:435 -+#, c-format -+msgid "illegal input sequence at position %Zd" -+msgstr "sequência de entrada ilegal na posição %Zd" - --#: stdio-common/../sysdeps/gnu/errlist.c:718 --msgid "Invalid request code" --msgstr "Código de requisição inválido" -+#: iconv/iconv_charmap.c:454 iconv/iconv_prog.c:536 -+#, c-format -+msgid "incomplete character or shift sequence at end of buffer" -+msgstr "caractere incompleto ou mudança de sequência no final do buffer" - --#: stdio-common/../sysdeps/gnu/errlist.c:706 --msgid "Invalid request descriptor" --msgstr "Descritor de requisição inválido" -+#: 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 "erro ao ler a entrada" - --#: sunrpc/clnt_perr.c:285 --msgid "Invalid server verifier" --msgstr "Verificador de servidor inválido" -+#: iconv/iconv_charmap.c:517 iconv/iconv_prog.c:597 -+#, c-format -+msgid "unable to allocate buffer for input" -+msgstr "não foi possível alocar espaço para entrada" - --#: stdio-common/../sysdeps/gnu/errlist.c:722 --msgid "Invalid slot" --msgstr "Slot inválido" -+#: iconv/iconv_prog.c:59 -+msgid "Input/Output format specification:" -+msgstr "Especificação de formato de entrada/saída:" - --#. TRANS File is a directory; you cannot open a directory for writing, --#. TRANS or create or remove hard links to it. --#: stdio-common/../sysdeps/gnu/errlist.c:158 --msgid "Is a directory" --msgstr "É um diretório" -+#: iconv/iconv_prog.c:60 -+msgid "encoding of original text" -+msgstr "codificação para o texto original" - --#: stdio-common/../sysdeps/gnu/errlist.c:806 --msgid "Is a named type file" --msgstr "É um arquivo tipo nomeável" -+#: iconv/iconv_prog.c:61 -+msgid "encoding for output" -+msgstr "codificação para a saída" - --#: nis/nis_print.c:187 --msgid "Kerberos.\n" --msgstr "Kerberos.\n" -+#: iconv/iconv_prog.c:62 -+msgid "Information:" -+msgstr "Informação:" - --#: stdio-common/../sysdeps/unix/siglist.c:34 --#: sysdeps/unix/sysv/linux/siglist.h:29 --msgid "Killed" --msgstr "Morto" -+#: iconv/iconv_prog.c:63 -+msgid "list all known coded character sets" -+msgstr "lista todas as coleções de caracteres codificados" - --#: nis/nis_print.c:123 --msgid "LINK\n" --msgstr "LINK\n" -+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:120 -+msgid "Output control:" -+msgstr "Controle de saída:" - --#: nis/nis_local_names.c:125 --#, c-format --msgid "LOCAL entry for UID %d in directory %s not unique\n" --msgstr "Entrada LOCAL para UID %d no diretório %s não é única\n" -+#: iconv/iconv_prog.c:65 -+msgid "omit invalid characters from output" -+msgstr "omite caracteres inválidos da saída" - --#: stdio-common/../sysdeps/gnu/errlist.c:698 --msgid "Level 2 halted" --msgstr "Parada de sistema nível 2" -+#: 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 -+#: malloc/memusagestat.c:56 -+msgid "FILE" -+msgstr "ARQUIVO" - --#: stdio-common/../sysdeps/gnu/errlist.c:674 --msgid "Level 2 not synchronized" --msgstr "Nível 2 não sincronizado" -+#: iconv/iconv_prog.c:66 -+msgid "output file" -+msgstr "arquivo de saída" - --#: stdio-common/../sysdeps/gnu/errlist.c:678 --msgid "Level 3 halted" --msgstr "Nível 3 parado" -+#: iconv/iconv_prog.c:67 -+msgid "suppress warnings" -+msgstr "suprime avisos" - --#: stdio-common/../sysdeps/gnu/errlist.c:682 --msgid "Level 3 reset" --msgstr "Nível 3 resetado" -+#: iconv/iconv_prog.c:68 -+msgid "print progress information" -+msgstr "mostra informações de progresso" - --#: nis/nis_error.c:53 --msgid "Link Points to illegal name" --msgstr "Vínculo aponta para nome ilegal" -+#: iconv/iconv_prog.c:73 -+msgid "Convert encoding of given files from one encoding to another." -+msgstr "Converte codificação dos arquivos dados de uma codificação para outra." - --#: stdio-common/../sysdeps/gnu/errlist.c:638 --msgid "Link has been severed" --msgstr "Link foi cortado" -+#: iconv/iconv_prog.c:77 -+msgid "[FILE...]" -+msgstr "[ARQUIVO...]" - --#: stdio-common/../sysdeps/gnu/errlist.c:686 --msgid "Link number out of range" --msgstr "Número de link fora da faixa" -+#: iconv/iconv_prog.c:230 -+#, c-format -+msgid "conversions from `%s' and to `%s' are not supported" -+msgstr "não há suporte para as conversões de “%s” e para “%s”" - --#: nis/nis_print.c:282 --msgid "Linked Object Type : " --msgstr "Tipo de Objeto Vinculado (linked) : " -+#: iconv/iconv_prog.c:235 -+#, c-format -+msgid "conversion from `%s' is not supported" -+msgstr "não há suporte para a conversão de “%s”" - --#: nis/nis_print.c:284 -+#: iconv/iconv_prog.c:242 - #, c-format --msgid "Linked to : %s\n" --msgstr "Vinculado (linked) para : %s\n" -+msgid "conversion to `%s' is not supported" -+msgstr "não há suporte para a conversão para “%s”" - --#: nis/ypclnt.c:787 --msgid "Local domain name not set" --msgstr "Não foi configurado nome de domínio local" -+#: iconv/iconv_prog.c:246 -+#, c-format -+msgid "conversion from `%s' to `%s' is not supported" -+msgstr "não há suporte para a conversão de “%s” para “%s”" - --#: nis/ypclnt.c:777 --msgid "Local resource allocation failure" --msgstr "Falha na alocação de recurso local" -+#: iconv/iconv_prog.c:256 -+#, c-format -+msgid "failed to start conversion processing" -+msgstr "falha ao iniciar o processo de conversão" - --#: stdio-common/../sysdeps/gnu/errlist.c:734 --msgid "Machine is not on the network" --msgstr "A maquina não está na rede" -+#: iconv/iconv_prog.c:354 -+#, c-format -+msgid "error while closing output file" -+msgstr "erro ao fechar o arquivo de saída" - --#: nis/nis_error.c:45 --msgid "Malformed Name, or illegal name" --msgstr "Nome malformado ou ilegal" -+#: iconv/iconv_prog.c:455 -+#, c-format -+msgid "conversion stopped due to problem in writing the output" -+msgstr "a conversão parou devido a problemas de escrita na saída" - --#: argp/argp-help.c:1182 --msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." --msgstr "Parâmetros obrigatórios ou opcionais para opções longas são também obrigatórios ou opcionais para qualquer opção curta correspondente." -+#: iconv/iconv_prog.c:532 -+#, c-format -+msgid "illegal input sequence at position %ld" -+msgstr "sequência de entrada ilegal na posição %ld" - --#: nis/nis_print.c:168 --msgid "Master Server :\n" --msgstr "Servidor Mestre :\n" -+#: iconv/iconv_prog.c:540 -+#, c-format -+msgid "internal error (illegal descriptor)" -+msgstr "erro interno (descritor ilegal)" - --#: nis/nis_error.c:75 --msgid "Master server busy, full dump rescheduled." --msgstr "Servidor Mestre ocupado, descarregamento completo (dump) remarcado." -+#: iconv/iconv_prog.c:543 -+#, c-format -+msgid "unknown iconv() error %d" -+msgstr "erro iconv() desconhecido: %d" - --#: posix/../sysdeps/posix/gai_strerror.c:35 --msgid "Memory allocation failure" --msgstr "Falha de alocação de memória" -+#: iconv/iconv_prog.c:786 -+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" -+"the FROM and TO command line parameters. One coded character set can be\n" -+"listed with several different names (aliases).\n" -+"\n" -+" " -+msgstr "" -+"A lista a seguir contém todos os conjuntos de codificação de caracteres \n" -+"conhecidos. Isto não quer dizer necessariamente que todas as combinações\n" -+"destes nomes podem ser utilizadas nos parâmetros DE e PARA. Um conjunto\n" -+"de caracteres pode ser listado com vários nomes diferentes (apelidos).\n" -+"\n" -+" " - --#: posix/regex.c:1024 --msgid "Memory exhausted" --msgstr "Memória esgotada" -+#: iconv/iconvconfig.c:109 -+msgid "Create fastloading iconv module configuration file." -+msgstr "Cria um arquivo de configuração para carregamento rápido de módulos iconv." - --#. TRANS The size of a message sent on a socket was larger than the supported --#. TRANS maximum size. --#: stdio-common/../sysdeps/gnu/errlist.c:317 --msgid "Message too long" --msgstr "Mensagem muito longa" -+#: iconv/iconvconfig.c:113 -+msgid "[DIR...]" -+msgstr "[DIR...]" - --#: nis/nis_error.c:57 --msgid "Missing or malformed attribute" --msgstr "Atributo perdido ou malformado" -+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:123 -+msgid "PATH" -+msgstr "CAMINHO" - --#: nis/nis_print.c:323 --#, c-format --msgid "Mod. Time : %s" --msgstr "Horário Mod. : %s" -+#: iconv/iconvconfig.c:127 -+msgid "Prefix used for all file accesses" -+msgstr "Prefixo usado para todos os acessos a arquivos" - --#: nis/nis_error.c:50 --msgid "Modification failed" --msgstr "Modificação falhou" -+#: iconv/iconvconfig.c:128 -+msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)" -+msgstr "Coloca saída em ARQUIVO, em vez da localização instalada (--prefix não se aplica a ARQUIVO)" - --#: nis/nis_error.c:63 --msgid "Modify operation failed" --msgstr "Operação de modificação falhou" -+#: iconv/iconvconfig.c:132 -+msgid "Do not search standard directories, only those on the command line" -+msgstr "Não pesquisa por diretórios padrões, e sim apenas por aqueles na linha de comando" - --#: locale/programs/locale.c:68 --msgid "Modify output format:" --msgstr "Formato de modificação de saída:" -+#: iconv/iconvconfig.c:299 -+#, c-format -+msgid "Directory arguments required when using --nostdlib" -+msgstr "Argumentos de diretório são necessários ao usar --nostdlib" - --#: stdio-common/../sysdeps/gnu/errlist.c:630 --msgid "Multihop attempted" --msgstr "Tentativa de Multihop" -+#: iconv/iconvconfig.c:341 -+#, c-format -+msgid "no output file produced because warnings were issued" -+msgstr "nenhum arquivo de saída foi produzido porque avisos foram emitidos" - --#: catgets/gencat.c:106 catgets/gencat.c:110 db2/makedb.c:59 --#: locale/programs/localedef.c:115 nscd/nscd.c:77 --msgid "NAME" --msgstr "NOME" -+#: iconv/iconvconfig.c:430 -+#, c-format -+msgid "while inserting in search tree" -+msgstr "erro ao inserir na área de pesquisa" - --#: locale/programs/locale.c:78 --msgid "" --"NAME\n" --"[-a|-m]" --msgstr "" --"NOME\n" --"[-a|-m]" -+#: iconv/iconvconfig.c:1238 -+#, c-format -+msgid "cannot generate output file" -+msgstr "não foi possível gerar o arquivo de saída" - --#: nis/nis_print.c:31 --msgid "NIS" --msgstr "NIS" -+#: inet/rcmd.c:157 -+msgid "rcmd: Cannot allocate memory\n" -+msgstr "rcmd: Não foi possível alocar memória\n" - --#: nis/ypclnt.c:791 --msgid "NIS client/server version mismatch - can't supply service" --msgstr "Versões cliente/servidor NIS não conferem - não é possível oferecer serviço" -+#: inet/rcmd.c:174 -+msgid "rcmd: socket: All ports in use\n" -+msgstr "rcmd: socket: Todas as portas em uso\n" - --#: nis/ypclnt.c:789 --msgid "NIS map database is bad" --msgstr "Base de dados de mapas NIS está ruim" -+#: inet/rcmd.c:202 -+#, c-format -+msgid "connect to address %s: " -+msgstr "conectar ao endereço %s: " - --#: nis/nis_error.c:68 --msgid "NIS+ operation failed" --msgstr "Operação NIS+ falhou" -+#: inet/rcmd.c:215 -+#, c-format -+msgid "Trying %s...\n" -+msgstr "Tentando %s...\n" - --#: nis/nis_error.c:33 --msgid "NIS+ servers unreachable" --msgstr "Servidores NIS+ fora do alcance" -+#: inet/rcmd.c:251 -+#, c-format -+msgid "rcmd: write (setting up stderr): %m\n" -+msgstr "rcmd: write (configurando stderr): %m\n" - --#: nis/nis_error.c:69 --msgid "NIS+ service is unavailable or not installed" --msgstr "Serviço NIS+ está indisponível ou não está instalado" -+#: inet/rcmd.c:267 -+#, c-format -+msgid "rcmd: poll (setting up stderr): %m\n" -+msgstr "rcmd: poll (configurando stderr): %m\n" - --#: nis/nis_print.c:108 --msgid "NO OBJECT\n" --msgstr "SEM OBJETO\n" -+#: inet/rcmd.c:270 -+msgid "poll: protocol failure in circuit setup\n" -+msgstr "poll: falha de protocolo na configuração do circuito\n" - --#: nscd/nscd.c:81 --msgid "NUMBER" --msgstr "NÚMERO" -+#: inet/rcmd.c:302 -+msgid "socket: protocol failure in circuit setup\n" -+msgstr "socket: falha de protocolo na configuração do circuito\n" - --#: nis/nis_print.c:162 -+#: inet/rcmd.c:326 - #, c-format --msgid "Name : '%s'\n" --msgstr "Nome : `%s'\n" -+msgid "rcmd: %s: short read" -+msgstr "rcmd: %s: leitura insuficiente" - --#: nscd/nscd.c:88 --msgid "Name Service Cache Daemon." --msgstr "Servidor de Cache de Nomes." -+#: inet/rcmd.c:478 -+msgid "lstat failed" -+msgstr "lstat falhou" - --#: nis/nis_error.c:40 --msgid "Name not served by this server" --msgstr "Nome não servidor por este servidor" -+#: inet/rcmd.c:485 -+msgid "cannot open" -+msgstr "não foi possível abrir" - --#: stdio-common/../sysdeps/gnu/errlist.c:758 --msgid "Name not unique on network" --msgstr "O nome não é único na rede" -+#: inet/rcmd.c:487 -+msgid "fstat failed" -+msgstr "fstat falhou" - --#: posix/../sysdeps/posix/gai_strerror.c:37 --msgid "Name or service not known" --msgstr "Nome ou serviço desconhecido" -+#: inet/rcmd.c:489 -+msgid "bad owner" -+msgstr "dono inválido" - --#: nis/nis_error.c:49 --msgid "Name/entry isn't unique" --msgstr "Nome/entrada não é único" -+#: inet/rcmd.c:491 -+msgid "writeable by other than owner" -+msgstr "permissão de escrita para outros" - --#: nis/nis_error.c:58 --msgid "Named object is not searchable" --msgstr "Objeto nomeado não é pesquisável" -+#: inet/rcmd.c:493 -+msgid "hard linked somewhere" -+msgstr "link absoluto em algum lugar" - --#. TRANS ??? --#: stdio-common/../sysdeps/gnu/errlist.c:566 --msgid "Need authenticator" --msgstr "É necessário um autenticador" -+#: inet/ruserpass.c:165 inet/ruserpass.c:188 -+msgid "out of memory" -+msgstr "memória insuficiente" - --#. TRANS A network connection was reset because the remote host crashed. --#: stdio-common/../sysdeps/gnu/errlist.c:389 --msgid "Network dropped connection on reset" --msgstr "A rede desconectou-se ao resetar" -+#: inet/ruserpass.c:179 -+msgid "Error: .netrc file is readable by others." -+msgstr "Erro: arquivo .netrc é legível por outros." - --#. TRANS A socket operation failed because the network was down. --#: stdio-common/../sysdeps/gnu/errlist.c:378 --msgid "Network is down" --msgstr "A rede não responde" -+#: inet/ruserpass.c:180 -+msgid "Remove password or make file unreadable by others." -+msgstr "Remove a senha ou torne arquivo não-legível por outros." - --#. TRANS A socket operation failed because the subnet containing the remote host --#. TRANS was unreachable. --#: stdio-common/../sysdeps/gnu/errlist.c:384 --msgid "Network is unreachable" --msgstr "A rede está fora de alcance" -+#: inet/ruserpass.c:199 -+#, c-format -+msgid "Unknown .netrc keyword %s" -+msgstr "Palavra-chave em .netrc desconhecida %s" - --#: stdio-common/../sysdeps/gnu/errlist.c:694 --msgid "No CSI structure available" --msgstr "Não há estrutura CSI disponível" -+#: libidn/nfkc.c:463 -+msgid "Character out of range for UTF-8" -+msgstr "Caractere fora do limite para UTF-8" - --#: stdio-common/../sysdeps/gnu/errlist.c:802 --msgid "No XENIX semaphores available" --msgstr "Não há semáforos XENIX disponíveis" -+#: locale/programs/charmap-dir.c:56 -+#, c-format -+msgid "cannot read character map directory `%s'" -+msgstr "não é possível ler diretório de mapa de caracteres “%s”" - --#: posix/../sysdeps/posix/gai_strerror.c:36 --msgid "No address associated with hostname" --msgstr "Não há endereço associado com o nome" -+#: locale/programs/charmap.c:138 -+#, c-format -+msgid "character map file `%s' not found" -+msgstr "arquivo de mapa de caracteres “%s” não foi localizado" - --#: resolv/herror.c:77 --msgid "No address associated with name" --msgstr "Não há endereço associado com o nome" -+#: locale/programs/charmap.c:196 -+#, c-format -+msgid "default character map file `%s' not found" -+msgstr "arquivo padrão de mapa de caracteres “%s” não localizado" - --#: stdio-common/../sysdeps/gnu/errlist.c:714 --msgid "No anode" --msgstr "Sem anode" -+#: locale/programs/charmap.c:265 -+#, c-format -+msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant [--no-warnings=ascii]" -+msgstr "mapa de caracteres “%s” não é compatível com ASCII; localidade não é compatível com C ISO [--no-warnings=ascii]" - --#. 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 --#. TRANS other from network operations. --#: stdio-common/../sysdeps/gnu/errlist.c:408 --msgid "No buffer space available" --msgstr "Não há espaço de buffer disponível" -+#: locale/programs/charmap.c:343 -+#, c-format -+msgid "%s: must be greater than \n" -+msgstr "%s: deve ser maior que \n" - --#. TRANS There are no child processes. This error happens on operations that are --#. TRANS supposed to manipulate child processes, when there aren't any processes --#. TRANS to manipulate. --#: stdio-common/../sysdeps/gnu/errlist.c:89 --msgid "No child processes" --msgstr "Não há processos filhos" -+#: locale/programs/charmap.c:363 locale/programs/charmap.c:380 -+#: locale/programs/repertoire.c:173 -+#, c-format -+msgid "syntax error in prolog: %s" -+msgstr "erro de sintaxe em prolog: %s" - --#: stdio-common/../sysdeps/gnu/errlist.c:634 --msgid "No data available" --msgstr "Não há dados disponíveis" -+#: locale/programs/charmap.c:364 -+msgid "invalid definition" -+msgstr "definição inválida" - --#: nis/nis_error.c:73 --msgid "No file space on server" --msgstr "Não há espaço disponível no servidor" -+#: locale/programs/charmap.c:381 locale/programs/locfile.c:131 -+#: locale/programs/locfile.c:158 locale/programs/repertoire.c:174 -+msgid "bad argument" -+msgstr "argumento inválido" - --#. TRANS No locks available. This is used by the file locking facilities; see --#. TRANS @ref{File Locks}. This error is never generated by the GNU system, but --#. TRANS it can result from an operation to an NFS server running another --#. TRANS operating system. --#: stdio-common/../sysdeps/gnu/errlist.c:547 --msgid "No locks available" --msgstr "Não há locks disponíveis" -+#: locale/programs/charmap.c:408 -+#, c-format -+msgid "duplicate definition of <%s>" -+msgstr "definição duplicada de <%s>" - --#: posix/regex.c:1013 --msgid "No match" --msgstr "Não confere" -+#: locale/programs/charmap.c:415 -+#, c-format -+msgid "value for <%s> must be 1 or greater" -+msgstr "o valor para <%s> deve ser 1 ou maior" - --#: stdio-common/../sysdeps/gnu/errlist.c:814 --msgid "No medium found" --msgstr "Mídia não encontrada" -+#: locale/programs/charmap.c:427 -+#, c-format -+msgid "value of <%s> must be greater or equal than the value of <%s>" -+msgstr "o valor de <%s> deve ser maior ou igual ao valor de <%s>" - --#: stdio-common/../sysdeps/gnu/errlist.c:642 --msgid "No message of desired type" --msgstr "Não há mensagens do tipo desejado" -+#: locale/programs/charmap.c:450 locale/programs/repertoire.c:182 -+#, c-format -+msgid "argument to <%s> must be a single character" -+msgstr "o argumento para <%s> deve ser um caractere simples" - --#: nis/ypclnt.c:779 --msgid "No more records in map database" --msgstr "Não há mais registros no banco de dados map" -+#: locale/programs/charmap.c:476 -+msgid "character sets with locking states are not supported" -+msgstr "não há suporte a conjuntos de caracteres com estados de trava" - --#: posix/regex.c:5515 --msgid "No previous regular expression" --msgstr "Não há expressão regular anterior" -+#: 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 -+#, c-format -+msgid "syntax error in %s definition: %s" -+msgstr "erro de sintaxe na definição %s: %s" - --#: sunrpc/rpcinfo.c:570 --msgid "No remote programs registered.\n" --msgstr "Não há programas remotos registrados.\n" -+#: locale/programs/charmap.c:504 locale/programs/charmap.c:684 -+#: locale/programs/charmap.c:780 locale/programs/repertoire.c:229 -+msgid "no symbolic name given" -+msgstr "nenhum nome simbólico dado" - --#. TRANS The remote host for a requested network connection is not reachable. --#: stdio-common/../sysdeps/gnu/errlist.c:474 --msgid "No route to host" --msgstr "Não há rota para o host" -+#: locale/programs/charmap.c:558 -+msgid "invalid encoding given" -+msgstr "codificação inválida dada" - --#. TRANS No space left on device; write operation on a file failed because the --#. TRANS disk is full. --#: stdio-common/../sysdeps/gnu/errlist.c:208 --msgid "No space left on device" --msgstr "Não há espaço disponível no dispositivo" -+#: locale/programs/charmap.c:567 -+msgid "too few bytes in character encoding" -+msgstr "poucos bytes na codificação do caractere" - --#. TRANS The wrong type of device was given to a function that expects a --#. TRANS particular sort of device. --#: stdio-common/../sysdeps/gnu/errlist.c:147 --msgid "No such device" --msgstr "Dispositivo inexistente" -+#: locale/programs/charmap.c:569 -+msgid "too many bytes in character encoding" -+msgstr "muitos bytes na codificação do caractere" - --#. TRANS No such file or directory. 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. --#: stdio-common/../sysdeps/gnu/errlist.c:31 --msgid "No such file or directory" --msgstr "Arquivo ou diretório não encontrado" -+#: locale/programs/charmap.c:591 locale/programs/charmap.c:739 -+#: locale/programs/charmap.c:822 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-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 locale/programs/ld-paper.c:212 -+#: locale/programs/ld-telephone.c:276 locale/programs/ld-time.c:934 -+#: locale/programs/repertoire.c:312 -+#, 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”" -+ -+#: locale/programs/charmap.c:648 -+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" - --#: nis/ypclnt.c:773 --msgid "No such key in map" --msgstr "Chave no está no mapa" -+#: locale/programs/charmap.c:656 locale/programs/charmap.c:719 -+#, c-format -+msgid "value for %s must be an integer" -+msgstr "o valor para %s deve ser um inteiro" - --#: nis/ypclnt.c:771 --msgid "No such map in server's domain" --msgstr "Mapa não encontrado no domínio do servidor" -+#: locale/programs/charmap.c:847 -+#, 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/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-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:950 -+#: locale/programs/locfile.c:997 locale/programs/repertoire.c:323 -+#, c-format -+msgid "%s: premature end of file" -+msgstr "%s: fim de arquivo prematuro" - --#. TRANS No process matches the specified process ID. --#: stdio-common/../sysdeps/gnu/errlist.c:36 --msgid "No such process" --msgstr "Processo inexistente" -+#: locale/programs/charmap.c:874 locale/programs/charmap.c:885 -+#, c-format -+msgid "unknown character `%s'" -+msgstr "caractere desconhecido “%s”" -+ -+#: locale/programs/charmap.c:893 -+#, 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/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 -+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 -+#, 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 -+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 -+msgid "resulting bytes for range not representable." -+msgstr "bytes resultantes para o intervalo não representáveis." -+ -+#: locale/programs/ld-address.c:133 locale/programs/ld-collate.c:1563 -+#: locale/programs/ld-ctype.c:430 locale/programs/ld-identification.c:131 -+#: locale/programs/ld-measurement.c:92 locale/programs/ld-messages.c:96 -+#: locale/programs/ld-monetary.c:192 locale/programs/ld-name.c:93 -+#: locale/programs/ld-numeric.c:97 locale/programs/ld-paper.c:89 -+#: locale/programs/ld-telephone.c:92 locale/programs/ld-time.c:158 -+#, c-format -+msgid "No definition for %s category found" -+msgstr "Nenhuma definição para a categoria %s localizada" -+ -+#: locale/programs/ld-address.c:144 locale/programs/ld-address.c:182 -+#: locale/programs/ld-address.c:199 locale/programs/ld-address.c:228 -+#: locale/programs/ld-address.c:300 locale/programs/ld-address.c:319 -+#: locale/programs/ld-address.c:331 locale/programs/ld-identification.c:144 -+#: locale/programs/ld-measurement.c:103 locale/programs/ld-monetary.c:204 -+#: locale/programs/ld-monetary.c:258 locale/programs/ld-monetary.c:274 -+#: locale/programs/ld-monetary.c:286 locale/programs/ld-name.c:104 -+#: locale/programs/ld-name.c:141 locale/programs/ld-numeric.c:111 -+#: locale/programs/ld-numeric.c:125 locale/programs/ld-paper.c:100 -+#: locale/programs/ld-paper.c:109 locale/programs/ld-telephone.c:103 -+#: locale/programs/ld-telephone.c:160 locale/programs/ld-time.c:174 -+#: locale/programs/ld-time.c:195 -+#, c-format -+msgid "%s: field `%s' not defined" -+msgstr "%s: campo “%s” não definido" - --#: nis/nis_error.c:60 --msgid "Non NIS+ namespace encountered" --msgstr "Namespace NIS+ não encontrado" -+#: locale/programs/ld-address.c:156 locale/programs/ld-address.c:207 -+#: locale/programs/ld-address.c:237 locale/programs/ld-address.c:275 -+#: locale/programs/ld-name.c:116 locale/programs/ld-telephone.c:115 -+#, c-format -+msgid "%s: field `%s' must not be empty" -+msgstr "%s: campo “%s” não pode estar vazio" - --#: posix/../sysdeps/posix/gai_strerror.c:33 --msgid "Non-recoverable failure in name resolution" --msgstr "Falha irrecuperável na resolução de nome" -+#: locale/programs/ld-address.c:168 -+#, c-format -+msgid "%s: invalid escape `%%%c' sequence in field `%s'" -+msgstr "%s: sequência de escape “%%%c” inválida no campo “%s”" - --#: nis/nis_print.c:176 --msgid "None.\n" --msgstr "nenhum.\n" -+#: locale/programs/ld-address.c:218 -+#, c-format -+msgid "%s: terminology language code `%s' not defined" -+msgstr "%s: código de idioma de terminologia “%s” não definido" - --#: nis/nis_error.c:48 --msgid "Not Found, no such name" --msgstr "Não encontrado, nome inexistente" -+#: locale/programs/ld-address.c:243 -+#, c-format -+msgid "%s: field `%s' must not be defined" -+msgstr "%s: campo “%s” não pode estar definido" - --#: stdio-common/../sysdeps/gnu/errlist.c:798 --msgid "Not a XENIX named type file" --msgstr "Não é um arquivo nomeável XENIX" -+#: locale/programs/ld-address.c:257 locale/programs/ld-address.c:286 -+#, c-format -+msgid "%s: language abbreviation `%s' not defined" -+msgstr "%s: abreviação de idioma “%s” não definida" - --#. TRANS A file that isn't a directory was specified when a directory is required. --#: stdio-common/../sysdeps/gnu/errlist.c:152 --msgid "Not a directory" --msgstr "Não é um diretório" -+#: 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: o valor “%s” não corresponde ao valor “%s”" - --#: nis/nis_error.c:30 --msgid "Not found" --msgstr "Não encontrado" -+#: locale/programs/ld-address.c:311 -+#, c-format -+msgid "%s: numeric country code `%d' not valid" -+msgstr "%s: código numérico do país “%d” não válido" - --#: nis/nis_error.c:43 --msgid "Not master server for this domain" --msgstr "Não é um servidor mestre para este domínio" -+#: 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-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 locale/programs/ld-name.c:235 -+#: locale/programs/ld-numeric.c:217 locale/programs/ld-paper.c:195 -+#: locale/programs/ld-telephone.c:251 locale/programs/ld-time.c:839 -+#: locale/programs/ld-time.c:881 -+#, c-format -+msgid "%s: field `%s' declared more than once" -+msgstr "%s: campo “%s” declarado mais de uma vez" - --#: nis/nis_error.c:39 --msgid "Not owner" --msgstr "Dono inválido" -+#: locale/programs/ld-address.c:436 locale/programs/ld-address.c:474 -+#: locale/programs/ld-identification.c:313 locale/programs/ld-messages.c:274 -+#: locale/programs/ld-monetary.c:507 locale/programs/ld-monetary.c:542 -+#: locale/programs/ld-name.c:239 locale/programs/ld-numeric.c:221 -+#: locale/programs/ld-telephone.c:255 locale/programs/ld-time.c:733 -+#: locale/programs/ld-time.c:802 locale/programs/ld-time.c:844 -+#, c-format -+msgid "%s: unknown character in field `%s'" -+msgstr "%s: caractere desconhecido no campo “%s”" - --#: nis/nis_print.c:263 -+#: 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-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:932 - #, c-format --msgid "Number of Columns : %d\n" --msgstr "Número de Colunas : %d\n" -+msgid "%s: incomplete `END' line" -+msgstr "%s: linha “END” incompleta" - --#: nis/nis_print.c:358 -+#: 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-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 locale/programs/ld-paper.c:219 -+#: locale/programs/ld-telephone.c:283 locale/programs/ld-time.c:941 - #, c-format --msgid "Number of objects : %u\n" --msgstr "Número de objetos : %u\n" -+msgid "%s: syntax error" -+msgstr "%s: erro de sintaxe" - --#. TRANS Domain error; used by mathematical functions when an argument value does --#. TRANS not fall into the domain over which the function is defined. --#: stdio-common/../sysdeps/gnu/errlist.c:240 --msgid "Numerical argument out of domain" --msgstr "Argumento numérico fora de domínio" -+#: locale/programs/ld-collate.c:425 -+#, c-format -+msgid "`%.*s' already defined in charmap" -+msgstr "“%.*s” já definido no mapa de caracteres" - --#. TRANS Range error; used by mathematical functions when the result value is --#. TRANS not representable because of overflow or underflow. --#: stdio-common/../sysdeps/gnu/errlist.c:246 --msgid "Numerical result out of range" --msgstr "Resultado numérico fora de alcance" -+#: locale/programs/ld-collate.c:434 -+#, c-format -+msgid "`%.*s' already defined in repertoire" -+msgstr "“%.*s” já definido no repertório" - --#: nis/nis_print.c:362 -+#: locale/programs/ld-collate.c:441 - #, c-format --msgid "Object #%d:\n" --msgstr "Objeto #%d:\n" -+msgid "`%.*s' already defined as collating symbol" -+msgstr "“%.*s” já definido como símbolo de comparação" - --#: nis/nis_print.c:314 -+#: locale/programs/ld-collate.c:448 - #, c-format --msgid "Object Name : %s\n" --msgstr "Nome do Objeto: %s\n" -+msgid "`%.*s' already defined as collating element" -+msgstr "“%.*s” já definido como elemento de comparação" - --#: nis/nis_print.c:324 --msgid "Object Type : " --msgstr "Tipo do Objeto: " -+#: 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 "%s: “forward” e “backward” são mutuamente exclusivas entre si" - --#. TRANS An attempt was made to NFS-mount a remote file system with a file name that --#. TRANS already specifies an NFS-mounted file. --#. TRANS (This is an error on some operating systems, but we expect it to work --#. TRANS properly on the GNU system, making this error code impossible.) --#: stdio-common/../sysdeps/gnu/errlist.c:514 --msgid "Object is remote" --msgstr "Objeto é remoto" -+#: 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 "%s: “%s” mencionado mais de uma vez na definição de peso %d" - --#: nis/nis_error.c:42 --msgid "Object with same name exists" --msgstr "Objeto com o mesmo nome existe" -+#: locale/programs/ld-collate.c:587 -+#, c-format -+msgid "%s: too many rules; first entry only had %d" -+msgstr "%s: número excessivo de regras; a primeira entrada tinha apenas %d" - --#: timezone/zic.c:1995 --msgid "Odd number of quotation marks" --msgstr "Número ímpar de aspas" -+#: locale/programs/ld-collate.c:623 -+#, c-format -+msgid "%s: not enough sorting rules" -+msgstr "%s: número insuficiente de regras de ordenação" - --#: nscd/nscd.c:185 --msgid "Only root is allowed to use this option!" --msgstr "Somente o superusuário pode usar esta opção!" -+#: locale/programs/ld-collate.c:788 -+#, c-format -+msgid "%s: empty weight string not allowed" -+msgstr "%s: texto de peso vazio não permitida" - --#. TRANS An operation is already in progress on an object that has non-blocking --#. TRANS mode selected. --#: stdio-common/../sysdeps/gnu/errlist.c:306 --msgid "Operation already in progress" --msgstr "Operação já em progresso" -+#: locale/programs/ld-collate.c:883 -+#, c-format -+msgid "%s: weights must use the same ellipsis symbol as the name" -+msgstr "%s: pesos devem usar o mesmo símbolo de elipse que o nome" - --#. TRANS Operation not permitted; only the owner of the file (or other resource) --#. TRANS or processes with special privileges can perform the operation. --#: stdio-common/../sysdeps/gnu/errlist.c:24 --msgid "Operation not permitted" --msgstr "Operação não permitida" -+#: locale/programs/ld-collate.c:939 -+#, c-format -+msgid "%s: too many values" -+msgstr "%s: número excessivo de valores" - --#. TRANS The operation you requested is not supported. Some socket functions --#. TRANS don't make sense for all types of sockets, and others may not be --#. TRANS implemented for all communications protocols. In the GNU system, this --#. TRANS error can happen for many calls when the object does not support the --#. TRANS particular operation; it is a generic indication that the server knows --#. TRANS nothing to do for that call. --#: stdio-common/../sysdeps/gnu/errlist.c:350 --msgid "Operation not supported" --msgstr "Operação não suportada " -+#: locale/programs/ld-collate.c:1059 locale/programs/ld-collate.c:1234 -+#, c-format -+msgid "order for `%.*s' already defined at %s:%Zu" -+msgstr "ordem para “%.*s” já definida em %s:%Zu" - --#. TRANS An operation that cannot complete immediately was initiated on an object --#. TRANS that has non-blocking mode selected. Some functions that must always --#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return --#. TRANS @code{EAGAIN}. Instead, they return @code{EINPROGRESS} to indicate that --#. TRANS the operation has begun and will take some time. Attempts to manipulate --#. TRANS the object before the call completes return @code{EALREADY}. You can --#. TRANS use the @code{select} function to find out when the pending operation --#. TRANS has completed; @pxref{Waiting for I/O}. --#: stdio-common/../sysdeps/gnu/errlist.c:300 --msgid "Operation now in progress" --msgstr "Operação agora em progresso" -+#: locale/programs/ld-collate.c:1109 -+#, c-format -+msgid "%s: the start and the end symbol of a range must stand for characters" -+msgstr "%s: o símbolo de início e terminação de um intervalo deve representar caracteres" - --#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above). --#. TRANS The values are always the same, on every operating system. --#. TRANS --#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a --#. TRANS separate error code. --#: stdio-common/../sysdeps/gnu/errlist.c:288 --msgid "Operation would block" --msgstr "Operation causaria bloqueio" -+#: locale/programs/ld-collate.c:1136 -+#, c-format -+msgid "%s: byte sequences of first and last character must have the same length" -+msgstr "%s: sequências de byte de primeiro e último caractere deve ter o mesmo comprimento" - --#: stdio-common/../sysdeps/gnu/errlist.c:646 --msgid "Out of streams resources" --msgstr "Sem recursos de streams" -+#: 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 "%s: sequência de byte do primeiro caractere de intervalo não é menor que aquele do último caractere" - --#: iconv/iconv_prog.c:59 locale/programs/localedef.c:101 --msgid "Output control:" --msgstr "Controle de Saída:" -+#: locale/programs/ld-collate.c:1303 -+#, c-format -+msgid "%s: symbolic range ellipsis must not directly follow `order_start'" -+msgstr "%s: elipse de intervalo simbólico não pode seguir diretamente “order_start”" - --#: elf/sprof.c:76 --msgid "Output selection:" --msgstr "Seleção de Saída:" -+#: locale/programs/ld-collate.c:1307 -+#, c-format -+msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" -+msgstr "%s: elipse de intervalo simbólico não pode estar seguido diretamente por “order_end”" - --#: nis/nis_print.c:316 -+#: locale/programs/ld-collate.c:1327 locale/programs/ld-ctype.c:1363 - #, c-format --msgid "Owner : %s\n" --msgstr "Dono : %s\n" -+msgid "`%s' and `%.*s' are not valid names for symbolic range" -+msgstr "“%s” e “%.*s” não são nomes válidos para intervalo simbólico" - --#: nis/nis_print.c:126 --msgid "PRIVATE\n" --msgstr "PRIVADO\n" -+#: 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 "%s: ordem para “%.*s” já definida em %s:%Zu" - --#: stdio-common/../sysdeps/gnu/errlist.c:738 --msgid "Package not installed" --msgstr "Pacote não instalado" -+#: locale/programs/ld-collate.c:1386 -+#, c-format -+msgid "%s: `%s' must be a character" -+msgstr "%s: “%s” deve ser um caractere" - --#: nscd/nscd_conf.c:84 -+#: locale/programs/ld-collate.c:1580 - #, c-format --msgid "Parse error: %s" --msgstr "Erro de verificação (parser): %s" -+msgid "%s: `position' must be used for a specific level in all sections or none" -+msgstr "%s: “position” deve ser usado para um nível específico em todas as seções ou nenhuma" - --#: nis/nis_error.c:54 --msgid "Partial Success" --msgstr "Sucesso Parcial" -+#: locale/programs/ld-collate.c:1604 -+#, c-format -+msgid "symbol `%s' not defined" -+msgstr "símbolo “%s” não definido" - --#: nis/nis_error.c:62 --msgid "Passed object is not the same object on server" --msgstr "Objeto passado não é o mesmo objeto no servidor" -+#: locale/programs/ld-collate.c:1680 locale/programs/ld-collate.c:1785 -+#, c-format -+msgid "symbol `%s' has the same encoding as" -+msgstr "o símbolo “%s” possui a mesma codificação que" - --#. TRANS Permission denied; the file permissions do not allow the attempted operation. --#: nis/nis_error.c:38 nis/ypclnt.c:793 --#: stdio-common/../sysdeps/gnu/errlist.c:108 --msgid "Permission denied" --msgstr "Permissão negada" -+#: locale/programs/ld-collate.c:1684 locale/programs/ld-collate.c:1789 -+#, c-format -+msgid "symbol `%s'" -+msgstr "símbolo “%s”" - --#: sysdeps/unix/sysv/linux/siglist.h:64 --msgid "Power failure" --msgstr "Falha de energia" -+#: locale/programs/ld-collate.c:1852 -+msgid "too many errors; giving up" -+msgstr "número excessivo de erros; desistindo" - --#: posix/regex.c:1026 --msgid "Premature end of regular expression" --msgstr "Fim prematuro da expressão regular" -+#: locale/programs/ld-collate.c:2508 locale/programs/ld-collate.c:3896 -+#, c-format -+msgid "%s: nested conditionals not supported" -+msgstr "%s: condicionais aninhados sem suporte" - --#: db2/makedb.c:63 --msgid "Print content of database file, one entry a line" --msgstr "Mostra o conteúdo da base de dados do arquivo, um entrada por linha" -+#: locale/programs/ld-collate.c:2526 -+#, c-format -+msgid "%s: more than one 'else'" -+msgstr "%s: mais que um “else”" - --#: nscd/nscd.c:83 --msgid "Print current configuration statistic" --msgstr "Mostra estatística da configuração atual" -+#: locale/programs/ld-collate.c:2701 -+#, c-format -+msgid "%s: duplicate definition of `%s'" -+msgstr "%s: definição duplicada de “%s”" - --#: locale/programs/localedef.c:107 --msgid "Print more messages" --msgstr "Mostra mais mensagens" -+#: locale/programs/ld-collate.c:2737 -+#, c-format -+msgid "%s: duplicate declaration of section `%s'" -+msgstr "%s: declaração duplicada da seção “%s”" - --#: argp/argp-parse.c:148 --msgid "Print program version" --msgstr "Mostra versão do programa" -+#: locale/programs/ld-collate.c:2873 -+#, c-format -+msgid "%s: unknown character in collating symbol name" -+msgstr "%s: caractere desconhecido no nome de símbolo de comparação" - --#: nis/nis_error.c:29 --msgid "Probable success" --msgstr "Sucesso provável" -+#: locale/programs/ld-collate.c:3002 -+#, c-format -+msgid "%s: unknown character in equivalent definition name" -+msgstr "%s: caractere desconhecido no nome de definição equivalente" - --#: nis/nis_error.c:31 --msgid "Probably not found" --msgstr "Provavelmente não encontrado" -+#: locale/programs/ld-collate.c:3013 -+#, c-format -+msgid "%s: unknown character in equivalent definition value" -+msgstr "%s: caractere desconhecido no valor de definição equivalente" - --#: stdio-common/../sysdeps/unix/siglist.c:52 --#: sysdeps/unix/sysv/linux/siglist.h:46 --msgid "Profiling timer expired" --msgstr "Tempo expirado para profiling" -+#: locale/programs/ld-collate.c:3023 -+#, c-format -+msgid "%s: unknown symbol `%s' in equivalent definition" -+msgstr "%s: símbolo desconhecido “%s” na definição equivalente" - --#: stdio-common/../sysdeps/gnu/errlist.c:690 --msgid "Protocol driver not attached" --msgstr "Driver de protocolo não anexado" -+#: locale/programs/ld-collate.c:3032 -+msgid "error while adding equivalent collating symbol" -+msgstr "erro ao adicionar símbolo de colação equivalente" - --#: stdio-common/../sysdeps/gnu/errlist.c:658 --msgid "Protocol error" --msgstr "Erro de protocolo" -+#: locale/programs/ld-collate.c:3070 -+#, c-format -+msgid "duplicate definition of script `%s'" -+msgstr "definição duplicada de script “%s”" - --#. TRANS The socket communications protocol family you requested is not supported. --#: stdio-common/../sysdeps/gnu/errlist.c:355 --msgid "Protocol family not supported" --msgstr "Família de protocolo não suportada" -+#: locale/programs/ld-collate.c:3118 -+#, c-format -+msgid "%s: unknown section name `%.*s'" -+msgstr "%s: nome de seção desconhecida “%.*s”" - --#. TRANS You specified a socket option that doesn't make sense for the --#. TRANS particular protocol being used by the socket. @xref{Socket Options}. --#: stdio-common/../sysdeps/gnu/errlist.c:328 --msgid "Protocol not available" --msgstr "Protocolo não disponível" -+#: locale/programs/ld-collate.c:3147 -+#, c-format -+msgid "%s: multiple order definitions for section `%s'" -+msgstr "%s: múltiplas definições de ordem para a seção “%s”" - --#. TRANS The socket domain does not support the requested communications protocol --#. TRANS (perhaps because the requested protocol is completely invalid). --#. TRANS @xref{Creating a Socket}. --#: stdio-common/../sysdeps/gnu/errlist.c:335 --msgid "Protocol not supported" --msgstr "Protocolo não suportado" -+#: locale/programs/ld-collate.c:3175 -+#, c-format -+msgid "%s: invalid number of sorting rules" -+msgstr "%s: número inválido de regras de ordenação" - --#. TRANS The socket type does not support the requested communications protocol. --#: stdio-common/../sysdeps/gnu/errlist.c:322 --msgid "Protocol wrong type for socket" --msgstr "Tipo errado de protocolo para socket" -+#: locale/programs/ld-collate.c:3202 -+#, c-format -+msgid "%s: multiple order definitions for unnamed section" -+msgstr "%s: múltiplas definições de ordem para seção sem nome" - --#: nis/nis_error.c:64 --msgid "Query illegal for named table" --msgstr "Pergunta ilegal para tabela nominada" -+#: locale/programs/ld-collate.c:3257 locale/programs/ld-collate.c:3387 -+#: locale/programs/ld-collate.c:3750 -+#, c-format -+msgid "%s: missing `order_end' keyword" -+msgstr "%s: faltando palavra-chave “order_end”" - --#: stdio-common/../sysdeps/unix/siglist.c:28 --#: sysdeps/unix/sysv/linux/siglist.h:24 --msgid "Quit" --msgstr "Sair" -+#: locale/programs/ld-collate.c:3320 -+#, c-format -+msgid "%s: order for collating symbol %.*s not yet defined" -+msgstr "%s: ordem para símbolo de comparação %.*s ainda não definida" - --#: stdio-common/../sysdeps/gnu/errlist.c:754 --msgid "RFS specific error" --msgstr "Erro específico de RFS" -+#: locale/programs/ld-collate.c:3338 -+#, c-format -+msgid "%s: order for collating element %.*s not yet defined" -+msgstr "%s: ordem para elemento de comparação %.*s ainda não definida" - --#. TRANS ??? --#: stdio-common/../sysdeps/gnu/errlist.c:539 --msgid "RPC bad procedure for program" --msgstr "Procedimento RPC ruim para programa" -+#: locale/programs/ld-collate.c:3349 -+#, c-format -+msgid "%s: cannot reorder after %.*s: symbol not known" -+msgstr "%s: não foi possível reordenar após %.*s: símbolo desconhecido" - --#: nis/ypclnt.c:767 --msgid "RPC failure on NIS operation" --msgstr "Falha RPC na operação NIS" -+#: locale/programs/ld-collate.c:3401 locale/programs/ld-collate.c:3762 -+#, c-format -+msgid "%s: missing `reorder-end' keyword" -+msgstr "%s: faltando palavra-chave “reorder-end”" - --#. TRANS ??? --#: stdio-common/../sysdeps/gnu/errlist.c:529 --msgid "RPC program not available" --msgstr "Programa RPC não disponível" -+#: locale/programs/ld-collate.c:3435 locale/programs/ld-collate.c:3633 -+#, c-format -+msgid "%s: section `%.*s' not known" -+msgstr "%s: seção “%.*s” desconhecida" - --#. TRANS ??? --#: stdio-common/../sysdeps/gnu/errlist.c:534 --msgid "RPC program version wrong" --msgstr "Versão incorreta de programa RPC" -+#: locale/programs/ld-collate.c:3500 -+#, c-format -+msgid "%s: bad symbol <%.*s>" -+msgstr "%s: símbolo inválido <%.*s>" - --#. TRANS ??? --#: stdio-common/../sysdeps/gnu/errlist.c:519 --msgid "RPC struct is bad" --msgstr "Estrutura RPC inválida" -+#: locale/programs/ld-collate.c:3696 -+#, c-format -+msgid "%s: cannot have `%s' as end of ellipsis range" -+msgstr "%s: não pode ter “%s” como terminação de intervalo de elipse" - --#. TRANS ??? --#: stdio-common/../sysdeps/gnu/errlist.c:524 --msgid "RPC version wrong" --msgstr "Versão RPC incorreta" -+#: locale/programs/ld-collate.c:3746 -+#, c-format -+msgid "%s: empty category description not allowed" -+msgstr "%s: descrição vazia para categoria não permitida" - --#: sunrpc/clnt_perr.c:215 --msgid "RPC: (unknown error code)" --msgstr "RPC: (código de erro desconhecido)" -+#: locale/programs/ld-collate.c:3765 -+#, c-format -+msgid "%s: missing `reorder-sections-end' keyword" -+msgstr "%s: faltando palavra-chave “reorder-sections-end”" - --#: sunrpc/clnt_perr.c:176 --msgid "RPC: Authentication error" --msgstr "RPC: Erro de autenticação" -+#: locale/programs/ld-collate.c:3929 -+#, c-format -+msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" -+msgstr "%s: “%s” sem “ifdef” ou “ifndef” correspondente" - --#: sunrpc/clnt_perr.c:166 --msgid "RPC: Can't decode result" --msgstr "RPC: Impossível decodificar resultado" -+#: locale/programs/ld-collate.c:3947 -+#, c-format -+msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" -+msgstr "%s: “endif” sem “ifdef” ou “ifndef” correspondente" - --#: sunrpc/clnt_perr.c:164 --msgid "RPC: Can't encode arguments" --msgstr "RPC: impossível codificar argumentos" -+#: locale/programs/ld-ctype.c:448 -+msgid "No character set name specified in charmap" -+msgstr "Nenhum nome de conjunto de caracteres especificado no mapa de caracteres" - --#: sunrpc/clnt_perr.c:196 --msgid "RPC: Failed (unspecified error)" --msgstr "RPC: Falhou (erro não especificado)" -+#: locale/programs/ld-ctype.c:476 -+#, c-format -+msgid "character L'\\u%0*x' in class `%s' must be in class `%s'" -+msgstr "caractere L“\\u%0*x” na classe “%s” deve estar na classe “%s”" - --#: sunrpc/clnt_perr.c:174 --msgid "RPC: Incompatible versions of RPC" --msgstr "RPC: Versões incompatíveis de RPC" -+#: locale/programs/ld-ctype.c:490 -+#, c-format -+msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'" -+msgstr "caractere L“\\u%0*x” na classe “%s” não pode estar na classe “%s”" - --#: sunrpc/clnt_perr.c:192 --msgid "RPC: Port mapper failure" --msgstr "RPC: Falha no Port mapper" -+#: locale/programs/ld-ctype.c:504 locale/programs/ld-ctype.c:560 -+#, c-format -+msgid "internal error in %s, line %u" -+msgstr "erro interno em %s, linha %u" - --#: sunrpc/clnt_perr.c:182 --msgid "RPC: Procedure unavailable" --msgstr "RPC: Procedimento indisponível" -+#: locale/programs/ld-ctype.c:532 -+#, c-format -+msgid "character '%s' in class `%s' must be in class `%s'" -+msgstr "caractere “%s” na classe “%s” deve estar na classe “%s”" - --#: sunrpc/clnt_perr.c:194 --msgid "RPC: Program not registered" --msgstr "RPC: Programa não registrado" -+#: locale/programs/ld-ctype.c:547 -+#, c-format -+msgid "character '%s' in class `%s' must not be in class `%s'" -+msgstr "caractere “%s” na classe “%s” não pode estar na classe “%s”" - --#: sunrpc/clnt_perr.c:178 --msgid "RPC: Program unavailable" --msgstr "RPC: Programa indisponível" -+#: locale/programs/ld-ctype.c:576 locale/programs/ld-ctype.c:611 -+#, c-format -+msgid " character not in class `%s'" -+msgstr " caractere não está na classe “%s”" - --#: sunrpc/clnt_perr.c:180 --msgid "RPC: Program/version mismatch" --msgstr "RPC: Programa/versão incompatíveis" -- --#: sunrpc/clnt_perr.c:186 --msgid "RPC: Remote system error" --msgstr "RPC: Erro remoto de sistema" -- --#: sunrpc/clnt_perr.c:184 --msgid "RPC: Server can't decode arguments" --msgstr "RPC: O servidor não pode decodificar os argumentos" -- --#: sunrpc/clnt_perr.c:162 --msgid "RPC: Success" --msgstr "RPC: Sucesso" -+#: locale/programs/ld-ctype.c:587 locale/programs/ld-ctype.c:621 -+#, c-format -+msgid " character must not be in class `%s'" -+msgstr " caractere não pode estar na classe “%s”" - --#: sunrpc/clnt_perr.c:172 --msgid "RPC: Timed out" --msgstr "RPC: Tempo esgotado" -+#: locale/programs/ld-ctype.c:601 -+msgid "character not defined in character map" -+msgstr "caractere não definido no mapa de caracteres" - --#: sunrpc/clnt_perr.c:170 --msgid "RPC: Unable to receive" --msgstr "RPC: Impossível receber" -+#: locale/programs/ld-ctype.c:735 -+msgid "`digit' category has not entries in groups of ten" -+msgstr "categoria “digit” não possui entradas em grupos de dez" - --#: sunrpc/clnt_perr.c:168 --msgid "RPC: Unable to send" --msgstr "RPC: Impossível enviar" -+#: locale/programs/ld-ctype.c:784 -+msgid "no input digits defined and none of the standard names in the charmap" -+msgstr "nenhum dígito de entrada definido e nenhum dos nomes padrões no mapa de caracteres" - --#: sunrpc/clnt_perr.c:188 --msgid "RPC: Unknown host" --msgstr "RPC: Host desconhecido" -+#: locale/programs/ld-ctype.c:849 -+msgid "not all characters used in `outdigit' are available in the charmap" -+msgstr "nem todos os caracteres usados em “outdigit” estão disponíveis no mapa de caracteres" - --#: sunrpc/clnt_perr.c:190 --msgid "RPC: Unknown protocol" --msgstr "RPC: Protocolo desconhecido" -+#: locale/programs/ld-ctype.c:866 -+msgid "not all characters used in `outdigit' are available in the repertoire" -+msgstr "nem todos os caracteres usados em “outdigit” estão disponíveis no repertório" - --#: nis/nis_print.c:184 -+#: locale/programs/ld-ctype.c:1131 - #, c-format --msgid "RSA (%d bits)\n" --msgstr "RSA (%d bits)\n" -+msgid "character class `%s' already defined" -+msgstr "classe de caractere “%s” já definida" - --#: elf/dlsym.c:59 elf/dlvsym.c:62 --msgid "RTLD_NEXT used in code not dynamically loaded" --msgstr "RTLD_NEXT usado em código não dinamicamente carregado" -+#: locale/programs/ld-ctype.c:1137 -+#, c-format -+msgid "implementation limit: no more than %Zd character classes allowed" -+msgstr "limite de implementação: não são permitidos mais que %Zd classes de caracteres" - --#: elf/sprof.c:88 --msgid "Read and display shared object profiling data" --msgstr "Lê e mostra perfil de dados do objeto compartilhado" -+#: locale/programs/ld-ctype.c:1163 -+#, c-format -+msgid "character map `%s' already defined" -+msgstr "mapa de caracteres “%s” já definido" - --#: nscd/nscd.c:78 --msgid "Read configuration data from NAME" --msgstr "Lê configuração de dados de NOME" -+#: locale/programs/ld-ctype.c:1169 -+#, c-format -+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" - --#. TRANS An attempt was made to modify something on a read-only file system. --#: stdio-common/../sysdeps/gnu/errlist.c:218 --msgid "Read-only file system" --msgstr "Sistema de arquivos somente para leitura" -+#: 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 -+#, c-format -+msgid "%s: field `%s' does not contain exactly ten entries" -+msgstr "%s: campo “%s” não contém exatamente dez entradas" - --#: string/strsignal.c:66 -+#: locale/programs/ld-ctype.c:1462 locale/programs/ld-ctype.c:2036 - #, c-format --msgid "Real-time signal %d" --msgstr "Sinal de tempo-real %d" -+msgid "to-value of range is smaller than from-value " -+msgstr "valor-para de intervalo é menor que o valor-de " - --#: posix/regex.c:1027 --msgid "Regular expression too big" --msgstr "Expressão regular muito longa" -+#: locale/programs/ld-ctype.c:1589 -+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" - --#: stdio-common/../sysdeps/gnu/errlist.c:810 --msgid "Remote I/O error" --msgstr "Erro de E/S remota" -+#: locale/programs/ld-ctype.c:1596 -+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" - --#: stdio-common/../sysdeps/gnu/errlist.c:766 --msgid "Remote address changed" --msgstr "Endereço remoto alterado" -+#: locale/programs/ld-ctype.c:1956 locale/programs/ld-ctype.c:2007 -+msgid "premature end of `translit_ignore' definition" -+msgstr "fim prematuro da definição “translit_ignore”" - --#: inet/ruserpass.c:162 --msgid "Remove password or make file unreadable by others." --msgstr "Remova senha ou torne arquivo não-legível por outros." -+#: locale/programs/ld-ctype.c:1962 locale/programs/ld-ctype.c:2013 -+#: locale/programs/ld-ctype.c:2055 -+msgid "syntax error" -+msgstr "erro de sintaxe" - --#: elf/sprof.c:537 -+#: locale/programs/ld-ctype.c:2188 - #, c-format --msgid "Reopening shared object `%s' failed" --msgstr "Reabertura de objeto compartilhado `%s' falhou" -- --#: nis/nis_print.c:170 --msgid "Replicate :\n" --msgstr "Duplicado :\n" -+msgid "%s: syntax error in definition of new character class" -+msgstr "%s: erro de sintaxe na definição da nova classe de caracteres" - --#: argp/argp-help.c:1638 -+#: locale/programs/ld-ctype.c:2203 - #, c-format --msgid "Report bugs to %s.\n" --msgstr "Reporte erros (bugs) para %s.\n" -+msgid "%s: syntax error in definition of new character map" -+msgstr "%s: erro de sintaxe na definição do novo mapa de caracteres" - --#: catgets/gencat.c:223 db2/makedb.c:229 iconv/iconv_prog.c:280 --#: locale/programs/locale.c:254 locale/programs/localedef.c:389 --msgid "Report bugs using the `glibcbug' script to .\n" --msgstr "Reportar erros usando o script `glibcbug' para .\n" -+#: locale/programs/ld-ctype.c:2363 -+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" - --#: nis/ypclnt.c:765 --msgid "Request arguments bad" --msgstr "Argumentos de requisição inválidos" -+#: locale/programs/ld-ctype.c:2372 -+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" - --#: resolv/herror.c:73 --msgid "Resolver Error 0 (no error)" --msgstr "Erro de resolvedor 0 (não há erro)" -+#: locale/programs/ld-ctype.c:2387 -+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 “..”" - --#: resolv/herror.c:117 --msgid "Resolver internal error" --msgstr "Erro interno do resolvedor" -+#: locale/programs/ld-ctype.c:2401 -+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 “…”" - --#. TRANS Deadlock avoided; allocating a system resource would have resulted in a --#. TRANS deadlock situation. The system does not guarantee that it will notice --#. TRANS all such situations. This error means you got lucky and the system --#. TRANS noticed; it might just hang. @xref{File Locks}, for an example. --#: stdio-common/../sysdeps/gnu/errlist.c:97 --msgid "Resource deadlock avoided" --msgstr "Evitado deadlock de recurso" -+#: locale/programs/ld-ctype.c:2552 -+#, c-format -+msgid "duplicated definition for mapping `%s'" -+msgstr "definição duplicada para o mapeamento “%s”" - --#: stdio-common/../sysdeps/unix/siglist.c:54 --msgid "Resource lost" --msgstr "Recurso perdido" -+#: locale/programs/ld-ctype.c:2638 locale/programs/ld-ctype.c:2782 -+#, 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”" - --#. TRANS Resource temporarily unavailable; the call might work if you try again --#. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN}; --#. TRANS they are always the same in the GNU C library. --#. TRANS --#. TRANS This error can happen in a few different situations: --#. TRANS --#. TRANS @itemize @bullet --#. TRANS @item --#. TRANS An operation that would block was attempted on an object that has --#. TRANS non-blocking mode selected. Trying the same operation again will block --#. TRANS until some external condition makes it possible to read, write, or --#. TRANS connect (whatever the operation). You can use @code{select} to find out --#. TRANS when the operation will be possible; @pxref{Waiting for I/O}. --#. TRANS --#. TRANS @strong{Portability Note:} In many older Unix systems, this condition --#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code --#. TRANS different from @code{EAGAIN}. To make your program portable, you should --#. TRANS check for both codes and treat them the same. --#. TRANS --#. TRANS @item --#. TRANS A temporary resource shortage made an operation impossible. @code{fork} --#. TRANS can return this error. It indicates that the shortage is expected to --#. TRANS pass, so your program can try the call again later and it may succeed. --#. TRANS It is probably a good idea to delay for a few seconds before trying it --#. TRANS again, to allow time for other processes to release scarce resources. --#. TRANS Such shortages are usually fairly serious and affect the whole system, --#. TRANS so usually an interactive program should report the error to the user --#. TRANS and return to its command loop. --#. TRANS @end itemize --#: stdio-common/../sysdeps/gnu/errlist.c:279 --msgid "Resource temporarily unavailable" --msgstr "Recurso temporariamente indisponível" -+#: locale/programs/ld-ctype.c:2733 -+#, c-format -+msgid "%s: duplicate `default_missing' definition" -+msgstr "%s: definição duplicada de “default_missing”" - --#: nis/nis_error.c:47 --msgid "Results Sent to callback proc" --msgstr "Resultados enviados para processo chamador" -+#: locale/programs/ld-ctype.c:2738 -+msgid "previous definition was here" -+msgstr "definição anterior estava aqui" - --#: elf/sprof.c:91 --msgid "SHOBJ [PROFDATA]" --msgstr "SHOBJ [PROFDATA]" -+#: locale/programs/ld-ctype.c:2760 -+#, c-format -+msgid "%s: no representable `default_missing' definition found" -+msgstr "%s: nenhuma definição representável de “default_missing” localizada" - --#: nis/nis_print.c:33 --msgid "SUNYP" --msgstr "SUNYP" -+#: 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 -+#, 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" - --#: nis/nis_print.c:265 -+#: 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 - #, c-format --msgid "Search Path : %s\n" --msgstr "Rota de Busca :%s\n" -+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" - --#: stdio-common/../sysdeps/unix/siglist.c:36 --#: sysdeps/unix/sysv/linux/siglist.h:31 --msgid "Segmentation fault" --msgstr "Falha de segmentação" -+#: locale/programs/ld-ctype.c:3242 locale/programs/ld-ctype.c:3265 -+#, 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" - --#: nis/nis_error.c:35 --msgid "Server busy, try again" --msgstr "Servidor ocupado, tente novamente" -+#: locale/programs/ld-ctype.c:3321 -+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" - --#: nis/nis_error.c:41 --msgid "Server out of memory" --msgstr "Memória do servidor exaurida" -+#: locale/programs/ld-ctype.c:3570 -+#, c-format -+msgid "%s: transliteration data from locale `%s' not available" -+msgstr "%s: dados de transliteração da localidade “%s” não disponíveis" - --#: sunrpc/clnt_perr.c:277 --msgid "Server rejected credential" --msgstr "Servidor rejeitou credencial" -+#: locale/programs/ld-ctype.c:3669 -+#, c-format -+msgid "%s: table for class \"%s\": %lu bytes" -+msgstr "%s: tabela para a classe “%s”: %lu bytes" - --#: sunrpc/clnt_perr.c:281 --msgid "Server rejected verifier" --msgstr "Servidor rejeitou verificador" -+#: locale/programs/ld-ctype.c:3733 -+#, c-format -+msgid "%s: table for map \"%s\": %lu bytes" -+msgstr "%s: tabela para o mapa “%s”: %lu bytes" - --#: posix/../sysdeps/posix/gai_strerror.c:38 --msgid "Servname not supported for ai_socktype" --msgstr "`Servname' não suportado para `ai_socktype'" -+#: locale/programs/ld-ctype.c:3857 -+#, c-format -+msgid "%s: table for width: %lu bytes" -+msgstr "%s: tabela para largura: %lu bytes" - --#: argp/argp-parse.c:89 --msgid "Set the program name" --msgstr "Configura o nome do programa" -+#: locale/programs/ld-identification.c:173 -+#, c-format -+msgid "%s: no identification for category `%s'" -+msgstr "%s: nenhuma identificação para a categoria “%s”" - --#: nscd/nscd.c:82 --msgid "Shut the server down" --msgstr "Encerra o servidor" -+#: locale/programs/ld-identification.c:197 -+#, c-format -+msgid "%s: unknown standard `%s' for category `%s'" -+msgstr "%s: padrão desconhecido “%s” para a categoria “%s”" - --#: stdio-common/../sysdeps/unix/siglist.c:25 --msgid "Signal 0" --msgstr "Sinal 0" -+#: locale/programs/ld-identification.c:380 -+#, c-format -+msgid "%s: duplicate category version definition" -+msgstr "%s: definição duplicada da versão da categoria" - --#. TRANS A file that isn't a socket was specified when a socket is required. --#: stdio-common/../sysdeps/gnu/errlist.c:311 --msgid "Socket operation on non-socket" --msgstr "Operação socket em um arquivo não-socket" -+#: locale/programs/ld-measurement.c:111 -+#, c-format -+msgid "%s: invalid value for field `%s'" -+msgstr "%s: valor inválido para o campo “%s”" - --#. TRANS The socket type is not supported. --#: stdio-common/../sysdeps/gnu/errlist.c:340 --msgid "Socket type not supported" --msgstr "Tipo socket não suportado" -+#: locale/programs/ld-messages.c:113 locale/programs/ld-messages.c:146 -+#, c-format -+msgid "%s: field `%s' undefined" -+msgstr "%s: campo “%s” indefinido" - --#. TRANS A network connection was aborted locally. --#: stdio-common/../sysdeps/gnu/errlist.c:394 --msgid "Software caused connection abort" --msgstr "Término de conexão causada por software" -+#: locale/programs/ld-messages.c:119 locale/programs/ld-messages.c:152 -+#: locale/programs/ld-monetary.c:264 locale/programs/ld-numeric.c:117 -+#, c-format -+msgid "%s: value for field `%s' must not be an empty string" -+msgstr "%s: valor para campo “%s” não pode estar vazio" - --#: sunrpc/rpcinfo.c:658 --msgid "Sorry. You are not root\n" --msgstr "Lamento. Você não é o superusuário\n" -+#: locale/programs/ld-messages.c:135 locale/programs/ld-messages.c:168 -+#, c-format -+msgid "%s: no correct regular expression for field `%s': %s" -+msgstr "%s: nenhuma expressão regular correta para o campo “%s”: %s" - --#: locale/programs/localedef.c:97 --msgid "Source definitions are found in FILE" --msgstr "Definições fonte são encontrada no ARQUIVO" -+#: locale/programs/ld-monetary.c:228 -+#, c-format -+msgid "%s: value of field `int_curr_symbol' has wrong length" -+msgstr "%s: valor do campo “int_curr_symbol” possui comprimento incorreto" - --#: stdio-common/../sysdeps/gnu/errlist.c:746 --msgid "Srmount error" --msgstr "Erro de Srmount" -+#: locale/programs/ld-monetary.c:245 -+#, 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: valor do campo “int_curr_symbol” não corresponde a um nome válido na ISO 4217 [--no-warnings=intcurrsym]" - --#: sysdeps/unix/sysv/linux/siglist.h:59 --msgid "Stack fault" --msgstr "Falha de pilha" -+#: locale/programs/ld-monetary.c:293 locale/programs/ld-monetary.c:322 -+#, c-format -+msgid "%s: value for field `%s' must be in range %d...%d" -+msgstr "%s: valor para o campo “%s” deve estar no intervalo %d…%d" - --#. TRANS Stale NFS file handle. This indicates an internal confusion in the NFS --#. TRANS system which is due to file system rearrangements on the server host. --#. TRANS Repairing this condition usually requires unmounting and remounting --#. TRANS the NFS file system on the local host. --#: stdio-common/../sysdeps/gnu/errlist.c:506 --msgid "Stale NFS file handle" --msgstr "Manipulador de arquivo NFS corrompido" -+#: locale/programs/ld-monetary.c:549 locale/programs/ld-numeric.c:228 -+#, c-format -+msgid "%s: value for field `%s' must be a single character" -+msgstr "%s: valor para o campo “%s” deve estar em um único caractere" - --#: nscd/nscd.c:81 --msgid "Start NUMBER threads" --msgstr "Iniciar NÚMERO de linhas (threads)" -+#: locale/programs/ld-monetary.c:646 locale/programs/ld-numeric.c:272 -+#, c-format -+msgid "%s: `-1' must be last entry in `%s' field" -+msgstr "%s: “-1” deve ser o último registro no campo “%s”" - --#: nis/nis_print.c:357 -+#: locale/programs/ld-monetary.c:668 locale/programs/ld-numeric.c:289 - #, c-format --msgid "Status : %s\n" --msgstr "Posição : %s\n" -+msgid "%s: values for field `%s' must be smaller than 127" -+msgstr "%s: valor para o campo “%s” deve ser menor que 127" - --#: stdio-common/../sysdeps/unix/siglist.c:43 --#: sysdeps/unix/sysv/linux/siglist.h:37 --msgid "Stopped" --msgstr "Parado" -+#: locale/programs/ld-monetary.c:714 -+msgid "conversion rate value cannot be zero" -+msgstr "valor da taxa de conversão não pode ser zero" - --#: stdio-common/../sysdeps/unix/siglist.c:42 --#: sysdeps/unix/sysv/linux/siglist.h:36 --msgid "Stopped (signal)" --msgstr "Parado (sinal)" -+#: locale/programs/ld-name.c:128 locale/programs/ld-telephone.c:124 -+#: locale/programs/ld-telephone.c:147 -+#, c-format -+msgid "%s: invalid escape sequence in field `%s'" -+msgstr "%s: sequência de escape inválida no campo “%s”" - --#: stdio-common/../sysdeps/unix/siglist.c:46 --#: sysdeps/unix/sysv/linux/siglist.h:40 --msgid "Stopped (tty input)" --msgstr "Parado (entrada tty)" -+#: locale/programs/ld-time.c:245 -+#, c-format -+msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'" -+msgstr "%s: sinalizador de direção na string %Zd no campo “era” não é “+” nem “-”" - --#: stdio-common/../sysdeps/unix/siglist.c:47 --#: sysdeps/unix/sysv/linux/siglist.h:41 --msgid "Stopped (tty output)" --msgstr "Parado (saída tty)" -+#: locale/programs/ld-time.c:255 -+#, c-format -+msgid "%s: direction flag in string %Zd in `era' field is not a single character" -+msgstr "%s: sinalizador de direção na string %Zd no campo “era” não é um único caractere" - --#: stdio-common/../sysdeps/gnu/errlist.c:790 --msgid "Streams pipe error" --msgstr "Erro de pipe streams" -+#: locale/programs/ld-time.c:267 -+#, c-format -+msgid "%s: invalid number for offset in string %Zd in `era' field" -+msgstr "%s: número inválido para deslocamento na string %Zd no campo “era”" - --#: stdio-common/../sysdeps/gnu/errlist.c:794 --msgid "Structure needs cleaning" --msgstr "A estrutura necessita de limpeza" -+#: locale/programs/ld-time.c:274 -+#, c-format -+msgid "%s: garbage at end of offset value in string %Zd in `era' field" -+msgstr "%s: lixo no final do valor do deslocamento na string %Zd no campo “era”" - --#: nis/nis_error.c:28 nis/ypclnt.c:763 nis/ypclnt.c:837 posix/regex.c:1012 --#: stdio-common/../sysdeps/gnu/errlist.c:19 --msgid "Success" --msgstr "Sucesso" -+#: locale/programs/ld-time.c:324 -+#, c-format -+msgid "%s: invalid starting date in string %Zd in `era' field" -+msgstr "%s: data de início inválida na string %Zd no campo “era”" - --#: locale/programs/localedef.c:106 --msgid "Suppress warnings and information messages" --msgstr "Suprime avisos e mensagens de informação" -+#: locale/programs/ld-time.c:332 -+#, c-format -+msgid "%s: garbage at end of starting date in string %Zd in `era' field " -+msgstr "%s: lixo no final da data início na string %Zd no campo “era” " - --#: locale/programs/localedef.c:96 --msgid "Symbolic character names defined in FILE" --msgstr "Nomes de caracteres simbólicos definido en ARQUIVO" -+#: locale/programs/ld-time.c:350 -+#, c-format -+msgid "%s: starting date is invalid in string %Zd in `era' field" -+msgstr "%s: data de início inválida na string %Zd no campo “era”" - --#: posix/../sysdeps/posix/gai_strerror.c:40 --msgid "System error" --msgstr "Erro de sistema" -+#: locale/programs/ld-time.c:398 locale/programs/ld-time.c:424 -+#, c-format -+msgid "%s: invalid stopping date in string %Zd in `era' field" -+msgstr "%s: data de parada inválida na string %Zd no campo “era”" - --#: locale/programs/locale.c:63 --msgid "System information:" --msgstr "Informação do Sistema:" -+#: locale/programs/ld-time.c:406 -+#, c-format -+msgid "%s: garbage at end of stopping date in string %Zd in `era' field" -+msgstr "%s: lixo no final da data de parada na string %Zd no campo “era”" - --#: nis/ypclnt.c:843 --msgid "System resource allocation failure" --msgstr "Falha de alocação de recursos do sistema" -+#: locale/programs/ld-time.c:432 -+#, c-format -+msgid "%s: missing era name in string %Zd in `era' field" -+msgstr "%s: faltando o nome da era na string %Zd no campo “era”" - --#: locale/programs/localedef.c:384 -+#: locale/programs/ld-time.c:443 - #, c-format --msgid "" --"System's directory for character maps : %s\n" --" repertoire maps: %s\n" --" locale path : %s\n" --"%s" --msgstr "" --"Diretório do sistema para mapas de caracteres: %s\n" --" mapas de repertório: %s\n" --" rota de localização: %s\n" --"%s" -+msgid "%s: missing era format in string %Zd in `era' field" -+msgstr "%s: faltando o formato era na string %Zd no campo “era”" - --#: nis/nis_print.c:117 --msgid "TABLE\n" --msgstr "TABELA\n" -+#: locale/programs/ld-time.c:488 -+#, c-format -+msgid "%s: third operand for value of field `%s' must not be larger than %d" -+msgstr "%s: terceiro operando para o valor de campo “%s” não pode ser maior que %d" - --#: nis/nis_print.c:262 -+#: locale/programs/ld-time.c:496 locale/programs/ld-time.c:504 -+#: locale/programs/ld-time.c:512 - #, c-format --msgid "Table Type : %s\n" --msgstr "Tipo de Tabela : %s\n" -+msgid "%s: values for field `%s' must not be larger than %d" -+msgstr "%s: valor para o campo “%s” não pode ser maior que %d" - --#: posix/../sysdeps/posix/gai_strerror.c:31 --msgid "Temporary failure in name resolution" --msgstr "Falha temporário na resolução de nome" -+#: locale/programs/ld-time.c:717 -+#, c-format -+msgid "%s: too few values for field `%s'" -+msgstr "%s: número insuficiente de valores para o campo “%s”" - --#: stdio-common/../sysdeps/unix/siglist.c:40 --#: sysdeps/unix/sysv/linux/siglist.h:34 --msgid "Terminated" --msgstr "Terminado" -+#: locale/programs/ld-time.c:762 -+msgid "extra trailing semicolon" -+msgstr "ponto e vírgula extra no final" - --#. TRANS An attempt to execute a file that is currently open for writing, or --#. TRANS write to a file that is currently being executed. Often using a --#. TRANS debugger to run a program is considered having it open for writing and --#. TRANS will cause this error. (The name stands for ``text file busy''.) This --#. TRANS is not an error in the GNU system; the text is copied as necessary. --#: stdio-common/../sysdeps/gnu/errlist.c:197 --msgid "Text file busy" --msgstr "Área de texto ocupada" -+#: locale/programs/ld-time.c:765 -+#, c-format -+msgid "%s: too many values for field `%s'" -+msgstr "%s: número excessivo de valores para o campo “%s” de valores" - --#: iconv/iconv_prog.c:536 --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" --" Some of the names are no plain strings but instead regular expressions and\n" --"they match a variety of names which can be given as parameters to the\n" --"program.\n" --"\n" --" " --msgstr "" --"A lista seguinte contém todos os conjuntos de codificação de caracteres \n" --"conhecidos. Isto não quer dizer necessáriamente que todas as combinações\n" --"destes nomes podem ser utilizadas nos parâmetros FROM e TO. Um conjunto\n" --"de caracteres pode ser listado com vários nomes diferentes (apelidos).\n" --" Alguns destes nomes não strings simples mas sim, expressões regulares, e\n" --"eles combinam com uma variedade de nomes que podem ser dados como parâmetrosao programa.\n" --"\n" --" " -+#: locale/programs/linereader.c:130 -+msgid "trailing garbage at end of line" -+msgstr "lixo no final da linha" - --#: nis/nis_print.c:223 --msgid "Time to live : " --msgstr "Tempo de vida : " -+#: locale/programs/linereader.c:298 -+msgid "garbage at end of number" -+msgstr "lixo no final do número" - --#: stdio-common/../sysdeps/gnu/errlist.c:662 --msgid "Timer expired" --msgstr "Tempo expirado" -+#: locale/programs/linereader.c:410 -+msgid "garbage at end of character code specification" -+msgstr "lixo no final da especificação do código de caractere" - --#: nis/nis_error.c:55 --msgid "Too Many Attributes" --msgstr "Muitos atributos" -+#: locale/programs/linereader.c:496 -+msgid "unterminated symbolic name" -+msgstr "nome simbólico não terminado" - --#. TRANS Too many levels of symbolic links were encountered in looking up a file name. --#. TRANS This often indicates a cycle of symbolic links. --#: stdio-common/../sysdeps/gnu/errlist.c:457 --msgid "Too many levels of symbolic links" --msgstr "Muitos níveis de links simbólicos" -+#: locale/programs/linereader.c:623 -+msgid "illegal escape sequence at end of string" -+msgstr "sequência de escape ilegal no final da string" - --#. TRANS Too many links; the link count of a single file would become too large. --#. TRANS @code{rename} can cause this error if the file being renamed already has --#. TRANS as many links as it can take (@pxref{Renaming Files}). --#: stdio-common/../sysdeps/gnu/errlist.c:225 --msgid "Too many links" --msgstr "Muitos links" -+#: locale/programs/linereader.c:627 locale/programs/linereader.c:847 -+msgid "unterminated string" -+msgstr "string não terminada" - --#. TRANS The current process has too many files open and can't open any more. --#. TRANS Duplicate descriptors do count toward this limit. --#. TRANS --#. TRANS In BSD and GNU, the number of open files is controlled by a resource --#. TRANS limit that can usually be increased. If you get this error, you might --#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited; --#. TRANS @pxref{Limits on Resources}. --#: stdio-common/../sysdeps/gnu/errlist.c:175 --msgid "Too many open files" --msgstr "Muitos arquivos abertos" -+#: locale/programs/linereader.c:808 -+#, c-format -+msgid "symbol `%.*s' not in charmap" -+msgstr "símbolo “%.*s” não está no mapa de caracteres" - --#. TRANS There are too many distinct file openings in the entire system. Note --#. TRANS that any number of linked channels count as just one file opening; see --#. TRANS @ref{Linked Channels}. This error never occurs in the GNU system. --#: stdio-common/../sysdeps/gnu/errlist.c:182 --msgid "Too many open files in system" --msgstr "Muitos arquivos abertos no sistema" -+#: locale/programs/linereader.c:829 -+#, c-format -+msgid "symbol `%.*s' not in repertoire map" -+msgstr "símbolo “%.*s” não está no mapa de repertório" - --#. TRANS This means that the per-user limit on new process would be exceeded by --#. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on --#. TRANS the @code{RLIMIT_NPROC} limit. --#: stdio-common/../sysdeps/gnu/errlist.c:487 --msgid "Too many processes" --msgstr "Muitos processos" -+#: locale/programs/locale-spec.c:130 -+#, c-format -+msgid "unknown name \"%s\"" -+msgstr "nome desconhecido “%s”" - --#. TRANS ??? --#: stdio-common/../sysdeps/gnu/errlist.c:439 --msgid "Too many references: cannot splice" --msgstr "Muitas referências: não é possível unir" -+#: locale/programs/locale.c:70 -+msgid "System information:" -+msgstr "Informação do sistema:" - --#. TRANS The file quota system is confused because there are too many users. --#. TRANS @c This can probably happen in a GNU system when using NFS. --#: stdio-common/../sysdeps/gnu/errlist.c:493 --msgid "Too many users" --msgstr "Muitos usuários" -+#: locale/programs/locale.c:72 -+msgid "Write names of available locales" -+msgstr "Escreve nomes das localidades (locales) disponíveis" - --#: stdio-common/../sysdeps/unix/siglist.c:30 --#: sysdeps/unix/sysv/linux/siglist.h:26 --msgid "Trace/breakpoint trap" --msgstr "Trace/breakpoint trap" -+#: locale/programs/locale.c:74 -+msgid "Write names of available charmaps" -+msgstr "Escreve nomes dos mapas de caracteres disponíveis" - --#: posix/regex.c:1017 --msgid "Trailing backslash" --msgstr "Contrabarra final" -+#: locale/programs/locale.c:75 -+msgid "Modify output format:" -+msgstr "Formato de modificação de saída:" - --#. TRANS In the GNU system, opening a file returns this error when the file is --#. TRANS translated by a program and the translator program dies while starting --#. TRANS up, before it has connected to the file. --#: stdio-common/../sysdeps/gnu/errlist.c:596 --msgid "Translator died" --msgstr "Tradutor morto" -+#: locale/programs/locale.c:76 -+msgid "Write names of selected categories" -+msgstr "Escreve nomes das categorias selecionadas" - --#. TRANS You tried to connect a socket that is already connected. --#. TRANS @xref{Connecting}. --#: stdio-common/../sysdeps/gnu/errlist.c:414 --msgid "Transport endpoint is already connected" --msgstr "Ponto final de transporte já está conectado" -+#: locale/programs/locale.c:77 -+msgid "Write names of selected keywords" -+msgstr "Escreve nomes das palavras-chave selecionadas" - --#. TRANS The socket is not connected to anything. You get this error when you --#. TRANS try to transmit data over a socket, without first specifying a --#. TRANS destination for the data. For a connectionless socket (for datagram --#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead. --#: stdio-common/../sysdeps/gnu/errlist.c:422 --msgid "Transport endpoint is not connected" --msgstr "Ponto final de transporte não está conectado" -+#: locale/programs/locale.c:78 -+msgid "Print more information" -+msgstr "Imprime mais informações" - --#: argp/argp-help.c:1610 --#, c-format --msgid "Try `%s --help' or `%s --usage' for more information.\n" --msgstr "Tente `%s --help' ou `%s --usage' para mais informações.\n" -+#: locale/programs/locale.c:83 -+msgid "Get locale-specific information." -+msgstr "Obtém informações específicas da localidade." - --#: inet/rcmd.c:143 --#, c-format --msgid "Trying %s...\n" --msgstr "Tentando %s...\n" -+#: locale/programs/locale.c:86 -+msgid "" -+"NAME\n" -+"[-a|-m]" -+msgstr "" -+"NOME\n" -+"[-a|-m]" - --#: nis/nis_print.c:163 -+#: locale/programs/locale.c:190 - #, c-format --msgid "Type : %s\n" --msgstr "Tipo : %s\n" -+msgid "Cannot set LC_CTYPE to default locale" -+msgstr "Não foi possível definir LC_CTYPE para a localidade padrão" - --#: nis/nis_print.c:47 --msgid "UNKNOWN" --msgstr "DESCONHECIDO" -- --#: nis/nis_error.c:72 --msgid "Unable to authenticate NIS+ client" --msgstr "Impossível autenticar cliente NIS+" -- --#: nis/nis_error.c:71 --msgid "Unable to authenticate NIS+ server" --msgstr "Impossível autenticar servidor NIS+" -- --#: nis/nis_error.c:46 --msgid "Unable to create callback" --msgstr "Impossível criar chamador" -- --#: nis/nis_error.c:74 --msgid "Unable to create process on server" --msgstr "Impossível criar processo no servidor" -- --#: nis/nis_print.c:190 -+#: locale/programs/locale.c:192 - #, c-format --msgid "Unknown (type = %d, bits = %d)\n" --msgstr "Desconhecido (tipo = %d, bits = %d)\n" -+msgid "Cannot set LC_MESSAGES to default locale" -+msgstr "Não foi possível definir LC_MESSAGES para a localidade padrão" - --#: inet/ruserpass.c:248 -+#: locale/programs/locale.c:205 - #, c-format --msgid "Unknown .netrc keyword %s" --msgstr "Palavra-chave em .netrc desconhecida %s" -+msgid "Cannot set LC_COLLATE to default locale" -+msgstr "Não foi possível definir LC_COLLATE para a localidade padrão" - --#: nis/ypclnt.c:797 --msgid "Unknown NIS error code" --msgstr "Código de erro NIS desconhecido" -- --#: nss/getent.c:505 -+#: locale/programs/locale.c:221 - #, c-format --msgid "Unknown database: %s\n" --msgstr "Base de dados desconhecida: %s\n" -- --#: posix/../sysdeps/posix/gai_strerror.c:51 --msgid "Unknown error" --msgstr "Erro desconhecido" -- --#: string/../sysdeps/generic/_strerror.c:48 --#: string/../sysdeps/mach/_strerror.c:86 --#: sysdeps/mach/hurd/mips/dl-machine.c:82 --msgid "Unknown error " --msgstr "Erro desconhecido " -- --#: resolv/herror.c:74 --msgid "Unknown host" --msgstr "Host desconhecido" -- --#: nis/nis_error.c:34 --msgid "Unknown object" --msgstr "Objeto desconhecido" -+msgid "Cannot set LC_ALL to default locale" -+msgstr "Não foi possível definir LC_ALL para a localidade padrão" - --#: nscd/nscd_conf.c:181 -+#: locale/programs/locale.c:521 - #, c-format --msgid "Unknown option: %s %s %s" --msgstr "Opção desconhecida: %s %s %s" -- --#: resolv/herror.c:120 --msgid "Unknown resolver error" --msgstr "Erro desconhecido do resolvedor" -- --#: resolv/herror.c:76 --msgid "Unknown server error" --msgstr "Erro desconhecido de servidor" -+msgid "while preparing output" -+msgstr "enquanto preparava a saída" - --#: string/strsignal.c:70 --#, c-format --msgid "Unknown signal %d" --msgstr "Sinal desconhecido %d" -+#: locale/programs/localedef.c:112 -+msgid "Input Files:" -+msgstr "Arquivos de entrada:" - --#: misc/error.c:107 --msgid "Unknown system error" --msgstr "Erro desconhecido de sistema" -+#: locale/programs/localedef.c:114 -+msgid "Symbolic character names defined in FILE" -+msgstr "Nomes de caracteres simbólicos definido no ARQUIVO" - --#: nis/ypclnt.c:845 --msgid "Unknown ypbind error" --msgstr "Erro desconhecido de ypbind" -+#: locale/programs/localedef.c:116 -+msgid "Source definitions are found in FILE" -+msgstr "Definições fonte são encontradas no ARQUIVO" - --#: posix/regex.c:1020 --msgid "Unmatched ( or \\(" --msgstr "( ou \\( descasados" -+#: locale/programs/localedef.c:118 -+msgid "FILE contains mapping from symbolic names to UCS4 values" -+msgstr "ARQUIVO contém mapas de nomes simbólicos para valores UCS4" - --#: posix/regex.c:1028 --msgid "Unmatched ) or \\)" --msgstr ") ou \\) descasados" -+#: locale/programs/localedef.c:122 -+msgid "Create output even if warning messages were issued" -+msgstr "Cria saída mesmo que mensagens de aviso forem produzidas" - --#: posix/regex.c:1019 --msgid "Unmatched [ or [^" --msgstr "[ ou [^ descasados" -+#: locale/programs/localedef.c:123 -+msgid "Optional output file prefix" -+msgstr "Prefixo opcional de arquivo de saída" - --#: posix/regex.c:1021 --msgid "Unmatched \\{" --msgstr "\\{ descasado" -+#: locale/programs/localedef.c:124 -+msgid "Strictly conform to POSIX" -+msgstr "Adapta estritamente ao POSIX" - --#: posix/getconf.c:692 --#, c-format --msgid "Unrecognized variable `%s'" --msgstr "Variável não reconhecida `%s'" -+#: locale/programs/localedef.c:126 -+msgid "Suppress warnings and information messages" -+msgstr "Suprime avisos e mensagens de informação" - --#: stdio-common/../sysdeps/unix/siglist.c:41 --#: sysdeps/unix/sysv/linux/siglist.h:35 --msgid "Urgent I/O condition" --msgstr "Condição urgente de E/S" -+#: locale/programs/localedef.c:127 -+msgid "Print more messages" -+msgstr "Mostra mais mensagens" - --#: argp/argp-help.c:1567 --msgid "Usage:" --msgstr "Uso:" -+#: locale/programs/localedef.c:128 locale/programs/localedef.c:131 -+msgid "" -+msgstr "" - --#: posix/getconf.c:604 --#, c-format --msgid "Usage: %s variable_name [pathname]\n" --msgstr "Uso: %s nome_da_variável [caminho]\n" -+#: locale/programs/localedef.c:129 -+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" - --#: sunrpc/rpcinfo.c:674 --msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n" --msgstr "Uso: rpcinfo [ -n númporta ] -u host númprog [ númvers ]\n" -+#: locale/programs/localedef.c:132 -+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" - --#: stdio-common/../sysdeps/unix/siglist.c:55 --#: sysdeps/unix/sysv/linux/siglist.h:48 --msgid "User defined signal 1" --msgstr "Sinal 1 definido pelo usuário" -+#: locale/programs/localedef.c:135 -+msgid "Archive control:" -+msgstr "Controle de pacote:" - --#: stdio-common/../sysdeps/unix/siglist.c:56 --#: sysdeps/unix/sysv/linux/siglist.h:49 --msgid "User defined signal 2" --msgstr "Sinal 2 definido pelo usuário" -+#: locale/programs/localedef.c:137 -+msgid "Don't add new data to archive" -+msgstr "Não adiciona novos dados ao pacote" - --#: stdio-common/../sysdeps/gnu/errlist.c:654 --msgid "Value too large for defined data type" --msgstr "Valor muito extenso para o tipo de dados definido" -+#: locale/programs/localedef.c:139 -+msgid "Add locales named by parameters to archive" -+msgstr "Adiciona localidades nomeadas por parâmetros ao pacote" - --#: stdio-common/../sysdeps/unix/siglist.c:51 --#: sysdeps/unix/sysv/linux/siglist.h:45 --msgid "Virtual timer expired" --msgstr "Temporizador virtual expirado" -+#: locale/programs/localedef.c:140 -+msgid "Replace existing archive content" -+msgstr "Substitui o conteúdo de pacote existente" - --#: timezone/zic.c:1899 --msgid "Wild result from command execution" --msgstr "Resultado insensato da execução do comando" -+#: locale/programs/localedef.c:142 -+msgid "Remove locales named by parameters from archive" -+msgstr "Remove localidades nomeadas por parâmetros do pacote" - --#: stdio-common/../sysdeps/unix/siglist.c:53 --#: sysdeps/unix/sysv/linux/siglist.h:47 --msgid "Window changed" --msgstr "Janela alterada" -+#: locale/programs/localedef.c:143 -+msgid "List content of archive" -+msgstr "Lista conteúdo do pacote" - --#: locale/programs/locale.c:67 --msgid "Write names of available charmaps" --msgstr "Escreve nomes dos mapas de caracteres (charmaps) disponíveis" -+#: locale/programs/localedef.c:145 -+msgid "locale.alias file to consult when making archive" -+msgstr "arquivo localidade.apelido a ser consultado ao criar pacote" - --#: locale/programs/locale.c:65 --msgid "Write names of available locales" --msgstr "Escreve nomes das localizações (locales) disponíveis" -+#: locale/programs/localedef.c:147 -+msgid "Generate little-endian output" -+msgstr "Gera saída em little-endian" - --#: locale/programs/locale.c:69 --msgid "Write names of selected categories" --msgstr "Escreve nomes das categorias selecionadasd" -+#: locale/programs/localedef.c:149 -+msgid "Generate big-endian output" -+msgstr "Gera saída em big-endian" - --#: locale/programs/locale.c:70 --msgid "Write names of selected keywords" --msgstr "Escreve nomes das palavras-chave selecionadas" -+#: locale/programs/localedef.c:154 -+msgid "Compile locale specification" -+msgstr "Compila especificação localizada" - --#: catgets/gencat.c:110 db2/makedb.c:59 --msgid "Write output to file NAME" --msgstr "Escreve a saída para o arquivo NOME" -+#: locale/programs/localedef.c:157 -+msgid "" -+"NAME\n" -+"[--add-to-archive|--delete-from-archive] FILE...\n" -+"--list-archive [FILE]" -+msgstr "" -+"NOME\n" -+"[--add-to-archive|--delete-from-archive] ARQUIVO...\n" -+"--list-archive [ARQUIVO]" - --#: catgets/gencat.c:241 db2/makedb.c:247 elf/sprof.c:365 --#: iconv/iconv_prog.c:299 locale/programs/locale.c:272 --#: locale/programs/localedef.c:408 nscd/nscd.c:228 nss/getent.c:70 --#: posix/getconf.c:629 -+#: locale/programs/localedef.c:232 - #, c-format --msgid "Written by %s.\n" --msgstr "Escrito por %s.\n" -- --#: stdio-common/../sysdeps/gnu/errlist.c:818 --msgid "Wrong medium type" --msgstr "Tipo de mídia incorreta" -+msgid "cannot create directory for output files" -+msgstr "não foi possível criar diretório para os arquivos de saída" - --#: nis/nis_print.c:39 --msgid "X500" --msgstr "X500" -- --#: nis/nis_print.c:43 --msgid "XCHS" --msgstr "XCHS" -+#: locale/programs/localedef.c:243 -+msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'" -+msgstr "FATAL: sistema não define “_POSIX2_LOCALEDEF”" - --#: nis/ypclnt.c:185 -+#: locale/programs/localedef.c:257 locale/programs/localedef.c:273 -+#: locale/programs/localedef.c:663 locale/programs/localedef.c:683 - #, c-format --msgid "YPBINDPROC_DOMAIN: %s\n" --msgstr "YPBINDPROC_DOMAIN: %s\n" -+msgid "cannot open locale definition file `%s'" -+msgstr "não é possível abrir arquivo de definição da localidade “%s”" - --#: nis/nis_error.c:70 --msgid "Yes, 42 is the meaning of life" --msgstr "Sim, 42 é o sentido da vida" -+#: locale/programs/localedef.c:297 -+#, c-format -+msgid "cannot write output files to `%s'" -+msgstr "não é possível escrever arquivo de saída para “%s”" - --#. TRANS You did @strong{what}? --#: stdio-common/../sysdeps/gnu/errlist.c:608 --msgid "You really blew it this time" --msgstr "Você realmente o destruiu desta vez" -+#: locale/programs/localedef.c:303 -+msgid "no output file produced because errors were issued" -+msgstr "nenhum arquivo de saída foi produzido porque erros foram emitidos" - --#: timezone/zic.c:1063 --msgid "Zone continuation line end time is not after end time of previous line" --msgstr "Tempo final da linha de zona não está após o tempo final da linha anterior" -+#: locale/programs/localedef.c:431 -+#, c-format -+msgid "" -+"System's directory for character maps : %s\n" -+"\t\t repertoire maps: %s\n" -+"\t\t locale path : %s\n" -+"%s" -+msgstr "" -+"Diretório do sistema para mapas de caracteres: %s\n" -+" mapas de repertórios: %s\n" -+" caminho da localidade: %s\n" -+"%s" - --#: iconv/iconv_prog.c:70 --msgid "[FILE...]" --msgstr "[ARQUIVO...]" -+#: locale/programs/localedef.c:631 -+msgid "circular dependencies between locale definitions" -+msgstr "dependências circulares entre definições de localidade" - --#: locale/programs/charmap.c:481 locale/programs/locfile.c:471 --#: locale/programs/repertoire.c:278 -+#: locale/programs/localedef.c:637 - #, 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'" -+msgid "cannot add already read locale `%s' a second time" -+msgstr "não foi possível adicionar localidade já lida “%s” uma segunda vez" - --#: elf/sprof.c:766 -+#: locale/programs/locarchive.c:133 locale/programs/locarchive.c:380 - #, c-format --msgid "`%s' is no correct profile data file for `%s'" --msgstr "`%s' não é o arquivo deperfil de dados correto para `%s'" -+msgid "cannot create temporary file: %s" -+msgstr "não foi possível criar arquivo temporário: %s" - --#: locale/programs/ld-monetary.c:369 locale/programs/ld-numeric.c:193 -+#: locale/programs/locarchive.c:167 locale/programs/locarchive.c:430 - #, c-format --msgid "`-1' must be last entry in `%s' field in `%s' category" --msgstr "`-1' deve ser o último registro no `%s' campo na `%s' categoria" -- --#: locale/programs/ld-collate.c:1666 --msgid "`...' must only be used in `...' and `UNDEFINED' entries" --msgstr "`...' deve ser usado apenas em `...' e entradas `UNDEFINED'" -- --#: locale/programs/locfile.c:668 --msgid "`from' expected after first argument to `collating-element'" --msgstr "`from' esperado após primeiro argumento para `collating-element'" -- --#: locale/programs/ld-collate.c:1118 --msgid "`from' string in collation element declaration contains unknown character" --msgstr "string `from' na declaração de elemento de comparação contém caracter desconhecido" -+msgid "cannot initialize archive file" -+msgstr "não foi possível inicializar o arquivo do pacote" - --#: posix/../sysdeps/posix/gai_strerror.c:34 --msgid "ai_family not supported" --msgstr "Família de protocolo (ai_family) não suportada" -- --#: posix/../sysdeps/posix/gai_strerror.c:39 --msgid "ai_socktype not supported" --msgstr "Tipo socket (ai_socktype) não suportado" -- --#: nscd/nscd.c:121 --msgid "already running" --msgstr "já está rodando" -- --#: locale/programs/charmap.c:352 locale/programs/repertoire.c:152 -+#: locale/programs/locarchive.c:174 locale/programs/locarchive.c:437 - #, c-format --msgid "argument to <%s> must be a single character" --msgstr "argumento para <%s> deve ser um caracter simples" -+msgid "cannot resize archive file" -+msgstr "não foi possível redimensionar o arquivo do pacote" - --#: locale/programs/locfile.c:240 -+#: locale/programs/locarchive.c:189 locale/programs/locarchive.c:452 -+#: locale/programs/locarchive.c:674 - #, c-format --msgid "argument to `%s' must be a single character" --msgstr "argumento para `%s' deve ser um caracter simples" -- --#: sunrpc/auth_unix.c:321 --msgid "auth_none.c - Fatal marshalling problem" --msgstr "auth_none.c - Problema fatal de marshalling" -- --#: sunrpc/auth_unix.c:116 sunrpc/auth_unix.c:122 sunrpc/auth_unix.c:151 --msgid "authunix_create: out of memory\n" --msgstr "authunix_create: não há memória suficiente\n" -- --#: locale/programs/charmap.c:297 locale/programs/locfile.c:234 --#: locale/programs/locfile.c:261 locale/programs/repertoire.c:144 --msgid "bad argument" --msgstr "argumento inválido" -- --#: inet/rcmd.c:318 --msgid "bad owner" --msgstr "dono inválido" -- --#: timezone/zic.c:1185 --msgid "blank FROM field on Link line" --msgstr "campo FROM em branco na linha Link" -- --#: timezone/zic.c:1189 --msgid "blank TO field on Link line" --msgstr "campo TO em branco na linha Link" -- --#: malloc/mcheck.c:208 --msgid "block freed twice\n" --msgstr "bloco liberado duas vezes\n" -- --#: malloc/mcheck.c:211 --msgid "bogus mcheck_status, library is buggy\n" --msgstr "mcheck_status inválido, biblioteca está com problemas\n" -- --#: sunrpc/pmap_rmt.c:185 --msgid "broadcast: ioctl (get interface configuration)" --msgstr "broadcast: ioctl (obter configuração de interface)" -+msgid "cannot map archive header" -+msgstr "não foi possível mapear o cabeçalho do pacote" - --#: sunrpc/pmap_rmt.c:194 --msgid "broadcast: ioctl (get interface flags)" --msgstr "broadcast: ioctl (obter flags de interface)" -- --#: login/programs/request.c:167 --msgid "buffer overflow" --msgstr "estouro de buffer" -- --#: sunrpc/svc_udp.c:446 --msgid "cache_set: could not allocate new rpc_buffer" --msgstr "cache_set: não foi possível alocar novo rpc_buffer" -- --#: sunrpc/svc_udp.c:440 --msgid "cache_set: victim alloc failed" --msgstr "cache_set: alocação de vítima falhou" -+#: locale/programs/locarchive.c:211 -+#, c-format -+msgid "failed to create new locale archive" -+msgstr "falha ao criar o novo pacote de localidade" - --#: sunrpc/svc_udp.c:429 --msgid "cache_set: victim not found" --msgstr "cache_set: vítima não localizada" -+#: locale/programs/locarchive.c:223 -+#, c-format -+msgid "cannot change mode of new locale archive" -+msgstr "não foi possível alterar o modo do novo arquivo de localidade" - --#: timezone/zic.c:1726 --msgid "can't determine time zone abbreviation to use just after until time" --msgstr "não é possível determinar abreviação para zona de tempo" -+#: locale/programs/locarchive.c:324 -+msgid "cannot read data from locale archive" -+msgstr "não foi possível ler dados do pacote de localidade" - --#: sunrpc/svc_simple.c:75 -+#: locale/programs/locarchive.c:355 - #, c-format --msgid "can't reassign procedure number %d\n" --msgstr "não é possível reassinalar número de procedimento %d\n" -+msgid "cannot map locale archive file" -+msgstr "não foi possível mapear o arquivo do pacote de localidade" - --#: locale/programs/localedef.c:279 -+#: locale/programs/locarchive.c:460 - #, c-format --msgid "cannot `stat' locale file `%s'" --msgstr "não é possível acessar arquivo de locale `%s'" -+msgid "cannot lock new archive" -+msgstr "não foi possível travar o novo pacote" - --#: elf/sprof.c:935 elf/sprof.c:987 --msgid "cannot allocate symbol data" --msgstr "Não foi possível alocar memória" -+#: locale/programs/locarchive.c:529 -+#, c-format -+msgid "cannot extend locale archive file" -+msgstr "não foi possível estender o arquivo do pacote de localidade" - --#: elf/sprof.c:719 elf/sprof.c:777 --msgid "cannot create internal descriptor" --msgstr "não é possível criar descritor interno" -+#: locale/programs/locarchive.c:538 -+#, c-format -+msgid "cannot change mode of resized locale archive" -+msgstr "não foi possível alterar o modo do arquivo de localidade redimensionado" - --#: elf/sprof.c:417 --msgid "cannot create internal descriptors" --msgstr "não é possivel criar descritores internos" -+#: locale/programs/locarchive.c:546 -+#, c-format -+msgid "cannot rename new archive" -+msgstr "não foi possível renomear o novo pacote" - --#: nscd/connections.c:180 -+#: locale/programs/locarchive.c:608 - #, c-format --msgid "cannot enable socket to accept connections: %s" --msgstr "impossível habilitar soquete para aceitar conecções: %s" -+msgid "cannot open locale archive \"%s\"" -+msgstr "não foi possível abrir pacote de localidade “%s”" - --#: sunrpc/rpc_main.c:342 -+#: locale/programs/locarchive.c:613 - #, c-format --msgid "cannot find C preprocessor: %s \n" --msgstr "impossível encontrar pré-processador C: %s\n" -+msgid "cannot stat locale archive \"%s\"" -+msgstr "não foi possível obter estado do pacote de localidade “%s”" - --#: sunrpc/rpc_main.c:350 --msgid "cannot find any C preprocessor (cpp)\n" --msgstr "impossível encontrar qualquer pré-processador C (cpp)\n" -+#: locale/programs/locarchive.c:632 -+#, c-format -+msgid "cannot lock locale archive \"%s\"" -+msgstr "não foi possível travar o pacote de localidade “%s”" - --#: nscd/connections.c:205 -+#: locale/programs/locarchive.c:655 - #, c-format --msgid "cannot handle old request version %d; current version is %d" --msgstr "impossível lidar com requisições de versões antigas %d; a versão atual é %d" -+msgid "cannot read archive header" -+msgstr "não foi possível ler o cabeçalho do pacote" - --#: locale/programs/ld-collate.c:1324 -+#: locale/programs/locarchive.c:728 - #, c-format --msgid "cannot insert collation element `%.*s'" --msgstr "não é possível inserir elemento de comparação `%.*s'" -+msgid "locale '%s' already exists" -+msgstr "localidade “%s” já existe" - --#: locale/programs/ld-collate.c:1503 locale/programs/ld-collate.c:1510 --msgid "cannot insert into result table" --msgstr "não é possível inserir na tabela de resultados" -+#: 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 "não foi possível adicionar ao pacote de localidade" - --#: locale/programs/ld-collate.c:1175 locale/programs/ld-collate.c:1218 -+#: locale/programs/locarchive.c:1203 - #, c-format --msgid "cannot insert new collating symbol definition: %s" --msgstr "não é possível inserir nova definição de símbolo de comparação: %s" -+msgid "locale alias file `%s' not found" -+msgstr "arquivo de apelido de localidade “%s” não localizado" - --#: elf/sprof.c:674 --msgid "cannot load profiling data" --msgstr "impossível carregar perfis de dados" -+#: locale/programs/locarchive.c:1351 -+#, c-format -+msgid "Adding %s\n" -+msgstr "Adicionando %s\n" - --#: inet/rcmd.c:314 --msgid "cannot open" --msgstr "impossível abrir" -+#: locale/programs/locarchive.c:1357 -+#, c-format -+msgid "stat of \"%s\" failed: %s: ignored" -+msgstr "obtenção de estado de “%s” falhou: %s: ignorado" - --#: sysdeps/unix/sysv/linux/lddlibc4.c:64 -+#: locale/programs/locarchive.c:1363 - #, c-format --msgid "cannot open `%s'" --msgstr "não é possível abrir `%s'" -+msgid "\"%s\" is no directory; ignored" -+msgstr "“%s” não é um diretório; ignorado" - --#: db2/makedb.c:146 -+#: locale/programs/locarchive.c:1370 - #, c-format --msgid "cannot open database file `%s': %s" --msgstr "não é possível abrir arquivo de banco de dados `%s': %s" -+msgid "cannot open directory \"%s\": %s: ignored" -+msgstr "não foi possível abrir o diretório “%s”: %s: ignorado" - --#: catgets/gencat.c:272 db2/makedb.c:167 iconv/iconv_prog.c:177 -+#: locale/programs/locarchive.c:1438 - #, c-format --msgid "cannot open input file `%s'" --msgstr "não é possível abrir arquivo de entrada `%s'" -+msgid "incomplete set of locale files in \"%s\"" -+msgstr "definição incompleta dos arquivos de localização em “%s”" - --#: locale/programs/localedef.c:198 -+#: locale/programs/locarchive.c:1502 - #, c-format --msgid "cannot open locale definition file `%s'" --msgstr "não é possível abrir arquivo de definição locale `%s'" -+msgid "cannot read all files in \"%s\": ignored" -+msgstr "não foi possível ler todos os arquivos em “%s”: ignorado" - --#: iconv/iconv_prog.c:155 --msgid "cannot open output file" --msgstr "não é possível abrir arquivo de saída" -+#: locale/programs/locarchive.c:1572 -+#, c-format -+msgid "locale \"%s\" not in archive" -+msgstr "localidade “%s” não está no pacote" - --#: catgets/gencat.c:774 catgets/gencat.c:815 db2/makedb.c:181 -+#: locale/programs/locfile.c:137 - #, c-format --msgid "cannot open output file `%s'" --msgstr "não é possível abrir arquivo de saída `%s'" -+msgid "argument to `%s' must be a single character" -+msgstr "argumento para “%s” deve ser um caractere simples" -+ -+#: locale/programs/locfile.c:257 -+msgid "syntax error: not inside a locale definition section" -+msgstr "erro de sintaxe: não está dentro de uma seção de definição de localidade" - --#: locale/programs/locfile.c:1129 -+#: locale/programs/locfile.c:799 - #, c-format - msgid "cannot open output file `%s' for category `%s'" --msgstr "não é possível abrir arquivo de saída `%s' para categoria `%s'" -+msgstr "não foi possível abrir o arquivo de saída “%s” para a categoria “%s”" - --#: nscd/connections.c:162 -+#: locale/programs/locfile.c:822 - #, c-format --msgid "cannot open socket: %s" --msgstr "não é possível abrir soquete: `%s'" -- --#: locale/programs/ld-collate.c:1370 --msgid "cannot process order specification" --msgstr "não é possível processar specificação de ordem" -+msgid "failure while writing data for category `%s'" -+msgstr "falha ao escrever dados para categoria “%s”" - --#: locale/programs/locale.c:449 -+#: locale/programs/locfile.c:917 - #, c-format --msgid "cannot read character map directory `%s'" --msgstr "não é possível ler diretório de mapa de caracter `%s'" -+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”" - --#: nscd/connections.c:122 --msgid "cannot read configuration file; this is fatal" --msgstr "impossível ler arquivo de configuração; isto é fatal" -+#: locale/programs/locfile.c:953 -+msgid "expecting string argument for `copy'" -+msgstr "esperando argumento em string para “copy”" - --#: login/programs/request.c:91 --msgid "cannot read from client" --msgstr "não é possível ler do cliente" -+#: locale/programs/locfile.c:957 -+msgid "locale name should consist only of portable characters" -+msgstr "nome de localidade deve consistir apenas em caracteres portáteis" - --#: sysdeps/unix/sysv/linux/lddlibc4.c:68 --#, c-format --msgid "cannot read header from `%s'" --msgstr "não é possível ler cabeçalho de `%s'" -+#: locale/programs/locfile.c:976 -+msgid "no other keyword shall be specified when `copy' is used" -+msgstr "nenhuma outra palavra-chave deve ser especificada quando “copy” é usado" - --#: locale/programs/locale.c:306 -+#: locale/programs/locfile.c:990 - #, c-format --msgid "cannot read locale directory `%s'" --msgstr "não é possível ler diretório locale `%s'" -+msgid "`%1$s' definition does not end with `END %1$s'" -+msgstr "“%1$s” definição não termina com “END %1$s”" - --#: locale/programs/localedef.c:303 -+#: locale/programs/repertoire.c:228 locale/programs/repertoire.c:269 -+#: locale/programs/repertoire.c:294 - #, c-format --msgid "cannot read locale file `%s'" --msgstr "não é possível ler arquivo locale `%s'" -+msgid "syntax error in repertoire map definition: %s" -+msgstr "erro de sintaxe no mapa de repertório: %s" - --#: locale/programs/locfile.c:288 locale/programs/locfile.c:306 --#: locale/programs/locfile.c:324 locale/programs/locfile.c:342 --#: locale/programs/locfile.c:360 locale/programs/locfile.c:378 --#, c-format --msgid "cannot read repertoire map `%s'" --msgstr "não é possível ler mapa de repertório `%s'" -+#: locale/programs/repertoire.c:270 -+msgid "no or value given" -+msgstr "valores ou não dados" - --#: nscd/nscd_stat.c:127 --msgid "cannot read statistics data" --msgstr "impossível ler dados de estatística" -+#: locale/programs/repertoire.c:330 -+msgid "cannot save new repertoire map" -+msgstr "não foi possível salvar novo mapa de repertório" - --#: nscd/cache.c:141 nscd/connections.c:148 -+#: locale/programs/repertoire.c:341 - #, c-format --msgid "cannot stat() file `%s': %s" --msgstr "não é possível ler atributos do arquivo `%s': %s" -+msgid "repertoire map file `%s' not found" -+msgstr "arquivo de mapa de repertório “%s” não foi encontrado" - --#: locale/programs/localedef.c:328 -+#: login/programs/pt_chown.c:79 - #, c-format --msgid "cannot write output files to `%s'" --msgstr "não é possível escrever arquivo de saída para `%s'" -+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 "Define o dono, grupo e permissão de acesso ao pseudoterminal escravo correspondente ao pseudoterminal mestre passado no descritor de arquivo “%d”. Esse é um programa auxiliar para a função “grantpt”. Ele não tem a intenção de ser executado diretamente da linha de comando.\n" - --#: nscd/connections.c:229 nscd/connections.c:250 -+#: login/programs/pt_chown.c:93 - #, c-format --msgid "cannot write result: %s" --msgstr "não é possível escrever resultado: %s" -+msgid "" -+"The owner is set to the current user, the group is set to `%s', and the access permission is set to `%o'.\n" -+"\n" -+"%s" -+msgstr "" -+"O dono está definido como o usuário atual, o grupo está definido para “%s” e a permissão de acesso está definida para “%o”.\n" -+"\n" -+"%s" - --#: nscd/nscd_stat.c:86 -+#: login/programs/pt_chown.c:204 - #, c-format --msgid "cannot write statistics: %s" --msgstr "não é possível escrever estatisticas: %s" -+msgid "too many arguments" -+msgstr "número excessivo de argumentos" - --#: login/programs/request.c:120 --msgid "cannot write to client" --msgstr "não é possível escrever para o cliente" -+#: login/programs/pt_chown.c:212 -+#, c-format -+msgid "needs to be installed setuid `root'" -+msgstr "precisa ser instalado com setuid “root”" - --#: locale/programs/localedef.c:442 --msgid "category data requested more than once: should not happen" --msgstr "categoria de dados requisitada mais que uma vez: isto não deveria acontecer" -+#: malloc/mcheck.c:344 -+msgid "memory is consistent, library is buggy\n" -+msgstr "a memória está consistente; a biblioteca está problemática\n" - --#: locale/programs/ld-ctype.c:269 --#, c-format --msgid "character %s'%s' in class `%s' must be in class `%s'" --msgstr "caracter %s'%s' na classe `%s' deve estar na classe `%s'" -+#: malloc/mcheck.c:347 -+msgid "memory clobbered before allocated block\n" -+msgstr "memória sobrescrita antes do bloco alocado\n" - --#: locale/programs/ld-ctype.c:294 --#, c-format --msgid "character %s'%s' in class `%s' must not be in class `%s'" --msgstr "caracter %s'%s' na classe `%s' não deve estar na classe `%s'" -+#: malloc/mcheck.c:350 -+msgid "memory clobbered past end of allocated block\n" -+msgstr "memória sobrescrita após o fim do bloco alocado\n" - --#: locale/programs/ld-ctype.c:320 --msgid "character not defined in character map" --msgstr "caracter não definido no mapa de caracteres" -+#: malloc/mcheck.c:353 -+msgid "block freed twice\n" -+msgstr "bloco liberado duas vezes\n" - --#: locale/programs/ld-ctype.c:964 locale/programs/ld-ctype.c:1029 --#: locale/programs/ld-ctype.c:1040 locale/programs/ld-ctype.c:1051 --#: locale/programs/ld-ctype.c:1062 locale/programs/ld-ctype.c:1073 --#: locale/programs/ld-ctype.c:1084 locale/programs/ld-ctype.c:1113 --#: locale/programs/ld-ctype.c:1124 locale/programs/ld-ctype.c:1165 --#: locale/programs/ld-ctype.c:1194 locale/programs/ld-ctype.c:1206 --#, c-format --msgid "character `%s' not defined while needed as default value" --msgstr "caracter `%s' não definido enquanto necessário como valor default" -+#: malloc/mcheck.c:356 -+msgid "bogus mcheck_status, library is buggy\n" -+msgstr "mcheck_status inválido; a biblioteca está problemática\n" - --#: locale/programs/ld-ctype.c:825 --#, c-format --msgid "character class `%s' already defined" --msgstr "classe de caracter `%s' já definida" -+#: malloc/memusage.sh:32 -+msgid "%s: option '%s' requires an argument\\n" -+msgstr "%s: a opção “%s” requer um argumento\\n" - --#: locale/programs/ld-ctype.c:857 --#, c-format --msgid "character map `%s' already defined" --msgstr "mapa de caracteres `%s' já definido" -+#: malloc/memusage.sh:38 -+msgid "" -+"Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]...\n" -+"Profile memory usage of PROGRAM.\n" -+"\n" -+" -n,--progname=NAME Name of the program file to profile\n" -+" -p,--png=FILE Generate PNG graphic and store it in FILE\n" -+" -d,--data=FILE Generate binary data file and store it in FILE\n" -+" -u,--unbuffered Don't buffer output\n" -+" -b,--buffer=SIZE Collect SIZE entries before writing them out\n" -+" --no-timer Don't collect additional information through timer\n" -+" -m,--mmap Also trace mmap & friends\n" -+"\n" -+" -?,--help Print this help and exit\n" -+" --usage Give a short usage message\n" -+" -V,--version Print version information and exit\n" -+"\n" -+" The following options only apply when generating graphical output:\n" -+" -t,--time-based Make graph linear in time\n" -+" -T,--total Also draw graph of total memory use\n" -+" --title=STRING Use STRING as title of the graph\n" -+" -x,--x-size=SIZE Make graphic SIZE pixels wide\n" -+" -y,--y-size=SIZE Make graphic SIZE pixels high\n" -+"\n" -+"Mandatory arguments to long options are also mandatory for any corresponding\n" -+"short options.\n" -+"\n" -+msgstr "" -+"Uso: memusage [OPÇÃO]... PROGRAMA [OPÇÃO-PROGRAMA]...\n" -+"Perfila o uso de memória do PROGRAMA.\n" -+"\n" -+" -n,--progname=NOME Nome do arquivo de programa a perfilar\n" -+" -p,--png=ARQUIVO Gera um gráfico em PNG e o armazena em ARQUIVO\n" -+" -d,--data=ARQUIVO Gera um arquivo de dados binários e o armazena \n" -+" em ARQUIVO\n" -+" -u,--unbuffered Não utiliza buffer na saída\n" -+" -b,--buffer=TAM Coleta TAM registros antes de escrevê-los na saída\n" -+" --no-timer Não coleta informações adicionais do temporizador\n" -+" -m,--mmap Também rastreia mmap & amigos\n" -+"\n" -+" -?,--help Exibe essa ajuda e sai\n" -+" --usage Fornece uma curta mensagem de uso\n" -+" -V,--version Exibe informação da versão e sai\n" -+"\n" -+" As seguintes opções se aplicam apenas ao gerar saída gráfica:\n" -+" -t,--time-based Cria um gráfico linear no tempo\n" -+" -T,--total Também desenha um gráfico do uso total de memória\n" -+" --title=TEXTO Usa TEXTO como título do gráfico\n" -+" -x,--x-size=TAM Faz com que o gráfico tenha TAM pixels de largura\n" -+" -y,--y-size=TAM Faz com que o gráfico tenha TAM pixels de altura\n" -+"\n" -+"Argumentos obrigatórios para opções longas são também obrigatórios para\n" -+"qualquer opção curta correspondente.\n" -+"\n" - --#: locale/programs/charmap.c:83 --#, c-format --msgid "character map file `%s' not found" --msgstr "arquivo de mapa de caracter `%s' não foi localizado" -+# Usei "Uso:" para caber tudo na mesma linha e para padronizar -- Rafael -+#: malloc/memusage.sh:99 -+msgid "" -+"Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n" -+"\t [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n" -+"\t [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n" -+"\t PROGRAM [PROGRAMOPTION]..." -+msgstr "" -+"Uso: memusage [--data=ARQUIVO] [--progname=NOME] [--png=ARQUIVO] [--unbuffered]\n" -+"\t [--buffer=TAM] [--no-timer] [--time-based] [--total]\n" -+"\t [--title=TEXTO] [--x-size=TAM] [--y-size=TAM]\n" -+"\t PROGRAMA [OPÇÃO-PROGRAMA]..." - --#: sunrpc/clnt_raw.c:110 --msgid "clnt_raw.c - Fatal header serialization error." --msgstr "clnt_raw.c - Erro fatal no cabeçalho de serialização." -+#: malloc/memusage.sh:191 -+msgid "memusage: option \\`${1##*=}' is ambiguous" -+msgstr "memusage: opção “${1##*=}” é ambígua" - --#: sunrpc/clnt_tcp.c:125 sunrpc/clnt_tcp.c:133 --msgid "clnttcp_create: out of memory\n" --msgstr "clnttcp_create: não há memória suficiente\n" -+#: malloc/memusage.sh:200 -+msgid "memusage: unrecognized option \\`$1'" -+msgstr "memusage: opção não reconhecida “$1”" - --#: sunrpc/clnt_udp.c:124 sunrpc/clnt_udp.c:134 --msgid "clntudp_create: out of memory\n" --msgstr "clntudp_create: não há memória suficiente\n" -+#: malloc/memusage.sh:213 -+msgid "No program name given" -+msgstr "Nenhum nome de programa fornecido" - --#: sunrpc/clnt_unix.c:123 sunrpc/clnt_unix.c:131 --msgid "clntunix_create: out of memory\n" --msgstr "clntunix_reate: não há memória suficiente\n" -+#: malloc/memusagestat.c:56 -+msgid "Name output file" -+msgstr "Nome do arquivo de saída" - --#: locale/programs/ld-collate.c:1339 --#, c-format --msgid "collation element `%.*s' appears more than once: ignore line" --msgstr "o elemento de comparação `%.*s' aparece mais que uma vez: ignorar linha" -+#: malloc/memusagestat.c:57 -+msgid "STRING" -+msgstr "TEXTO" - --#: locale/programs/ld-collate.c:1357 --#, c-format --msgid "collation symbol `%.*s' appears more than once: ignore line" --msgstr "o símbolo de comparação `%.*s' aparece mais que uma vez: ignorar linha" -+#: malloc/memusagestat.c:57 -+msgid "Title string used in output graphic" -+msgstr "Texto do título usado no gráfico de saída" - --#: locale/programs/locfile.c:652 --#, c-format --msgid "collation symbol expected after `%s'" --msgstr "símbolo de comparação esperado após `%s'" -+#: malloc/memusagestat.c:58 -+msgid "Generate output linear to time (default is linear to number of function calls)" -+msgstr "Gera uma saída linear no tempo (padrão é linear ao número de chamadas de função)" - --#: inet/rcmd.c:136 --#, c-format --msgid "connect to address %s: " --msgstr "connectar-se ao endereço %s: " -+#: malloc/memusagestat.c:62 -+msgid "Also draw graph for total memory consumption" -+msgstr "Também desenha um gráfico de consumo total de memória" - --#: sunrpc/rpc_scan.c:115 --msgid "constant or identifier expected" --msgstr "identificador ou constante esperado" -+#: malloc/memusagestat.c:63 -+msgid "VALUE" -+msgstr "VALOR" - --#: iconv/iconv_prog.c:144 --#, c-format --msgid "conversion from `%s' to `%s' not supported" --msgstr "conversão de `%s' para `%s' não é suportada" -+#: malloc/memusagestat.c:64 -+msgid "Make output graphic VALUE pixels wide" -+msgstr "Fazer um gráfico de saída com VALOR pixels de largura" - --#: iconv/iconv_prog.c:326 --msgid "conversion stopped due to problem in writing the output" --msgstr "a conversão parou devido a problemas de escrita na saída" -+#: malloc/memusagestat.c:65 -+msgid "Make output graphic VALUE pixels high" -+msgstr "Fazer um gráfico de saída com VALOR pixels de altura" - --#: sunrpc/svc_simple.c:83 --msgid "couldn't create an rpc server\n" --msgstr "não foi possível criar um servidor rpc\n" -+#: malloc/memusagestat.c:70 -+msgid "Generate graphic from memory profiling data" -+msgstr "Gera um gráfico a partir dos dados de perfilamento de memória" - --#: sunrpc/svc_simple.c:91 --#, c-format --msgid "couldn't register prog %d vers %d\n" --msgstr "não foi possível registrar prog %d vers %d\n" -+#: malloc/memusagestat.c:73 -+msgid "DATAFILE [OUTFILE]" -+msgstr "ARQUIVO-DADOS [ARQUIVO-SAÍDA]" - --#: nss/getent.c:49 --msgid "database [key ...]" --msgstr "base de dados [chave ...]" -+#: misc/error.c:192 -+msgid "Unknown system error" -+msgstr "Erro desconhecido de sistema" -+ -+#: nis/nis_callback.c:188 -+msgid "unable to free arguments" -+msgstr "não foi possível liberar argumentos" -+ -+#: nis/nis_error.h:1 nis/ypclnt.c:824 nis/ypclnt.c:913 posix/regcomp.c:137 -+#: sysdeps/gnu/errlist.c:21 -+msgid "Success" -+msgstr "Sucesso" -+ -+#: nis/nis_error.h:2 -+msgid "Probable success" -+msgstr "Sucesso provável" -+ -+#: nis/nis_error.h:3 -+msgid "Not found" -+msgstr "Não localizado" -+ -+#: nis/nis_error.h:4 -+msgid "Probably not found" -+msgstr "Provavelmente não encontrado" -+ -+#: nis/nis_error.h:5 -+msgid "Cache expired" -+msgstr "Tempo expirado" -+ -+#: nis/nis_error.h:6 -+msgid "NIS+ servers unreachable" -+msgstr "Servidores NIS+ fora do alcance" -+ -+#: nis/nis_error.h:7 -+msgid "Unknown object" -+msgstr "Objeto desconhecido" -+ -+#: nis/nis_error.h:8 -+msgid "Server busy, try again" -+msgstr "Servidor ocupado, tente novamente" -+ -+#: nis/nis_error.h:9 -+msgid "Generic system error" -+msgstr "Erro genérico de sistema" -+ -+#: nis/nis_error.h:10 -+msgid "First/next chain broken" -+msgstr "Primeira/próxima corrente quebrada" -+ -+#. TRANS The file permissions do not allow the attempted operation. -+#: nis/nis_error.h:11 nis/ypclnt.c:869 sysdeps/gnu/errlist.c:158 -+msgid "Permission denied" -+msgstr "Permissão negada" -+ -+#: nis/nis_error.h:12 -+msgid "Not owner" -+msgstr "Dono inválido" -+ -+#: nis/nis_error.h:13 -+msgid "Name not served by this server" -+msgstr "Nome não servido por este servidor" -+ -+#: nis/nis_error.h:14 -+msgid "Server out of memory" -+msgstr "Memória do servidor exaurida" -+ -+#: nis/nis_error.h:15 -+msgid "Object with same name exists" -+msgstr "Um objeto com o mesmo nome existe" -+ -+#: nis/nis_error.h:16 -+msgid "Not master server for this domain" -+msgstr "Não é um servidor mestre para este domínio" -+ -+#: nis/nis_error.h:17 -+msgid "Invalid object for operation" -+msgstr "Objeto inválido para a operação" -+ -+#: nis/nis_error.h:18 -+msgid "Malformed name, or illegal name" -+msgstr "Nome malformado ou nome ilegal" -+ -+#: nis/nis_error.h:19 -+msgid "Unable to create callback" -+msgstr "Impossível criar retorno de chamada" -+ -+#: nis/nis_error.h:20 -+msgid "Results sent to callback proc" -+msgstr "Resultados enviados para o processo de retorno chamada" -+ -+#: nis/nis_error.h:21 -+msgid "Not found, no such name" -+msgstr "Não localizado, nome inexistente" -+ -+#: nis/nis_error.h:22 -+msgid "Name/entry isn't unique" -+msgstr "Nome/entrada não é único" -+ -+#: nis/nis_error.h:23 -+msgid "Modification failed" -+msgstr "Modificação falhou" -+ -+#: nis/nis_error.h:24 -+msgid "Database for table does not exist" -+msgstr "Banco de dados para a tabela não existe" -+ -+#: nis/nis_error.h:25 -+msgid "Entry/table type mismatch" -+msgstr "Tipo de entrada/tabela incompatível" -+ -+#: nis/nis_error.h:26 -+msgid "Link points to illegal name" -+msgstr "Link aponta para um nome ilegal" -+ -+#: nis/nis_error.h:27 -+msgid "Partial success" -+msgstr "Sucesso parcial" -+ -+#: nis/nis_error.h:28 -+msgid "Too many attributes" -+msgstr "Número excessivo de atributos" -+ -+#: nis/nis_error.h:29 -+msgid "Error in RPC subsystem" -+msgstr "Erro no subsistema RPC" -+ -+#: nis/nis_error.h:30 -+msgid "Missing or malformed attribute" -+msgstr "Atributo perdido ou malformado" -+ -+#: nis/nis_error.h:31 -+msgid "Named object is not searchable" -+msgstr "Objeto nomeado não é pesquisável" -+ -+#: nis/nis_error.h:32 -+msgid "Error while talking to callback proc" -+msgstr "Erro durante a chamada a processo de retorno de chamada" -+ -+#: nis/nis_error.h:33 -+msgid "Non NIS+ namespace encountered" -+msgstr "Espaço de nomes não-NIS+ encontrado" -+ -+#: nis/nis_error.h:34 -+msgid "Illegal object type for operation" -+msgstr "Tipo ilegal de objeto para a operação" -+ -+#: nis/nis_error.h:35 -+msgid "Passed object is not the same object on server" -+msgstr "Objeto passado não é o mesmo objeto no servidor" -+ -+#: nis/nis_error.h:36 -+msgid "Modify operation failed" -+msgstr "Operação de modificação falhou" -+ -+#: nis/nis_error.h:37 -+msgid "Query illegal for named table" -+msgstr "Pergunta ilegal para tabela nominada" -+ -+#: nis/nis_error.h:38 -+msgid "Attempt to remove a non-empty table" -+msgstr "Tentativa de remoção de uma tabela não vazia" -+ -+#: nis/nis_error.h:39 -+msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?" -+msgstr "Erro acessando arquivo inicial do NIS+. O NIS+ está instalado?" -+ -+#: nis/nis_error.h:40 -+msgid "Full resync required for directory" -+msgstr "Nova sincronização total necessária para o diretório" -+ -+#: nis/nis_error.h:41 -+msgid "NIS+ operation failed" -+msgstr "Operação NIS+ falhou" -+ -+#: nis/nis_error.h:42 -+msgid "NIS+ service is unavailable or not installed" -+msgstr "Serviço NIS+ está indisponível ou não está instalado" -+ -+#: nis/nis_error.h:43 -+msgid "Yes, 42 is the meaning of life" -+msgstr "Sim, 42 é o sentido da vida" -+ -+#: nis/nis_error.h:44 -+msgid "Unable to authenticate NIS+ server" -+msgstr "Não foi possível autenticar servidor NIS+" -+ -+#: nis/nis_error.h:45 -+msgid "Unable to authenticate NIS+ client" -+msgstr "Não foi possível autenticar cliente NIS+" -+ -+#: nis/nis_error.h:46 -+msgid "No file space on server" -+msgstr "Não há espaço disponível no servidor" - --#: locale/programs/charmap.c:170 -+#: nis/nis_error.h:47 -+msgid "Unable to create process on server" -+msgstr "Não foi possível criar processo no servidor" -+ -+#: nis/nis_error.h:48 -+msgid "Master server busy, full dump rescheduled." -+msgstr "Servidor mestre ocupado, descarregamento completo (dump) remarcado." -+ -+#: nis/nis_local_names.c:122 - #, c-format --msgid "default character map file `%s' not found" --msgstr "arquivo default de mapa de caracter `%s' não localizado" -+msgid "LOCAL entry for UID %d in directory %s not unique\n" -+msgstr "Entrada LOCAL para UID %d no diretório %s não é única\n" -+ -+#: nis/nis_print.c:52 -+msgid "UNKNOWN" -+msgstr "DESCONHECIDO" -+ -+#: nis/nis_print.c:110 -+msgid "BOGUS OBJECT\n" -+msgstr "OBJETO FALSO\n" -+ -+#: nis/nis_print.c:113 -+msgid "NO OBJECT\n" -+msgstr "SEM OBJETO\n" -+ -+#: nis/nis_print.c:116 -+msgid "DIRECTORY\n" -+msgstr "DIRETÓRIO\n" -+ -+#: nis/nis_print.c:119 -+msgid "GROUP\n" -+msgstr "GRUPO\n" -+ -+#: nis/nis_print.c:122 -+msgid "TABLE\n" -+msgstr "TABELA\n" -+ -+#: nis/nis_print.c:125 -+msgid "ENTRY\n" -+msgstr "ENTRADA\n" -+ -+#: nis/nis_print.c:128 -+msgid "LINK\n" -+msgstr "LINK\n" -+ -+#: nis/nis_print.c:131 -+msgid "PRIVATE\n" -+msgstr "PRIVADO\n" - --#: locale/programs/ld-time.c:163 -+#: nis/nis_print.c:134 -+msgid "(Unknown object)\n" -+msgstr "(Objeto desconhecido)\n" -+ -+#: nis/nis_print.c:168 - #, c-format --msgid "direction flag in string %d in `era' field in category `%s' is not '+' nor '-'" --msgstr "flag de direção na string %d no campo `era', categoria `%s', não é '+'nem '_'" -+msgid "Name : `%s'\n" -+msgstr "Nome : “%s”\n" - --#: locale/programs/ld-time.c:174 -+#: nis/nis_print.c:169 - #, c-format --msgid "direction flag in string %d in `era' field in category `%s' is not a single character" --msgstr "flag de direção na string %d no campo `era', categoria `%s', não é um caracter simples" -+msgid "Type : %s\n" -+msgstr "Tipo : %s\n" -+ -+#: nis/nis_print.c:174 -+msgid "Master Server :\n" -+msgstr "Servidor mestre :\n" -+ -+#: nis/nis_print.c:176 -+msgid "Replicate :\n" -+msgstr "Duplicado :\n" - --#: locale/programs/charset.c:64 locale/programs/charset.c:118 -+#: nis/nis_print.c:177 - #, c-format --msgid "duplicate character name `%s'" --msgstr "nome de caracter duplicado `%s'" -+msgid "\tName : %s\n" -+msgstr "\tNome : %s\n" - --#: locale/programs/ld-collate.c:1150 --msgid "duplicate collating element definition" --msgstr "definição de elemento de comparação duplicada" -+#: nis/nis_print.c:178 -+msgid "\tPublic Key : " -+msgstr "\tChave pública : " -+ -+#: nis/nis_print.c:182 -+msgid "None.\n" -+msgstr "nenhum.\n" - --#: locale/programs/ld-collate.c:1297 -+#: nis/nis_print.c:185 - #, c-format --msgid "duplicate definition for character `%.*s'" --msgstr "definição para caracter duplicada `%.*s'" -+msgid "Diffie-Hellmann (%d bits)\n" -+msgstr "Diffie-Hellman (%d bits)\n" - --#: db2/makedb.c:328 --msgid "duplicate key" --msgstr "chave duplicada" -+#: nis/nis_print.c:190 -+#, c-format -+msgid "RSA (%d bits)\n" -+msgstr "RSA (%d bits)\n" - --#: catgets/gencat.c:388 --msgid "duplicate set definition" --msgstr "definição de conjunto duplicada" -+#: nis/nis_print.c:193 -+msgid "Kerberos.\n" -+msgstr "Kerberos.\n" - --#: timezone/zic.c:978 -+#: nis/nis_print.c:196 - #, c-format --msgid "duplicate zone name %s (file \"%s\", line %d)" --msgstr "nome de zona duplicado %s (arquivo \"%s\", linha %d)" -+msgid "Unknown (type = %d, bits = %d)\n" -+msgstr "Desconhecido (tipo = %d, bits = %d)\n" - --#: catgets/gencat.c:551 --msgid "duplicated message identifier" --msgstr "identificador de mensagens duplicado" -+#: nis/nis_print.c:207 -+#, c-format -+msgid "\tUniversal addresses (%u)\n" -+msgstr "\tEndereço universal (%u)\n" - --#: catgets/gencat.c:524 --msgid "duplicated message number" --msgstr "número de mensagem duplicado" -+#: nis/nis_print.c:229 -+msgid "Time to live : " -+msgstr "Tempo de vida : " - --#: sunrpc/rpc_scan.c:382 --msgid "empty char string" --msgstr "cadeia de caractere vazia" -+#: nis/nis_print.c:231 -+msgid "Default Access rights :\n" -+msgstr "Direitos de acesso padrão :\n" - --#: locale/programs/ld-collate.c:1710 --msgid "empty weight name: line ignored" --msgstr "nome do peso vazio: linha ignorada" -+#: nis/nis_print.c:240 -+#, c-format -+msgid "\tType : %s\n" -+msgstr "\tTipo : %s\n" - --#: sunrpc/svc_udp.c:372 --msgid "enablecache: cache already enabled" --msgstr "enablecache: cache já ativado" -+#: nis/nis_print.c:241 -+msgid "\tAccess rights: " -+msgstr "\tDireitos acesso: " - --#: sunrpc/svc_udp.c:378 --msgid "enablecache: could not allocate cache" --msgstr "enablecache: não foi possível alocar cache" -+#: nis/nis_print.c:255 -+msgid "Group Flags :" -+msgstr "Indicadores de grupo :" - --#: sunrpc/svc_udp.c:386 --msgid "enablecache: could not allocate cache data" --msgstr "enablecache: não foi possível alocar dados do cache" -+#: nis/nis_print.c:258 -+msgid "" -+"\n" -+"Group Members :\n" -+msgstr "" -+"\n" -+"Membros do grupo :\n" - --#: sunrpc/svc_udp.c:393 --msgid "enablecache: could not allocate cache fifo" --msgstr "enablecache: não foi possível alocar cache fifo" -+#: nis/nis_print.c:270 -+#, c-format -+msgid "Table Type : %s\n" -+msgstr "Tipo de tabela : %s\n" - --#: iconv/iconv_prog.c:56 --msgid "encoding for output" --msgstr "codificação para a saída" -+#: nis/nis_print.c:271 -+#, c-format -+msgid "Number of Columns : %d\n" -+msgstr "Número de colunas : %d\n" - --#: iconv/iconv_prog.c:55 --msgid "encoding of original text" --msgstr "codificação para o texto original" -+#: nis/nis_print.c:272 -+#, c-format -+msgid "Character Separator : %c\n" -+msgstr "Separador de caracteres : %c\n" -+ -+#: nis/nis_print.c:273 -+#, c-format -+msgid "Search Path : %s\n" -+msgstr "Caminho de pesquisa : %s\n" -+ -+#: nis/nis_print.c:274 -+msgid "Columns :\n" -+msgstr "Colunas :\n" -+ -+#: nis/nis_print.c:277 -+#, c-format -+msgid "\t[%d]\tName : %s\n" -+msgstr "\t[%d]\tNome : %s\n" -+ -+#: nis/nis_print.c:279 -+msgid "\t\tAttributes : " -+msgstr "\t\tAtributos : " -+ -+#: nis/nis_print.c:281 -+msgid "\t\tAccess Rights : " -+msgstr "\t\tDireitos de acesso : " -+ -+#: nis/nis_print.c:291 -+msgid "Linked Object Type : " -+msgstr "Tipo de objeto vinculado : " -+ -+#: nis/nis_print.c:293 -+#, c-format -+msgid "Linked to : %s\n" -+msgstr "Vinculado a : %s\n" -+ -+#: nis/nis_print.c:303 -+#, c-format -+msgid "\tEntry data of type %s\n" -+msgstr "\tEntrada de dados de tipo %s\n" -+ -+#: nis/nis_print.c:306 -+#, c-format -+msgid "\t[%u] - [%u bytes] " -+msgstr "\t[%u] – [%u bytes] " -+ -+#: nis/nis_print.c:309 -+msgid "Encrypted data\n" -+msgstr "Dados criptografados\n" -+ -+#: nis/nis_print.c:311 -+msgid "Binary data\n" -+msgstr "Dados binários\n" -+ -+#: nis/nis_print.c:327 -+#, c-format -+msgid "Object Name : %s\n" -+msgstr "Nome do objeto : %s\n" -+ -+#: nis/nis_print.c:328 -+#, c-format -+msgid "Directory : %s\n" -+msgstr "Diretório : %s\n" -+ -+#: nis/nis_print.c:329 -+#, c-format -+msgid "Owner : %s\n" -+msgstr "Dono : %s\n" -+ -+#: nis/nis_print.c:330 -+#, c-format -+msgid "Group : %s\n" -+msgstr "Grupo : %s\n" -+ -+#: nis/nis_print.c:331 -+msgid "Access Rights : " -+msgstr "Direitos de acesso : " -+ -+#: nis/nis_print.c:333 -+#, c-format -+msgid "" -+"\n" -+"Time to Live : " -+msgstr "" -+"\n" -+"Tempo de vida : " -+ -+#: nis/nis_print.c:336 -+#, c-format -+msgid "Creation Time : %s" -+msgstr "Horário de criação : %s" -+ -+#: nis/nis_print.c:338 -+#, c-format -+msgid "Mod. Time : %s" -+msgstr "Horário de mod. : %s" -+ -+#: nis/nis_print.c:339 -+msgid "Object Type : " -+msgstr "Tipo do objeto : " -+ -+#: nis/nis_print.c:359 -+#, c-format -+msgid " Data Length = %u\n" -+msgstr " Tamanho dados = %u\n" -+ -+#: nis/nis_print.c:373 -+#, c-format -+msgid "Status : %s\n" -+msgstr "Posição : %s\n" - --#: locale/programs/ld-collate.c:1429 --msgid "end point of ellipsis range is bigger then start" --msgstr "o ponto final da área da elipse é maior que o início " -+#: nis/nis_print.c:374 -+#, c-format -+msgid "Number of objects : %u\n" -+msgstr "Número de objetos : %u\n" -+ -+#: nis/nis_print.c:378 -+#, c-format -+msgid "Object #%d:\n" -+msgstr "Objeto #%d:\n" -+ -+#: nis/nis_print_group_entry.c:117 -+#, c-format -+msgid "Group entry for \"%s.%s\" group:\n" -+msgstr "Entrada para o grupo “%s.%s”:\n" -+ -+#: nis/nis_print_group_entry.c:125 -+msgid " Explicit members:\n" -+msgstr " Membros explícitos:\n" -+ -+#: nis/nis_print_group_entry.c:130 -+msgid " No explicit members\n" -+msgstr " Nenhum membro explícito\n" -+ -+#: nis/nis_print_group_entry.c:133 -+msgid " Implicit members:\n" -+msgstr " Membros implícitos:\n" -+ -+#: nis/nis_print_group_entry.c:138 -+msgid " No implicit members\n" -+msgstr " Nenhum membro implícito\n" -+ -+#: nis/nis_print_group_entry.c:141 -+msgid " Recursive members:\n" -+msgstr " Membros recursivos:\n" -+ -+#: nis/nis_print_group_entry.c:146 -+msgid " No recursive members\n" -+msgstr " Nenhuma membros recursivo\n" -+ -+#: nis/nis_print_group_entry.c:149 -+msgid " Explicit nonmembers:\n" -+msgstr " Não-membros explícitos:\n" -+ -+#: nis/nis_print_group_entry.c:154 -+msgid " No explicit nonmembers\n" -+msgstr " Nenhum não-membro explícito\n" -+ -+#: nis/nis_print_group_entry.c:157 -+msgid " Implicit nonmembers:\n" -+msgstr " Não-membros implícitos:\n" -+ -+#: nis/nis_print_group_entry.c:162 -+msgid " No implicit nonmembers\n" -+msgstr " Nenhum não-membro implícito\n" -+ -+#: nis/nis_print_group_entry.c:165 -+msgid " Recursive nonmembers:\n" -+msgstr " Não-membros recursivos:\n" -+ -+#: nis/nis_print_group_entry.c:170 -+msgid " No recursive nonmembers\n" -+msgstr " Nenhum não-membro recursivo\n" -+ -+#: nis/nss_nisplus/nisplus-publickey.c:100 -+#: nis/nss_nisplus/nisplus-publickey.c:182 -+#, c-format -+msgid "DES entry for netname %s not unique\n" -+msgstr "Entrada DES para nome de rede (netname) %s não é única\n" -+ -+#: nis/nss_nisplus/nisplus-publickey.c:219 -+#, c-format -+msgid "netname2user: missing group id list in `%s'" -+msgstr "netname2user: faltando lista de id do grupo em “%s”" -+ -+#: nis/nss_nisplus/nisplus-publickey.c:301 -+#: nis/nss_nisplus/nisplus-publickey.c:307 -+#: nis/nss_nisplus/nisplus-publickey.c:372 -+#: nis/nss_nisplus/nisplus-publickey.c:381 -+#, c-format -+msgid "netname2user: (nis+ lookup): %s\n" -+msgstr "netname2user: (nis+ lookup): %s\n" -+ -+#: nis/nss_nisplus/nisplus-publickey.c:320 -+#, c-format -+msgid "netname2user: DES entry for %s in directory %s not unique" -+msgstr "netname2user: entrada DES para %s no diretório %s não é única" -+ -+#: nis/nss_nisplus/nisplus-publickey.c:338 -+#, c-format -+msgid "netname2user: principal name `%s' too long" -+msgstr "netname2user: nome princpal “%s” longo demais" -+ -+#: nis/nss_nisplus/nisplus-publickey.c:394 -+#, c-format -+msgid "netname2user: LOCAL entry for %s in directory %s not unique" -+msgstr "netname2user: entrada LOCAL para %s no diretório %s não é única" -+ -+#: nis/nss_nisplus/nisplus-publickey.c:401 -+msgid "netname2user: should not have uid 0" -+msgstr "netname2user: não deve possuir uid 0" -+ -+#: nis/ypclnt.c:827 -+msgid "Request arguments bad" -+msgstr "Argumentos de requisição inválidos" -+ -+#: nis/ypclnt.c:830 -+msgid "RPC failure on NIS operation" -+msgstr "Falha RPC na operação NIS" -+ -+#: nis/ypclnt.c:833 -+msgid "Can't bind to server which serves this domain" -+msgstr "Não é possível vincular ao servidor que serve este domínio" -+ -+#: nis/ypclnt.c:836 -+msgid "No such map in server's domain" -+msgstr "Mapa inexistente no domínio do servidor" -+ -+#: nis/ypclnt.c:839 -+msgid "No such key in map" -+msgstr "Chave inexistente no mapa" -+ -+#: nis/ypclnt.c:842 -+msgid "Internal NIS error" -+msgstr "Erro NIS interno" -+ -+#: nis/ypclnt.c:845 -+msgid "Local resource allocation failure" -+msgstr "Falha na alocação de recurso local" -+ -+#: nis/ypclnt.c:848 -+msgid "No more records in map database" -+msgstr "Não há mais registros no banco de dados de mapas" -+ -+#: nis/ypclnt.c:851 -+msgid "Can't communicate with portmapper" -+msgstr "Não foi possível comunicar com o portmapper" -+ -+#: nis/ypclnt.c:854 -+msgid "Can't communicate with ypbind" -+msgstr "Não foi possível comunicar com o ypbind" -+ -+#: nis/ypclnt.c:857 -+msgid "Can't communicate with ypserv" -+msgstr "Não foi possível comunicar com o ypserv" -+ -+#: nis/ypclnt.c:860 -+msgid "Local domain name not set" -+msgstr "Nome de domínio local não definido" -+ -+#: nis/ypclnt.c:863 -+msgid "NIS map database is bad" -+msgstr "Banco de dados de mapas NIS é inválido" -+ -+#: nis/ypclnt.c:866 -+msgid "NIS client/server version mismatch - can't supply service" -+msgstr "Versões cliente/servidor NIS não conferem – não foi possível oferecer serviço" -+ -+#: nis/ypclnt.c:872 -+msgid "Database is busy" -+msgstr "Banco de dados está ocupado" -+ -+#: nis/ypclnt.c:875 -+msgid "Unknown NIS error code" -+msgstr "Código de erro NIS desconhecido" -+ -+#: nis/ypclnt.c:916 -+msgid "Internal ypbind error" -+msgstr "Erro interno de ypbind" -+ -+#: nis/ypclnt.c:919 -+msgid "Domain not bound" -+msgstr "Domínio não vinculado" -+ -+#: nis/ypclnt.c:922 -+msgid "System resource allocation failure" -+msgstr "Falha de alocação de recursos do sistema" -+ -+#: nis/ypclnt.c:925 -+msgid "Unknown ypbind error" -+msgstr "Erro desconhecido de ypbind" -+ -+#: nis/ypclnt.c:966 -+msgid "yp_update: cannot convert host to netname\n" -+msgstr "yp_update: não foi possível converter host para netname\n" -+ -+#: nis/ypclnt.c:984 -+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:85 nscd/hstcache.c:485 -+#, c-format -+msgid "Haven't found \"%s\" in hosts cache!" -+msgstr "Não foi encontrado “%s” no cache de máquinas!" -+ -+#: nscd/aicache.c:87 nscd/hstcache.c:487 -+#, c-format -+msgid "Reloading \"%s\" in hosts cache!" -+msgstr "Recarregando “%s” no cache de máquinas!" -+ -+#: nscd/cache.c:151 -+#, c-format -+msgid "add new entry \"%s\" of type %s for %s to cache%s" -+msgstr "adicionar nova entrada “%s” do tipo %s para %s ao cache%s" -+ -+#: nscd/cache.c:153 -+msgid " (first)" -+msgstr " (primeira)" -+ -+#: nscd/cache.c:288 -+#, c-format -+msgid "checking for monitored file `%s': %s" -+msgstr "verificando pelo arquivo monitorado “%s”: %s" -+ -+#: nscd/cache.c:298 -+#, c-format -+msgid "monitored file `%s` changed (mtime)" -+msgstr "arquivo monitorado “%s” foi modificado (mtime)" -+ -+#: nscd/cache.c:341 -+#, c-format -+msgid "pruning %s cache; time %ld" -+msgstr "removendo cache %s; tempo %ld" -+ -+#: nscd/cache.c:370 -+#, c-format -+msgid "considering %s entry \"%s\", timeout %" -+msgstr "considerando entrada %s “%s”, tempo limite %" -+ -+#: nscd/connections.c:537 -+#, c-format -+msgid "invalid persistent database file \"%s\": %s" -+msgstr "arquivo inválido de banco de dados persistente “%s”: %s" -+ -+#: nscd/connections.c:545 -+msgid "uninitialized header" -+msgstr "cabeçalho não inicializado" -+ -+#: nscd/connections.c:550 -+msgid "header size does not match" -+msgstr "tamanho do cabeçalho não confere" -+ -+#: nscd/connections.c:560 -+msgid "file size does not match" -+msgstr "tamanho de arquivo não confere" -+ -+#: nscd/connections.c:577 -+msgid "verification failed" -+msgstr "verificação falhou" -+ -+#: nscd/connections.c:591 -+#, c-format -+msgid "suggested size of table for database %s larger than the persistent database's table" -+msgstr "tamanho sugerido de tabela para banco de dados %s maior que a tabela do banco de dados persistente" -+ -+#: nscd/connections.c:602 nscd/connections.c:686 -+#, c-format -+msgid "cannot create read-only descriptor for \"%s\"; no mmap" -+msgstr "não foi possível criar descritor somente leitura para “%s”; nenhum mmap" -+ -+#: nscd/connections.c:618 -+#, c-format -+msgid "cannot access '%s'" -+msgstr "não foi possível acessar “%s”" -+ -+#: nscd/connections.c:666 -+#, c-format -+msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart" -+msgstr "banco de dados para %s corrompido ou usado simultaneamente; remova %s manualmente, se necessário, e reinicie" -+ -+#: nscd/connections.c:672 -+#, c-format -+msgid "cannot create %s; no persistent database used" -+msgstr "não foi possível criar %s; nenhum banco de dados persistente usado" -+ -+#: nscd/connections.c:675 -+#, c-format -+msgid "cannot create %s; no sharing possible" -+msgstr "não foi possível criar %s; nenhum compartilhamento possível" -+ -+#: nscd/connections.c:746 -+#, c-format -+msgid "cannot write to database file %s: %s" -+msgstr "não foi possível escrever para o arquivo de banco de dados %s: %s" -+ -+#: nscd/connections.c:802 -+#, c-format -+msgid "cannot open socket: %s" -+msgstr "não é possível abrir soquete: “%s”" -+ -+#: nscd/connections.c:821 -+#, c-format -+msgid "cannot enable socket to accept connections: %s" -+msgstr "impossível habilitar soquete para aceitar conexões: %s" -+ -+#: nscd/connections.c:878 -+#, c-format -+msgid "disabled inotify-based monitoring for file `%s': %s" -+msgstr "desabilitado monitoramento baseado em inotify para o arquivo “%s”: %s" -+ -+#: nscd/connections.c:882 -+#, c-format -+msgid "monitoring file `%s` (%d)" -+msgstr "monitorando o arquivo “%s” (%d)" -+ -+#: nscd/connections.c:895 -+#, c-format -+msgid "disabled inotify-based monitoring for directory `%s': %s" -+msgstr "desabilitado monitoramento baseado em inotify para o diretório “%s”: %s" -+ -+#: nscd/connections.c:899 -+#, c-format -+msgid "monitoring directory `%s` (%d)" -+msgstr "monitorando o diretório “%s” (%d)" -+ -+#: nscd/connections.c:927 -+#, c-format -+msgid "monitoring file %s for database %s" -+msgstr "monitorando o arquivo %s para o banco de dados %s" -+ -+#: nscd/connections.c:937 -+#, c-format -+msgid "stat failed for file `%s'; will try again later: %s" -+msgstr "obtenção de estado falhou para o arquivo “%s”; nova tentativa posteriormente: %s" -+ -+#: nscd/connections.c:1056 -+#, c-format -+msgid "provide access to FD %d, for %s" -+msgstr "fornece acesso ao descritor de arquivo %d, para %s" -+ -+#: nscd/connections.c:1068 -+#, c-format -+msgid "cannot handle old request version %d; current version is %d" -+msgstr "impossível lidar com requisições de versões antigas %d; a versão atual é %d" -+ -+#: nscd/connections.c:1091 -+#, c-format -+msgid "request from %ld not handled due to missing permission" -+msgstr "requisição de %ld não manipulada em razão de falta de permissão" -+ -+#: nscd/connections.c:1096 -+#, c-format -+msgid "request from '%s' [%ld] not handled due to missing permission" -+msgstr "requisição de “%s” [%ld] não manipulada em razão de falta de permissão" -+ -+#: nscd/connections.c:1101 -+msgid "request not handled due to missing permission" -+msgstr "requisição não manipulada em razão de falta de permissão" -+ -+#: nscd/connections.c:1139 nscd/connections.c:1192 -+#, c-format -+msgid "cannot write result: %s" -+msgstr "não é possível escrever resultado: %s" -+ -+#: nscd/connections.c:1283 -+#, c-format -+msgid "error getting caller's id: %s" -+msgstr "erro ao obter o id do chamador: %s" -+ -+#: nscd/connections.c:1343 -+#, c-format -+msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" -+msgstr "não foi possível abrir /proc/self/cmdline: %s; desabilitando modo paranoia" -+ -+#: nscd/connections.c:1357 -+#, c-format -+msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" -+msgstr "não foi possível ler /proc/self/cmdline: %s; desabilitando modo paranoia" -+ -+#: nscd/connections.c:1397 -+#, c-format -+msgid "cannot change to old UID: %s; disabling paranoia mode" -+msgstr "não foi possível alterar para UID antigo: %s; desabilitando modo paranoia" -+ -+#: nscd/connections.c:1407 -+#, c-format -+msgid "cannot change to old GID: %s; disabling paranoia mode" -+msgstr "não foi possível alterar para GID antigo: %s; desabilitando modo paranoia" -+ -+#: nscd/connections.c:1420 -+#, c-format -+msgid "cannot change to old working directory: %s; disabling paranoia mode" -+msgstr "não foi possível mudar para diretório de trabalho anterior: %s; desabilitando modo paranoia" -+ -+#: nscd/connections.c:1466 -+#, c-format -+msgid "re-exec failed: %s; disabling paranoia mode" -+msgstr "reexecução falhou: %s; desabilitando modo paranoia" -+ -+#: nscd/connections.c:1475 -+#, c-format -+msgid "cannot change current working directory to \"/\": %s" -+msgstr "não foi possível mudar o diretório de trabalho atual para “/”: %s" -+ -+#: nscd/connections.c:1658 -+#, c-format -+msgid "short read while reading request: %s" -+msgstr "leitura insuficiente durante a leitura da requisição: %s" -+ -+#: nscd/connections.c:1691 -+#, c-format -+msgid "key length in request too long: %d" -+msgstr "tamanho da chave na requisição é grande demais: %d" -+ -+#: nscd/connections.c:1704 -+#, c-format -+msgid "short read while reading request key: %s" -+msgstr "leitura insuficiente durante a leitura da chave de requisição: %s" -+ -+#: nscd/connections.c:1714 -+#, c-format -+msgid "handle_request: request received (Version = %d) from PID %ld" -+msgstr "handle_request: requisição recebida (Versão = %d) do PID %ld" -+ -+#: nscd/connections.c:1719 -+#, c-format -+msgid "handle_request: request received (Version = %d)" -+msgstr "handle_request: requisição recebida (Versão = %d)" -+ -+#: nscd/connections.c:1859 -+#, c-format -+msgid "ignored inotify event for `%s` (file exists)" -+msgstr "evento inotify ignorado para “%s” (arquivo existe)" -+ -+#: nscd/connections.c:1864 -+#, c-format -+msgid "monitored file `%s` was %s, removing watch" -+msgstr "arquivo monitorado “%s” era %s, removendo inspeção" -+ -+#: nscd/connections.c:1872 nscd/connections.c:1914 -+#, c-format -+msgid "failed to remove file watch `%s`: %s" -+msgstr "falha ao remover inspeção do arquivo “%s”: %s" -+ -+#: nscd/connections.c:1887 -+#, c-format -+msgid "monitored file `%s` was written to" -+msgstr "arquivo monitorado “%s” foi escrito para" -+ -+#: nscd/connections.c:1911 -+#, c-format -+msgid "monitored parent directory `%s` was %s, removing watch on `%s`" -+msgstr "diretório pai monitorado “%s” foi %s, removendo inspeção em “%s”" -+ -+#: nscd/connections.c:1937 -+#, c-format -+msgid "monitored file `%s` was %s, adding watch" -+msgstr "arquivo monitorado “%s” foi %s, adicionando inspeção" -+ -+#: nscd/connections.c:1949 -+#, c-format -+msgid "failed to add file watch `%s`: %s" -+msgstr "falha ao adicionar inspeção do arquivo “%s”: %s" -+ -+#: nscd/connections.c:2127 nscd/connections.c:2292 -+#, c-format -+msgid "disabled inotify-based monitoring after read error %d" -+msgstr "desabilitado monitoramento baseado em inotify após erro de leitura %d" -+ -+#: nscd/connections.c:2407 -+msgid "could not initialize conditional variable" -+msgstr "não foi possível inicializar variável condicional" -+ -+#: nscd/connections.c:2415 -+msgid "could not start clean-up thread; terminating" -+msgstr "não foi possível iniciar fluxo de limpeza; terminando" -+ -+#: nscd/connections.c:2429 -+msgid "could not start any worker thread; terminating" -+msgstr "não foi possível iniciar qualquer fluxo de trabalho; terminando" -+ -+#: nscd/connections.c:2484 nscd/connections.c:2486 nscd/connections.c:2502 -+#: nscd/connections.c:2512 nscd/connections.c:2530 nscd/connections.c:2541 -+#: nscd/connections.c:2551 -+#, c-format -+msgid "Failed to run nscd as user '%s'" -+msgstr "Falha ao executar nscd como usuário “%s”" -+ -+#: nscd/connections.c:2504 -+msgid "initial getgrouplist failed" -+msgstr "getgrouplist inicial falhou" -+ -+#: nscd/connections.c:2513 -+msgid "getgrouplist failed" -+msgstr "getgrouplist falhou" -+ -+#: nscd/connections.c:2531 -+msgid "setgroups failed" -+msgstr "setgroups falhou" -+ -+#: nscd/grpcache.c:416 nscd/hstcache.c:432 nscd/initgrcache.c:416 -+#: nscd/pwdcache.c:394 nscd/servicescache.c:338 -+#, c-format -+msgid "short write in %s: %s" -+msgstr "escrita insuficiente em %s: %s" -+ -+#: nscd/grpcache.c:461 nscd/initgrcache.c:84 -+#, c-format -+msgid "Haven't found \"%s\" in group cache!" -+msgstr "Não foi encontrado “%s” no cache de grupo!" -+ -+#: nscd/grpcache.c:463 nscd/initgrcache.c:86 -+#, c-format -+msgid "Reloading \"%s\" in group cache!" -+msgstr "Recarregando “%s” no cache de grupo!" -+ -+#: nscd/grpcache.c:542 -+#, c-format -+msgid "Invalid numeric gid \"%s\"!" -+msgstr "GID numérico inválido “%s”!" -+ -+#: nscd/mem.c:425 -+#, c-format -+msgid "freed %zu bytes in %s cache" -+msgstr "liberados %zu bytes no cache de %s" -+ -+#: nscd/mem.c:568 -+#, c-format -+msgid "no more memory for database '%s'" -+msgstr "não há mais memória para o banco de dados “%s”" -+ -+#: nscd/netgroupcache.c:121 -+#, c-format -+msgid "Haven't found \"%s\" in netgroup cache!" -+msgstr "Não foi encontrado “%s” no cache de netgroup!" -+ -+#: nscd/netgroupcache.c:123 -+#, c-format -+msgid "Reloading \"%s\" in netgroup cache!" -+msgstr "Recarregando “%s” no cache de netgroup!" -+ -+#: nscd/netgroupcache.c:495 -+#, 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:498 -+#, c-format -+msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!" -+msgstr "Recarregando “%s (%s,%s,%s)” no cache de netgroup!" -+ -+#: nscd/nscd.c:106 -+msgid "Read configuration data from NAME" -+msgstr "Lê configuração de dados de NOME" -+ -+#: nscd/nscd.c:108 -+msgid "Do not fork and display messages on the current tty" -+msgstr "Não bifurca (fork) e mostre mensagens na tty corrente" -+ -+#: nscd/nscd.c:110 -+msgid "Do not fork, but otherwise behave like a daemon" -+msgstr "Não bifurca (fork), mas, em vez disso, se comporta como um serviço (daemon)" -+ -+#: nscd/nscd.c:111 -+msgid "NUMBER" -+msgstr "NÚMERO" -+ -+# Espaço inical adicionado para corrigir alinhamento; veja 'nscd --help' -- Rafael -+#: nscd/nscd.c:111 -+msgid "Start NUMBER threads" -+msgstr " Inicia NÚMERO threads" -+ -+#: nscd/nscd.c:112 -+msgid "Shut the server down" -+msgstr "Encerra o servidor" -+ -+#: nscd/nscd.c:113 -+msgid "Print current configuration statistics" -+msgstr "Reúne e imprime as estatísticas de configuração" -+ -+#: nscd/nscd.c:114 -+msgid "TABLE" -+msgstr "TABELA" -+ -+#: nscd/nscd.c:115 -+msgid "Invalidate the specified cache" -+msgstr "Invalida o cache especificado" -+ -+#: nscd/nscd.c:116 -+msgid "TABLE,yes" -+msgstr "TABELA,sim" -+ -+#: nscd/nscd.c:117 -+msgid "Use separate cache for each user" -+msgstr "Usa um cache separado para cada usuário" -+ -+#: nscd/nscd.c:122 -+msgid "Name Service Cache Daemon." -+msgstr "Daemon de cache de serviço de nomes." -+ -+#: nscd/nscd.c:155 nss/getent.c:947 nss/makedb.c:206 -+#, c-format -+msgid "wrong number of arguments" -+msgstr "número incorreto de argumentos" -+ -+#: nscd/nscd.c:165 -+#, c-format -+msgid "failure while reading configuration file; this is fatal" -+msgstr "falha ao ler arquivo de configuração; isto é fatal" -+ -+#: nscd/nscd.c:174 -+#, c-format -+msgid "already running" -+msgstr "já está em execução" -+ -+#: nscd/nscd.c:194 -+#, c-format -+msgid "cannot create a pipe to talk to the child" -+msgstr "não foi possível criar um pipe para falar com o processo filho" -+ -+#: nscd/nscd.c:198 -+#, c-format -+msgid "cannot fork" -+msgstr "não foi possível bifurcar (fork)" -+ -+#: nscd/nscd.c:268 -+msgid "cannot change current working directory to \"/\"" -+msgstr "não foi possível mudar o diretório de trabalho atual para “/”" -+ -+#: nscd/nscd.c:276 -+msgid "Could not create log file" -+msgstr "Não foi possível criar o arquivo de log" -+ -+#: nscd/nscd.c:355 nscd/nscd_stat.c:209 -+#, c-format -+msgid "write incomplete" -+msgstr "escrita incompleta" -+ -+#: nscd/nscd.c:366 -+#, c-format -+msgid "cannot read invalidate ACK" -+msgstr "não foi possível ler ACK inválida" -+ -+#: nscd/nscd.c:372 -+#, c-format -+msgid "invalidation failed" -+msgstr "invalidação falhou" -+ -+#: nscd/nscd.c:417 nscd/nscd.c:442 nscd/nscd_stat.c:190 -+#, c-format -+msgid "Only root is allowed to use this option!" -+msgstr "Somente o superusuário pode usar esta opção!" -+ -+#: nscd/nscd.c:437 -+#, c-format -+msgid "'%s' is not a known database" -+msgstr "“%s” não é um banco de dados conhecido" -+ -+#: nscd/nscd.c:452 -+#, c-format -+msgid "secure services not implemented anymore" -+msgstr "serviços seguros não mais implementado" -+ -+#: nscd/nscd.c:485 -+#, c-format -+msgid "" -+"Supported tables:\n" -+"%s\n" -+"\n" -+"For bug reporting instructions, please see:\n" -+"%s.\n" -+msgstr "" -+"Há suporte às seguintes tabelas:\n" -+"%s\n" -+"\n" -+"Para instruções sobre como relatar erros, por favor veja:\n" -+"%s.\n" -+ -+#: nscd/nscd.c:635 -+#, c-format -+msgid "'wait' failed\n" -+msgstr "“wait” falhou\n" -+ -+#: nscd/nscd.c:642 -+#, c-format -+msgid "child exited with status %d\n" -+msgstr "processo filho saiu com erro %d\n" -+ -+#: nscd/nscd.c:647 -+#, c-format -+msgid "child terminated by signal %d\n" -+msgstr "processo filho terminado pelo sinal %d\n" -+ -+#: nscd/nscd_conf.c:54 -+#, c-format -+msgid "database %s is not supported" -+msgstr "sem suporte ao banco de dados %s" -+ -+#: nscd/nscd_conf.c:105 -+#, c-format -+msgid "Parse error: %s" -+msgstr "Erro de análise: %s" -+ -+#: nscd/nscd_conf.c:191 -+#, c-format -+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 -+#, 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 -+#, 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 -+#, c-format -+msgid "Unknown option: %s %s %s" -+msgstr "Opção desconhecida: %s %s %s" -+ -+#: nscd/nscd_conf.c:282 -+#, 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 -+#, 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" -+ -+#: nscd/nscd_stat.c:159 -+#, c-format -+msgid "cannot write statistics: %s" -+msgstr "não foi possível escrever estatísticas: %s" -+ -+#: nscd/nscd_stat.c:174 -+msgid "yes" -+msgstr "sim" -+ -+#: nscd/nscd_stat.c:175 -+msgid "no" -+msgstr "não" -+ -+#: nscd/nscd_stat.c:186 -+#, c-format -+msgid "Only root or %s is allowed to use this option!" -+msgstr "Somente o superusuário ou %s pode usar esta opção!" -+ -+#: nscd/nscd_stat.c:197 -+#, c-format -+msgid "nscd not running!\n" -+msgstr "nscd não está em execução!\n" -+ -+#: nscd/nscd_stat.c:221 -+#, c-format -+msgid "cannot read statistics data" -+msgstr "não foi possível ler dados de estatística" -+ -+#: nscd/nscd_stat.c:224 -+#, c-format -+msgid "" -+"nscd configuration:\n" -+"\n" -+"%15d server debug level\n" -+msgstr "" -+"configuração do nscd:\n" -+"\n" -+"%15d nível de depuração do servidor\n" -+ -+#: nscd/nscd_stat.c:248 -+#, c-format -+msgid "%3ud %2uh %2um %2lus server runtime\n" -+msgstr "%3ud %2uh %2um %2lus tempo de execução do servidor\n" -+ -+#: nscd/nscd_stat.c:251 -+#, c-format -+msgid " %2uh %2um %2lus server runtime\n" -+msgstr " %2uh %2um %2lus tempo de execução do servidor\n" -+ -+#: nscd/nscd_stat.c:253 -+#, c-format -+msgid " %2um %2lus server runtime\n" -+msgstr " %2um %2lus tempo de execução do servidor\n" -+ -+#: nscd/nscd_stat.c:255 -+#, c-format -+msgid " %2lus server runtime\n" -+msgstr " %2lus tempo de execução do servidor\n" -+ -+#: nscd/nscd_stat.c:257 -+#, c-format -+msgid "" -+"%15d current number of threads\n" -+"%15d maximum number of threads\n" -+"%15lu number of times clients had to wait\n" -+"%15s paranoia mode enabled\n" -+"%15lu restart internal\n" -+"%15u reload count\n" -+msgstr "" -+"%15d número atual de threads\n" -+"%15d número máximo de threads\n" -+"%15lu número de tempos de espera de clientes\n" -+"%15s modo paranoia habilitado\n" -+"%15lu reinicialização interna\n" -+"%15u recarregamento de contagem\n" -+ -+#: nscd/nscd_stat.c:292 -+#, c-format -+msgid "" -+"\n" -+"%s cache:\n" -+"\n" -+"%15s cache is enabled\n" -+"%15s cache is persistent\n" -+"%15s cache is shared\n" -+"%15zu suggested size\n" -+"%15zu total data pool size\n" -+"%15zu used data pool size\n" -+"%15lu seconds time to live for positive entries\n" -+"%15lu seconds time to live for negative entries\n" -+"%15 cache hits on positive entries\n" -+"%15 cache hits on negative entries\n" -+"%15 cache misses on positive entries\n" -+"%15 cache misses on negative entries\n" -+"%15lu%% cache hit rate\n" -+"%15zu current number of cached values\n" -+"%15zu maximum number of cached values\n" -+"%15zu maximum chain length searched\n" -+"%15 number of delays on rdlock\n" -+"%15 number of delays on wrlock\n" -+"%15 memory allocations failed\n" -+"%15s check /etc/%s for changes\n" -+msgstr "" -+"\n" -+"cache %s:\n" -+"\n" -+"%15s cache está habilitado\n" -+"%15s cache é persistente\n" -+"%15s cache está compartilhado\n" -+"%15zu tamanho sugerido\n" -+"%15zu tamanho total de pool de dados\n" -+"%15zu tamanho usado de pool de dados\n" -+"%15lu segundos de vida para entradas positivas\n" -+"%15lu segundos de vida para entradas negativas\n" -+"%15 acertos do cache para entradas positivas\n" -+"%15 acertos do cache para entradas negativas\n" -+"%15 erros do cache para entradas positivas\n" -+"%15 erros do cache para entradas negativas\n" -+"%15lu%% taxa de acertos do cache\n" -+"%15zu número atual de valores em cache\n" -+"%15zu número máximo de valores em cache\n" -+"%15zu tamanho máximo de correntes pesquisadas\n" -+"%15 número de atraso no rdlock\n" -+"%15 número de atraso no wrlock\n" -+"%15 alocações de memória falharam\n" -+"%15s verifica /etc/%s por alterações\n" -+ -+#: nscd/pwdcache.c:439 -+#, c-format -+msgid "Haven't found \"%s\" in password cache!" -+msgstr "Não foi encontrado “%s” no cache de senhas!" -+ -+#: nscd/pwdcache.c:441 -+#, c-format -+msgid "Reloading \"%s\" in password cache!" -+msgstr "Recarregando “%s” no cache de senhas!" -+ -+#: nscd/pwdcache.c:522 -+#, c-format -+msgid "Invalid numeric uid \"%s\"!" -+msgstr "UID numérico inválido “%s”!" -+ -+#: nscd/selinux.c:154 -+#, c-format -+msgid "Failed opening connection to the audit subsystem: %m" -+msgstr "Falha ao abrir conexão com o subsistema de auditoria: %m" -+ -+#: nscd/selinux.c:175 -+msgid "Failed to set keep-capabilities" -+msgstr "Falha ao definir capacidades a serem mantidas" -+ -+#: nscd/selinux.c:176 nscd/selinux.c:239 -+msgid "prctl(KEEPCAPS) failed" -+msgstr "prctl(KEEPCAPS) falhou" -+ -+#: nscd/selinux.c:190 -+msgid "Failed to initialize drop of capabilities" -+msgstr "Falha ao inicializar descarte de capacidades" -+ -+#: nscd/selinux.c:191 -+msgid "cap_init failed" -+msgstr "cap_init falhou" -+ -+#: nscd/selinux.c:212 nscd/selinux.c:229 -+msgid "Failed to drop capabilities" -+msgstr "Falha ao descartar capacidades" -+ -+#: nscd/selinux.c:213 nscd/selinux.c:230 -+msgid "cap_set_proc failed" -+msgstr "cap_set_proc falhou" -+ -+#: nscd/selinux.c:238 -+msgid "Failed to unset keep-capabilities" -+msgstr "Falha ao remover definição de capacidades a serem mantidas" -+ -+#: nscd/selinux.c:254 -+msgid "Failed to determine if kernel supports SELinux" -+msgstr "Falha ao determinar se o kernel oferece suporte a SELinux" -+ -+#: nscd/selinux.c:269 -+msgid "Failed to start AVC thread" -+msgstr "Falha ao iniciar fluxo de AVC" -+ -+#: nscd/selinux.c:291 -+msgid "Failed to create AVC lock" -+msgstr "Falha ao criar trava de AVC" -+ -+#: nscd/selinux.c:331 -+msgid "Failed to start AVC" -+msgstr "Falha ao iniciar AVC" -+ -+#: nscd/selinux.c:333 -+msgid "Access Vector Cache (AVC) started" -+msgstr "Cache do Vetor de Acesso (AVC) iniciado" -+ -+#: nscd/selinux.c:368 -+msgid "Error querying policy for undefined object classes or permissions." -+msgstr "Erro ao consultar política por classes de objetos indefinidos ou permissões." -+ -+#: nscd/selinux.c:375 -+msgid "Error getting security class for nscd." -+msgstr "Erro ao obter classe de segurança para nscd." -+ -+#: nscd/selinux.c:380 -+#, c-format -+msgid "Error translating permission name \"%s\" to access vector bit." -+msgstr "Erro ao traduzir nome de permissão “%s” para bit do vetor de acesso." -+ -+#: nscd/selinux.c:390 -+msgid "Error getting context of socket peer" -+msgstr "Erro ao obter contexto do soquete da outra ponta" -+ -+#: nscd/selinux.c:395 -+msgid "Error getting context of nscd" -+msgstr "Erro ao obter um contexto do nscd" -+ -+#: nscd/selinux.c:401 -+msgid "Error getting sid from context" -+msgstr "Erro ao obter sid do contexto" -+ -+#: nscd/selinux.c:439 -+#, c-format -+msgid "" -+"\n" -+"SELinux AVC Statistics:\n" -+"\n" -+"%15u entry lookups\n" -+"%15u entry hits\n" -+"%15u entry misses\n" -+"%15u entry discards\n" -+"%15u CAV lookups\n" -+"%15u CAV hits\n" -+"%15u CAV probes\n" -+"%15u CAV misses\n" -+msgstr "" -+"\n" -+"Estatísticas do AVC do SELinux:\n" -+"\n" -+"%15u consultas a registros\n" -+"%15u acerto a registros\n" -+"%15u erros a registros\n" -+"%15u descarte de registros\n" -+"%15u consultas a CAV\n" -+"%15u acertos a CAV\n" -+"%15u investigações de CAV\n" -+"%15u erros de CAV\n" -+ -+#: nscd/servicescache.c:387 -+#, c-format -+msgid "Haven't found \"%s\" in services cache!" -+msgstr "Não foi encontrado “%s” no cache de serviços!" -+ -+#: nscd/servicescache.c:389 -+#, c-format -+msgid "Reloading \"%s\" in services cache!" -+msgstr "Recarregando “%s” no cache de serviços!" -+ -+#: nss/getent.c:53 -+msgid "database [key ...]" -+msgstr "base_de_dados [chave ...]" -+ -+#: nss/getent.c:58 -+msgid "CONFIG" -+msgstr "CONFIG" -+ -+#: nss/getent.c:58 -+msgid "Service configuration to be used" -+msgstr "Serviço de configuração a ser usado" -+ -+#: nss/getent.c:59 -+msgid "disable IDN encoding" -+msgstr "desabilita codificação de IDN" -+ -+#: nss/getent.c:64 -+msgid "Get entries from administrative database." -+msgstr "Obtém registros de banco de dados administrativo." -+ -+#: nss/getent.c:148 nss/getent.c:441 nss/getent.c:486 -+#, c-format -+msgid "Enumeration not supported on %s\n" -+msgstr "Sem suporte a enumeração no %s\n" -+ -+#: nss/getent.c:861 -+#, c-format -+msgid "Unknown database name" -+msgstr "Nome de banco de dados desconhecido" -+ -+#: nss/getent.c:891 -+msgid "Supported databases:\n" -+msgstr "Há suporte aos seguintes bancos de dados:\n" -+ -+#: nss/getent.c:957 -+#, c-format -+msgid "Unknown database: %s\n" -+msgstr "Base de dados desconhecida: %s\n" -+ -+#: nss/makedb.c:119 -+msgid "Convert key to lower case" -+msgstr "Converte chave para letras minúsculas" -+ -+#: nss/makedb.c:122 -+msgid "Do not print messages while building database" -+msgstr "Não mostra mensagens enquanto constrói base de dados" -+ -+#: nss/makedb.c:124 -+msgid "Print content of database file, one entry a line" -+msgstr "Mostra o conteúdo da base de dados do arquivo, um entrada por linha" -+ -+#: nss/makedb.c:125 -+msgid "CHAR" -+msgstr "CARACT" -+ -+#: nss/makedb.c:126 -+msgid "Generated line not part of iteration" -+msgstr "Linha gerada não é parte da iteração" -+ -+#: nss/makedb.c:131 -+msgid "Create simple database from textual input." -+msgstr "Cria um banco de dados simples de uma entrada textual." -+ -+#: nss/makedb.c:134 -+msgid "" -+"INPUT-FILE OUTPUT-FILE\n" -+"-o OUTPUT-FILE INPUT-FILE\n" -+"-u INPUT-FILE" -+msgstr "" -+"ARQUIVO-ENTRADA ARQUIVO-SAÍDA\n" -+"-o ARQUIVO-SAÍDA ARQUIVO-ENTRADA\n" -+"-u ARQUIVO-ENTRADA" -+ -+#: nss/makedb.c:227 -+#, c-format -+msgid "cannot open database file `%s'" -+msgstr "não foi possível abrir o arquivo de banco de dados “%s”" -+ -+#: nss/makedb.c:272 -+#, c-format -+msgid "no entries to be processed" -+msgstr "nenhum registro a ser processado" -+ -+#: nss/makedb.c:282 -+#, c-format -+msgid "cannot create temporary file name" -+msgstr "não foi possível criar um nome de arquivo temporário" -+ -+#: nss/makedb.c:288 -+#, c-format -+msgid "cannot create temporary file" -+msgstr "não foi possível criar um arquivo temporário" -+ -+#: nss/makedb.c:304 -+#, c-format -+msgid "cannot stat newly created file" -+msgstr "não foi possível obter estado do arquivo recém-criado" -+ -+#: nss/makedb.c:315 -+#, c-format -+msgid "cannot rename temporary file" -+msgstr "não foi possível renomear o arquivo temporário" -+ -+#: nss/makedb.c:527 nss/makedb.c:550 -+#, c-format -+msgid "cannot create search tree" -+msgstr "não foi possível criar árvore de pesquisa" -+ -+#: nss/makedb.c:556 -+msgid "duplicate key" -+msgstr "chave duplicada" -+ -+#: nss/makedb.c:568 -+#, c-format -+msgid "problems while reading `%s'" -+msgstr "problemas durante a leitura de “%s”" -+ -+#: nss/makedb.c:795 -+#, c-format -+msgid "failed to write new database file" -+msgstr "falha ao escrever novo arquivo de banco de dados" -+ -+#: nss/makedb.c:808 -+#, c-format -+msgid "cannot stat database file" -+msgstr "não foi possível obter estado do arquivo de banco de dados" -+ -+#: nss/makedb.c:813 -+#, c-format -+msgid "cannot map database file" -+msgstr "não foi possível mapear o arquivo de banco de dados" -+ -+#: nss/makedb.c:816 -+#, c-format -+msgid "file not a database file" -+msgstr "o arquivo não é um arquivo de banco de dados" -+ -+#: nss/makedb.c:867 -+#, c-format -+msgid "cannot set file creation context for `%s'" -+msgstr "não foi possível definir contexto de criação de arquivo para “%s”" -+ -+#: posix/getconf.c:417 -+#, c-format -+msgid "Usage: %s [-v specification] variable_name [pathname]\n" -+msgstr "Uso: %s [-v especificação] nome_da_variável [caminho]\n" -+ -+#: posix/getconf.c:420 -+#, c-format -+msgid " %s -a [pathname]\n" -+msgstr " %s -a [caminho]\n" -+ -+#: posix/getconf.c:496 -+#, c-format -+msgid "" -+"Usage: getconf [-v SPEC] VAR\n" -+" or: getconf [-v SPEC] PATH_VAR PATH\n" -+"\n" -+"Get the configuration value for variable VAR, or for variable PATH_VAR\n" -+"for path PATH. If SPEC is given, give values for compilation\n" -+"environment SPEC.\n" -+"\n" -+msgstr "" -+"Uso: getconf [-v ESPEC] VAR\n" -+" ou: getconf [-v ESPEC] VAR_CAMINHO CAMINHO\n" -+"\n" -+"Obtém o valor de configuração da variável VAR ou para variável VAR_CAMINHO\n" -+"para caminho CAMINHO. Se ESPEC for dado, atribuir valores para ambiente de\n" -+"compilação ESPEC.\n" -+"\n" -+ -+#: posix/getconf.c:572 -+#, c-format -+msgid "unknown specification \"%s\"" -+msgstr "especificação desconhecida “%s”" -+ -+#: posix/getconf.c:624 -+#, c-format -+msgid "Couldn't execute %s" -+msgstr "Não foi possível executar %s" -+ -+#: posix/getconf.c:669 posix/getconf.c:685 -+msgid "undefined" -+msgstr "indefinido" -+ -+#: posix/getconf.c:707 -+#, c-format -+msgid "Unrecognized variable `%s'" -+msgstr "Variável não reconhecida “%s”" -+ -+#: posix/getopt.c:277 -+#, c-format -+msgid "%s: option '%s%s' is ambiguous\n" -+msgstr "%s: a opção “%s%s” é ambígua\n" -+ -+#: posix/getopt.c:283 -+#, c-format -+msgid "%s: option '%s%s' is ambiguous; possibilities:" -+msgstr "%s: a opção “%s%s” é ambígua; possibilidades:" -+ -+#: posix/getopt.c:318 -+#, c-format -+msgid "%s: unrecognized option '%s%s'\n" -+msgstr "%s: opção não reconhecida “%s%s”\n" -+ -+#: posix/getopt.c:344 -+#, c-format -+msgid "%s: option '%s%s' doesn't allow an argument\n" -+msgstr "%s: a opção “%s%s” não permite um argumento\n" -+ -+#: posix/getopt.c:359 -+#, c-format -+msgid "%s: option '%s%s' requires an argument\n" -+msgstr "%s: a opção “%s%s” requer um argumento\n" -+ -+#: posix/getopt.c:620 -+#, c-format -+msgid "%s: invalid option -- '%c'\n" -+msgstr "%s: opção inválida -- “%c”\n" -+ -+#: posix/getopt.c:635 posix/getopt.c:681 -+#, c-format -+msgid "%s: option requires an argument -- '%c'\n" -+msgstr "%s: a opção requer um argumento -- “%c”\n" -+ -+#: posix/regcomp.c:140 -+msgid "No match" -+msgstr "Não confere" -+ -+#: posix/regcomp.c:143 -+msgid "Invalid regular expression" -+msgstr "Expressão regular inválida" -+ -+#: posix/regcomp.c:146 -+msgid "Invalid collation character" -+msgstr "Caractere de comparação inválido" -+ -+#: posix/regcomp.c:149 -+msgid "Invalid character class name" -+msgstr "Nome de classe de caractere inválido" -+ -+#: posix/regcomp.c:152 -+msgid "Trailing backslash" -+msgstr "Barra invertida final" -+ -+#: posix/regcomp.c:155 -+msgid "Invalid back reference" -+msgstr "Referência anterior inválida" -+ -+#: posix/regcomp.c:158 -+msgid "Unmatched [ or [^" -+msgstr "[ ou [^ descasados" -+ -+#: posix/regcomp.c:161 -+msgid "Unmatched ( or \\(" -+msgstr "( ou \\( descasados" -+ -+#: posix/regcomp.c:164 -+msgid "Unmatched \\{" -+msgstr "\\{ descasado" -+ -+#: posix/regcomp.c:167 -+msgid "Invalid content of \\{\\}" -+msgstr "Conteúdo inválido de \\{\\}" -+ -+#: posix/regcomp.c:170 -+msgid "Invalid range end" -+msgstr "Intervalo final inválida" -+ -+#: posix/regcomp.c:173 -+msgid "Memory exhausted" -+msgstr "Memória esgotada" -+ -+#: posix/regcomp.c:176 -+msgid "Invalid preceding regular expression" -+msgstr "Expressão regular precedente inválida" -+ -+#: posix/regcomp.c:179 -+msgid "Premature end of regular expression" -+msgstr "Fim prematuro da expressão regular" -+ -+#: posix/regcomp.c:182 -+msgid "Regular expression too big" -+msgstr "Expressão regular muito longa" -+ -+#: posix/regcomp.c:185 -+msgid "Unmatched ) or \\)" -+msgstr ") ou \\) descasados" -+ -+#: posix/regcomp.c:675 -+msgid "No previous regular expression" -+msgstr "Não há expressão regular anterior" -+ -+#: posix/wordexp.c:1803 -+msgid "parameter null or not set" -+msgstr "parâmetro nulo ou não definido" -+ -+#: resolv/herror.c:63 -+msgid "Resolver Error 0 (no error)" -+msgstr "Erro de resolvedor 0 (não há erro)" -+ -+#: resolv/herror.c:64 -+msgid "Unknown host" -+msgstr "Host desconhecido" -+ -+#: resolv/herror.c:65 -+msgid "Host name lookup failure" -+msgstr "Falha na procura do nome de host" -+ -+#: resolv/herror.c:66 -+msgid "Unknown server error" -+msgstr "Erro desconhecido de servidor" -+ -+#: resolv/herror.c:67 -+msgid "No address associated with name" -+msgstr "Não há endereço associado com o nome" -+ -+#: resolv/herror.c:102 -+msgid "Resolver internal error" -+msgstr "Erro interno do resolvedor" -+ -+#: resolv/herror.c:105 -+msgid "Unknown resolver error" -+msgstr "Erro desconhecido do resolvedor" -+ -+#: resolv/res_hconf.c:118 -+#, c-format -+msgid "%s: line %d: cannot specify more than %d trim domains" -+msgstr "%s: linha %d: não é possível especificar mais de %d domínios" -+ -+#: resolv/res_hconf.c:139 -+#, c-format -+msgid "%s: line %d: list delimiter not followed by domain" -+msgstr "%s: linha %d: delimitador de lista não seguido pelo domínio" -+ -+#: resolv/res_hconf.c:176 -+#, c-format -+msgid "%s: line %d: expected `on' or `off', found `%s'\n" -+msgstr "%s: linha %d: esperava “on” ou “off”, encontrou “%s”\n" -+ -+#: resolv/res_hconf.c:219 -+#, c-format -+msgid "%s: line %d: bad command `%s'\n" -+msgstr "%s: linha %d: comando inválido “%s”\n" -+ -+#: resolv/res_hconf.c:252 -+#, c-format -+msgid "%s: line %d: ignoring trailing garbage `%s'\n" -+msgstr "%s: linha %d: ignorando lixo ao final “%s”\n" -+ -+#: stdio-common/psiginfo-data.h:2 -+msgid "Illegal opcode" -+msgstr "Código de operação ilegal" -+ -+#: stdio-common/psiginfo-data.h:3 -+msgid "Illegal operand" -+msgstr "Operando ilegal" -+ -+#: stdio-common/psiginfo-data.h:4 -+msgid "Illegal addressing mode" -+msgstr "Modo de endereçamento ilegal" -+ -+#: stdio-common/psiginfo-data.h:5 -+msgid "Illegal trap" -+msgstr "Armadilha ilegal" -+ -+#: stdio-common/psiginfo-data.h:6 -+msgid "Privileged opcode" -+msgstr "Código de operação privilegiado" -+ -+#: stdio-common/psiginfo-data.h:7 -+msgid "Privileged register" -+msgstr "Registrador privilegiado" -+ -+#: stdio-common/psiginfo-data.h:8 -+msgid "Coprocessor error" -+msgstr "Erro do coprocessador" -+ -+#: stdio-common/psiginfo-data.h:9 -+msgid "Internal stack error" -+msgstr "Erro interno da pilha" -+ -+#: stdio-common/psiginfo-data.h:12 -+msgid "Integer divide by zero" -+msgstr "Divisão de inteiro por zero" -+ -+#: stdio-common/psiginfo-data.h:13 -+msgid "Integer overflow" -+msgstr "Estouro de valor inteiro" -+ -+#: stdio-common/psiginfo-data.h:14 -+msgid "Floating-point divide by zero" -+msgstr "Divisão de ponto flutuante por zero" -+ -+#: stdio-common/psiginfo-data.h:15 -+msgid "Floating-point overflow" -+msgstr "Estouro de ponto flutuante" -+ -+#: stdio-common/psiginfo-data.h:16 -+msgid "Floating-point underflow" -+msgstr "Estouro negativo de ponto flutuante" -+ -+#: stdio-common/psiginfo-data.h:17 -+msgid "Floating-poing inexact result" -+msgstr "Resultado inexato de ponto flutuante" -+ -+#: stdio-common/psiginfo-data.h:18 -+msgid "Invalid floating-point operation" -+msgstr "Operação inválida de ponto flutuante" -+ -+#: stdio-common/psiginfo-data.h:19 -+msgid "Subscript out of range" -+msgstr "Subscrito fora da faixa" -+ -+#: stdio-common/psiginfo-data.h:22 -+msgid "Address not mapped to object" -+msgstr "Endereço não mapeado ao objeto" -+ -+#: stdio-common/psiginfo-data.h:23 -+msgid "Invalid permissions for mapped object" -+msgstr "Permissões inválidas para objeto mapeado" -+ -+#: stdio-common/psiginfo-data.h:26 -+msgid "Invalid address alignment" -+msgstr "Alinhamento inválido de endereço" -+ -+#: stdio-common/psiginfo-data.h:27 -+msgid "Nonexisting physical address" -+msgstr "Endereço físico inexistente" -+ -+#: stdio-common/psiginfo-data.h:28 -+msgid "Object-specific hardware error" -+msgstr "Erro de hardware específico do objeto" -+ -+#: stdio-common/psiginfo-data.h:31 -+msgid "Process breakpoint" -+msgstr "Ponto de interrupção de processo" -+ -+#: stdio-common/psiginfo-data.h:32 -+msgid "Process trace trap" -+msgstr "Interrupção de rastreamento de processo" -+ -+#: stdio-common/psiginfo-data.h:35 -+msgid "Child has exited" -+msgstr "Processo filho saiu" -+ -+#: stdio-common/psiginfo-data.h:36 -+msgid "Child has terminated abnormally and did not create a core file" -+msgstr "Processo filho foi terminado anormalmente e não criou um arquivo de núcleo" -+ -+#: stdio-common/psiginfo-data.h:37 -+msgid "Child has terminated abnormally and created a core file" -+msgstr "Processo filho foi terminado anormalmente e criou um arquivo de núcleo" -+ -+#: stdio-common/psiginfo-data.h:38 -+msgid "Traced child has trapped" -+msgstr "Processo filho rastreado atingiu uma armadilha" -+ -+#: stdio-common/psiginfo-data.h:39 -+msgid "Child has stopped" -+msgstr "Processo filho parou" -+ -+#: stdio-common/psiginfo-data.h:40 -+msgid "Stopped child has continued" -+msgstr "Processo filho parado continuou" -+ -+#: stdio-common/psiginfo-data.h:43 -+msgid "Data input available" -+msgstr "Entrada de dados disponível" -+ -+#: stdio-common/psiginfo-data.h:44 -+msgid "Output buffers available" -+msgstr "Buffers de saída disponíveis" -+ -+#: stdio-common/psiginfo-data.h:45 -+msgid "Input message available" -+msgstr "Mensagem de entrada disponível" -+ -+#: stdio-common/psiginfo-data.h:46 timezone/zdump.c:381 timezone/zic.c:520 -+msgid "I/O error" -+msgstr "Erro de E/S" -+ -+#: stdio-common/psiginfo-data.h:47 -+msgid "High priority input available" -+msgstr "Entrada de prioridade muito alta disponível" -+ -+#: stdio-common/psiginfo-data.h:48 -+msgid "Device disconnected" -+msgstr "Dispositivo desconectado" -+ -+#: stdio-common/psiginfo.c:140 -+msgid "Signal sent by kill()" -+msgstr "Sinal enviado por kill()" -+ -+#: stdio-common/psiginfo.c:143 -+msgid "Signal sent by sigqueue()" -+msgstr "Sinal enviado por sigqueue()" -+ -+#: stdio-common/psiginfo.c:146 -+msgid "Signal generated by the expiration of a timer" -+msgstr "Sinal gerado pela expiração de um temporizador" -+ -+#: stdio-common/psiginfo.c:149 -+msgid "Signal generated by the completion of an asynchronous I/O request" -+msgstr "Sinal gerado pelo completamento de uma requisição assíncrona de E/S" -+ -+#: stdio-common/psiginfo.c:153 -+msgid "Signal generated by the arrival of a message on an empty message queue" -+msgstr "Sinal gerado pela chegada de uma mensagem em uma pilhe de mensagens vazia" -+ -+#: stdio-common/psiginfo.c:158 -+msgid "Signal sent by tkill()" -+msgstr "Sinal enviado por tkill()" -+ -+#: stdio-common/psiginfo.c:163 -+msgid "Signal generated by the completion of an asynchronous name lookup request" -+msgstr "Sinal gerada pelo completamento de uma requisição assíncrona de procura de nome" -+ -+#: stdio-common/psiginfo.c:169 -+msgid "Signal generated by the completion of an I/O request" -+msgstr "Sinal gerado pelo completamento de uma requisição de E/S" -+ -+#: stdio-common/psiginfo.c:175 -+msgid "Signal sent by the kernel" -+msgstr "Sinal enviado pelo kernel" -+ -+#: stdio-common/psiginfo.c:199 -+#, c-format -+msgid "Unknown signal %d\n" -+msgstr "Sinal desconhecido %d\n" -+ -+#: stdio-common/psignal.c:43 -+#, c-format -+msgid "%s%sUnknown signal %d\n" -+msgstr "%s%sSinal desconhecido %d\n" -+ -+#: stdio-common/psignal.c:44 -+msgid "Unknown signal" -+msgstr "Sinal desconhecido" -+ -+#: string/_strerror.c:45 sysdeps/mach/_strerror.c:86 -+msgid "Unknown error " -+msgstr "Erro desconhecido " -+ -+#: string/strerror.c:41 -+msgid "Unknown error" -+msgstr "Erro desconhecido" -+ -+#: string/strsignal.c:60 -+#, c-format -+msgid "Real-time signal %d" -+msgstr "Sinal de tempo-real %d" -+ -+#: string/strsignal.c:64 -+#, c-format -+msgid "Unknown signal %d" -+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_rec.c:153 sunrpc/xdr_ref.c:79 -+msgid "out of memory\n" -+msgstr "memória insuficiente\n" -+ -+#: sunrpc/auth_unix.c:349 -+msgid "auth_unix.c: Fatal marshalling problem" -+msgstr "auth_unix.c: Problema fatal de marshalling" -+ -+#: sunrpc/clnt_perr.c:96 sunrpc/clnt_perr.c:112 -+#, c-format -+msgid "%s: %s; low version = %lu, high version = %lu" -+msgstr "%s: %s; versão baixa = %lu, versão alta = %lu" -+ -+#: sunrpc/clnt_perr.c:103 -+#, c-format -+msgid "%s: %s; why = %s\n" -+msgstr "%s: %s; por que = %s\n" -+ -+#: sunrpc/clnt_perr.c:105 -+#, c-format -+msgid "%s: %s; why = (unknown authentication error - %d)\n" -+msgstr "%s: %s; por que = (erro desconhecido de autenticação – %d)\n" -+ -+#: sunrpc/clnt_perr.c:154 -+msgid "RPC: Success" -+msgstr "RPC: Sucesso" -+ -+#: sunrpc/clnt_perr.c:157 -+msgid "RPC: Can't encode arguments" -+msgstr "RPC: não foi possível codificar argumentos" -+ -+#: sunrpc/clnt_perr.c:161 -+msgid "RPC: Can't decode result" -+msgstr "RPC: não foi possível decodificar resultado" -+ -+#: sunrpc/clnt_perr.c:165 -+msgid "RPC: Unable to send" -+msgstr "RPC: não foi possível enviar" -+ -+#: sunrpc/clnt_perr.c:169 -+msgid "RPC: Unable to receive" -+msgstr "RPC: não foi possível receber" -+ -+#: sunrpc/clnt_perr.c:173 -+msgid "RPC: Timed out" -+msgstr "RPC: Tempo esgotado" -+ -+#: sunrpc/clnt_perr.c:177 -+msgid "RPC: Incompatible versions of RPC" -+msgstr "RPC: Versões incompatíveis de RPC" -+ -+#: sunrpc/clnt_perr.c:181 -+msgid "RPC: Authentication error" -+msgstr "RPC: Erro de autenticação" -+ -+#: sunrpc/clnt_perr.c:185 -+msgid "RPC: Program unavailable" -+msgstr "RPC: Programa indisponível" -+ -+#: sunrpc/clnt_perr.c:189 -+msgid "RPC: Program/version mismatch" -+msgstr "RPC: Programa/versão incompatíveis" -+ -+#: sunrpc/clnt_perr.c:193 -+msgid "RPC: Procedure unavailable" -+msgstr "RPC: Procedimento indisponível" -+ -+#: sunrpc/clnt_perr.c:197 -+msgid "RPC: Server can't decode arguments" -+msgstr "RPC: O servidor não pode decodificar os argumentos" -+ -+#: sunrpc/clnt_perr.c:201 -+msgid "RPC: Remote system error" -+msgstr "RPC: Erro remoto de sistema" -+ -+#: sunrpc/clnt_perr.c:205 -+msgid "RPC: Unknown host" -+msgstr "RPC: Host desconhecido" -+ -+#: sunrpc/clnt_perr.c:209 -+msgid "RPC: Unknown protocol" -+msgstr "RPC: Protocolo desconhecido" -+ -+#: sunrpc/clnt_perr.c:213 -+msgid "RPC: Port mapper failure" -+msgstr "RPC: Falha no Port mapper" -+ -+#: sunrpc/clnt_perr.c:217 -+msgid "RPC: Program not registered" -+msgstr "RPC: Programa não registrado" -+ -+#: sunrpc/clnt_perr.c:221 -+msgid "RPC: Failed (unspecified error)" -+msgstr "RPC: Falhou (erro não especificado)" -+ -+#: sunrpc/clnt_perr.c:262 -+msgid "RPC: (unknown error code)" -+msgstr "RPC: (código de erro desconhecido)" -+ -+#: sunrpc/clnt_perr.c:334 -+msgid "Authentication OK" -+msgstr "Autenticação OK" -+ -+#: sunrpc/clnt_perr.c:337 -+msgid "Invalid client credential" -+msgstr "Credencial de cliente inválido" -+ -+#: sunrpc/clnt_perr.c:341 -+msgid "Server rejected credential" -+msgstr "Servidor rejeitou credencial" -+ -+#: sunrpc/clnt_perr.c:345 -+msgid "Invalid client verifier" -+msgstr "Verificador de cliente inválido" -+ -+#: sunrpc/clnt_perr.c:349 -+msgid "Server rejected verifier" -+msgstr "Servidor rejeitou verificador" -+ -+#: sunrpc/clnt_perr.c:353 -+msgid "Client credential too weak" -+msgstr "Credencial do cliente muito fraca" -+ -+#: sunrpc/clnt_perr.c:357 -+msgid "Invalid server verifier" -+msgstr "Verificador de servidor inválido" -+ -+#: sunrpc/clnt_perr.c:361 -+msgid "Failed (unspecified error)" -+msgstr "Falha (erro não especificado)" -+ -+#: sunrpc/clnt_raw.c:116 -+msgid "clnt_raw.c: fatal header serialization error" -+msgstr "clnt_raw.c: erro fatal no cabeçalho de serialização" -+ -+#: sunrpc/pm_getmaps.c:78 -+msgid "pmap_getmaps.c: rpc problem" -+msgstr "pmap_getmaps.c: problema de rpc" -+ -+#: sunrpc/pmap_clnt.c:128 -+msgid "Cannot register service" -+msgstr "Não foi possível registrar serviço" -+ -+#: sunrpc/pmap_rmt.c:244 -+msgid "Cannot create socket for broadcast rpc" -+msgstr "Não foi possível criar socket para rpc de broadcast" -+ -+#: sunrpc/pmap_rmt.c:251 -+msgid "Cannot set socket option SO_BROADCAST" -+msgstr "Não foi possível usar opção do socket SO_BROADCAST" -+ -+#: sunrpc/pmap_rmt.c:303 -+msgid "Cannot send broadcast packet" -+msgstr "Não foi possível enviar pacote de broadcast" -+ -+#: sunrpc/pmap_rmt.c:328 -+msgid "Broadcast poll problem" -+msgstr "Problema na pesquisa de broadcast" -+ -+#: sunrpc/pmap_rmt.c:341 -+msgid "Cannot receive reply to broadcast" -+msgstr "Não foi possível receber resposta para broadcast" -+ -+#: sunrpc/rpc_main.c:281 -+#, c-format -+msgid "%s: output would overwrite %s\n" -+msgstr "%s: saída poderá sobrescrever %s\n" -+ -+#: sunrpc/rpc_main.c:288 -+#, c-format -+msgid "%s: unable to open %s: %m\n" -+msgstr "%s: não foi possível abrir %s: %m\n" -+ -+#: sunrpc/rpc_main.c:300 -+#, c-format -+msgid "%s: while writing output %s: %m" -+msgstr "%s: ao escrever saída %s: %m" -+ -+#: sunrpc/rpc_main.c:336 sunrpc/rpc_main.c:375 -+#, c-format -+msgid "cannot find C preprocessor: %s\n" -+msgstr "não foi possível localizar pré-processador C: %s\n" -+ -+#: sunrpc/rpc_main.c:411 -+#, c-format -+msgid "%s: C preprocessor failed with signal %d\n" -+msgstr "%s: pré-processador C falhou com sinal %d\n" -+ -+#: sunrpc/rpc_main.c:414 -+#, c-format -+msgid "%s: C preprocessor failed with exit code %d\n" -+msgstr "%s: pré-processador C falhou com código de saída %d\n" -+ -+#: sunrpc/rpc_main.c:454 -+#, c-format -+msgid "illegal nettype: `%s'\n" -+msgstr "nettype ilegal: “%s”\n" -+ -+#: sunrpc/rpc_main.c:1089 -+#, c-format -+msgid "rpcgen: too many defines\n" -+msgstr "rpcgen: número excessivo de definições\n" -+ -+#: sunrpc/rpc_main.c:1101 -+#, c-format -+msgid "rpcgen: arglist coding error\n" -+msgstr "rpcgen: erro na codificação de parâmetros\n" -+ -+#. TRANS: the file will not be removed; this is an -+#. TRANS: informative message. -+#: sunrpc/rpc_main.c:1134 -+#, c-format -+msgid "file `%s' already exists and may be overwritten\n" -+msgstr "o arquivo “%s” já existe e pode ser sobrescrito\n" -+ -+#: sunrpc/rpc_main.c:1179 -+#, c-format -+msgid "Cannot specify more than one input file!\n" -+msgstr "Não é possível especificar mais de um arquivo de entrada!\n" -+ -+#: sunrpc/rpc_main.c:1349 -+#, c-format -+msgid "This implementation doesn't support newstyle or MT-safe code!\n" -+msgstr "Essa implementação não oferece suporte a código newstyle ou MT-safe!\n" -+ -+#: sunrpc/rpc_main.c:1358 -+#, c-format -+msgid "Cannot use netid flag with inetd flag!\n" -+msgstr "Não é possível usar tabela de indicadores com novo estilo!\n" -+ -+#: sunrpc/rpc_main.c:1367 -+#, c-format -+msgid "Cannot use netid flag without TIRPC!\n" -+msgstr "Não é possível usar indicador netid sem TIRPC!\n" -+ -+#: sunrpc/rpc_main.c:1374 -+#, c-format -+msgid "Cannot use table flags with newstyle!\n" -+msgstr "Não é possível usar indicadores de tabelas com novo estilo!\n" -+ -+#: sunrpc/rpc_main.c:1393 -+#, c-format -+msgid "\"infile\" is required for template generation flags.\n" -+msgstr "“arq-entrada” é necessário para geração de indicadores do modelo.\n" -+ -+#: sunrpc/rpc_main.c:1398 -+#, c-format -+msgid "Cannot have more than one file generation flag!\n" -+msgstr "Não é possível ter mais de um indicador de geração de arquivo!\n" -+ -+#: sunrpc/rpc_main.c:1407 -+#, c-format -+msgid "usage: %s infile\n" -+msgstr "uso: %s arq-entrada\n" -+ -+#: sunrpc/rpc_main.c:1408 -+#, c-format -+msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n" -+msgstr "\t%s [-abkCLNTM][-Dnome[=valor]] [-i tam] [-I [-K segs]] [-Y rota] arq-entrada\n" -+ -+#: sunrpc/rpc_main.c:1410 -+#, c-format -+msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n" -+msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o arq-saída] [arq-entrada]\n" -+ -+#: sunrpc/rpc_main.c:1412 -+#, c-format -+msgid "\t%s [-s nettype]* [-o outfile] [infile]\n" -+msgstr "\t%s [-s tipo-rede]* [-o arq-saída] [arq-entrada]\n" -+ -+#: sunrpc/rpc_main.c:1413 -+#, c-format -+msgid "\t%s [-n netid]* [-o outfile] [infile]\n" -+msgstr "\t%s [-n id-rede]* [-o arq-saída] [arq-entrada]\n" -+ -+#: sunrpc/rpc_main.c:1421 -+#, c-format -+msgid "options:\n" -+msgstr "opções:\n" -+ -+#: sunrpc/rpc_main.c:1422 -+#, c-format -+msgid "-a\t\tgenerate all files, including samples\n" -+msgstr "-a\t\tgera todos arquivos, incluindo amostras\n" -+ -+#: sunrpc/rpc_main.c:1423 -+#, c-format -+msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n" -+msgstr "-b\t\tmodo de compatibilidade reversa (gera código para SunOS 4.1)\n" -+ -+#: sunrpc/rpc_main.c:1424 -+#, c-format -+msgid "-c\t\tgenerate XDR routines\n" -+msgstr "-c\t\tgera rotinas XDR\n" -+ -+#: sunrpc/rpc_main.c:1425 -+#, c-format -+msgid "-C\t\tANSI C mode\n" -+msgstr "-C\t\tmodo ANSI C\n" -+ -+#: sunrpc/rpc_main.c:1426 -+#, c-format -+msgid "-Dname[=value]\tdefine a symbol (same as #define)\n" -+msgstr "-Dnome[=valor]\tdefine um símbolo (mesmos que #define)\n" -+ -+#: sunrpc/rpc_main.c:1427 -+#, c-format -+msgid "-h\t\tgenerate header file\n" -+msgstr "-h\t\tgera arquivo de cabeçalho\n" -+ -+#: sunrpc/rpc_main.c:1428 -+#, c-format -+msgid "-i size\t\tsize at which to start generating inline code\n" -+msgstr "-i tamanho\ttamanho no qual se inicia geração de código em linha\n" -+ -+#: sunrpc/rpc_main.c:1429 -+#, c-format -+msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n" -+msgstr "-I\t\tgera código para suporte inetd em servidor (para SunOS 4.1)\n" -+ -+#: sunrpc/rpc_main.c:1430 -+#, c-format -+msgid "-K seconds\tserver exits after K seconds of inactivity\n" -+msgstr "-K segundos\tservidor sai após K segundos de inatividade\n" -+ -+#: sunrpc/rpc_main.c:1431 -+#, c-format -+msgid "-l\t\tgenerate client side stubs\n" -+msgstr "-l\t\tgera stubs do lado do cliente\n" -+ -+#: sunrpc/rpc_main.c:1432 -+#, c-format -+msgid "-L\t\tserver errors will be printed to syslog\n" -+msgstr "-L\t\terros de servidor serão imprimidos ao syslog\n" -+ -+#: sunrpc/rpc_main.c:1433 -+#, c-format -+msgid "-m\t\tgenerate server side stubs\n" -+msgstr "-l\t\tgera stubs do lado do servidor\n" -+ -+#: sunrpc/rpc_main.c:1434 -+#, c-format -+msgid "-M\t\tgenerate MT-safe code\n" -+msgstr "-M\t\tgera código MT-safe\n" -+ -+#: sunrpc/rpc_main.c:1435 -+#, c-format -+msgid "-n netid\tgenerate server code that supports named netid\n" -+msgstr "-n id-rede\tgera código de servidor que aceita o id-rede nomeado\n" -+ -+#: sunrpc/rpc_main.c:1436 -+#, c-format -+msgid "-N\t\tsupports multiple arguments and call-by-value\n" -+msgstr "-N\t\taceita múltiplos argumentos de chamadas por valor\n" -+ -+#: sunrpc/rpc_main.c:1437 -+#, c-format -+msgid "-o outfile\tname of the output file\n" -+msgstr "-o arq-saída\tnome do arquivo de saída\n" -+ -+#: sunrpc/rpc_main.c:1438 -+#, c-format -+msgid "-s nettype\tgenerate server code that supports named nettype\n" -+msgstr "-s tipo-rede\tgera código de servidor que aceita o tipo-rede nomeado\n" -+ -+#: sunrpc/rpc_main.c:1439 -+#, c-format -+msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n" -+msgstr "-Sc\t\tgera amostra de código cliente que usa procedimentos remotos\n" -+ -+#: sunrpc/rpc_main.c:1440 -+#, c-format -+msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n" -+msgstr "-Ss\t\tgera amostra de código servidor que define procedimentos remotos\n" -+ -+#: sunrpc/rpc_main.c:1441 -+#, c-format -+msgid "-Sm \t\tgenerate makefile template \n" -+msgstr "-Sm \t\tgera modelo de makefile \n" -+ -+#: sunrpc/rpc_main.c:1442 -+#, c-format -+msgid "-t\t\tgenerate RPC dispatch table\n" -+msgstr "-t\t\tgera tabela de expedição RPC\n" -+ -+#: sunrpc/rpc_main.c:1443 -+#, c-format -+msgid "-T\t\tgenerate code to support RPC dispatch tables\n" -+msgstr "-T\t\tgera código para lidar com tabelas de expedição RPC\n" -+ -+#: sunrpc/rpc_main.c:1444 -+#, c-format -+msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n" -+msgstr "-Y rota\t\tnome do diretório para localizar pré-processador C (cpp)\n" -+ -+#: sunrpc/rpc_main.c:1445 -+#, c-format -+msgid "-5\t\tSysVr4 compatibility mode\n" -+msgstr "-5\t\tmodo de compatibilidade com SysVr4\n" -+ -+#: sunrpc/rpc_main.c:1446 -+#, c-format -+msgid "--help\t\tgive this help list\n" -+msgstr "--help\t\tfornece essa lista de ajuda\n" -+ -+#: sunrpc/rpc_main.c:1447 -+#, c-format -+msgid "--version\tprint program version\n" -+msgstr "--version\temite a versão do programa\n" -+ -+#: sunrpc/rpc_main.c:1449 -+#, c-format -+msgid "" -+"\n" -+"For bug reporting instructions, please see:\n" -+"%s.\n" -+msgstr "" -+"\n" -+"Para instruções sobre relatório de erro, veja:\n" -+"%s.\n" -+ -+#: sunrpc/rpc_scan.c:112 -+msgid "constant or identifier expected" -+msgstr "identificador ou constante esperado" -+ -+#: sunrpc/rpc_scan.c:308 -+msgid "illegal character in file: " -+msgstr "caracteres ilegais no arquivo: " -+ -+#: sunrpc/rpc_scan.c:347 sunrpc/rpc_scan.c:373 -+msgid "unterminated string constant" -+msgstr "constante string não terminada" -+ -+#: sunrpc/rpc_scan.c:379 -+msgid "empty char string" -+msgstr "cadeia de caractere vazia" -+ -+#: sunrpc/rpc_scan.c:521 sunrpc/rpc_scan.c:531 -+msgid "preprocessor error" -+msgstr "Erro de pré-processador" -+ -+#: sunrpc/svc_run.c:72 -+msgid "svc_run: - out of memory" -+msgstr "svc_run: – memória insuficiente" -+ -+#: sunrpc/svc_run.c:92 -+msgid "svc_run: - poll failed" -+msgstr "svc_run: – poll falhou" -+ -+#: sunrpc/svc_simple.c:80 -+#, c-format -+msgid "can't reassign procedure number %ld\n" -+msgstr "não é possível reatribuir número de procedimento %ld\n" -+ -+#: sunrpc/svc_simple.c:90 -+msgid "couldn't create an rpc server\n" -+msgstr "não foi possível criar um servidor rpc\n" -+ -+#: sunrpc/svc_simple.c:98 -+#, c-format -+msgid "couldn't register prog %ld vers %ld\n" -+msgstr "não foi possível registrar prog %ld vers %ld\n" -+ -+#: sunrpc/svc_simple.c:106 -+msgid "registerrpc: out of memory\n" -+msgstr "registerrpc: memória insuficiente\n" -+ -+#: sunrpc/svc_simple.c:169 -+#, c-format -+msgid "trouble replying to prog %d\n" -+msgstr "problemas ao responder ao prog %d\n" -+ -+#: sunrpc/svc_simple.c:178 -+#, c-format -+msgid "never registered prog %d\n" -+msgstr "prog %d nunca registrado\n" -+ -+#: sunrpc/svc_tcp.c:165 -+msgid "svc_tcp.c - tcp socket creation problem" -+msgstr "svc_tcp_.c – problema na criação do soquete AF_UNIX" -+ -+#: sunrpc/svc_tcp.c:180 -+msgid "svc_tcp.c - cannot getsockname or listen" -+msgstr "svc_tcp_.c – não foi possível receber getsocknome ou listen" -+ -+#: sunrpc/svc_udp.c:136 -+msgid "svcudp_create: socket creation problem" -+msgstr "svcudp_create: problema na criação socket" -+ -+#: sunrpc/svc_udp.c:150 -+msgid "svcudp_create - cannot getsockname" -+msgstr "svcudp_create – não foi possível getsockname" -+ -+#: sunrpc/svc_udp.c:182 -+msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n" -+msgstr "svcudp_create: xp_pad é pequeno demais para IP_PKTINFO\n" -+ -+#: sunrpc/svc_udp.c:481 -+msgid "enablecache: cache already enabled" -+msgstr "enablecache: cache já ativado" -+ -+#: sunrpc/svc_udp.c:487 -+msgid "enablecache: could not allocate cache" -+msgstr "enablecache: não foi possível alocar cache" -+ -+#: sunrpc/svc_udp.c:496 -+msgid "enablecache: could not allocate cache data" -+msgstr "enablecache: não foi possível alocar dados do cache" -+ -+#: sunrpc/svc_udp.c:504 -+msgid "enablecache: could not allocate cache fifo" -+msgstr "enablecache: não foi possível alocar fifo de cache" -+ -+#: sunrpc/svc_udp.c:540 -+msgid "cache_set: victim not found" -+msgstr "cache_set: vítima não localizada" -+ -+#: sunrpc/svc_udp.c:551 -+msgid "cache_set: victim alloc failed" -+msgstr "cache_set: alocação de vítima falhou" -+ -+#: sunrpc/svc_udp.c:558 -+msgid "cache_set: could not allocate new rpc_buffer" -+msgstr "cache_set: não foi possível alocar novo rpc_buffer" -+ -+#: sunrpc/svc_unix.c:163 -+msgid "svc_unix.c - AF_UNIX socket creation problem" -+msgstr "svc_tcp_.c – problema na criação do soquete AF_UNIX" -+ -+#: sunrpc/svc_unix.c:179 -+msgid "svc_unix.c - cannot getsockname or listen" -+msgstr "svc_tcp_.c – não foi possível receber getsocknome ou listen" -+ -+#: sysdeps/generic/siglist.h:29 -+msgid "Hangup" -+msgstr "Desconexão" -+ -+#: sysdeps/generic/siglist.h:30 -+msgid "Interrupt" -+msgstr "Interrupção" -+ -+#: sysdeps/generic/siglist.h:31 -+msgid "Quit" -+msgstr "Sair" -+ -+#: sysdeps/generic/siglist.h:32 -+msgid "Illegal instruction" -+msgstr "Instrução ilegal" -+ -+#: sysdeps/generic/siglist.h:33 -+msgid "Trace/breakpoint trap" -+msgstr "Trace/breakpoint trap" -+ -+#: sysdeps/generic/siglist.h:34 -+msgid "Aborted" -+msgstr "Abortado" -+ -+#: sysdeps/generic/siglist.h:35 -+msgid "Floating point exception" -+msgstr "Exceção de ponto flutuante" -+ -+#: sysdeps/generic/siglist.h:36 -+msgid "Killed" -+msgstr "Morto" -+ -+#: sysdeps/generic/siglist.h:37 -+msgid "Bus error" -+msgstr "Erro no barramento" -+ -+#: sysdeps/generic/siglist.h:38 -+msgid "Bad system call" -+msgstr "Chamada de sistema inválida" -+ -+#: sysdeps/generic/siglist.h:39 -+msgid "Segmentation fault" -+msgstr "Falha de segmentação" -+ -+#. 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 -+#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled -+#. TRANS or blocked. Thus, your program will never actually see @code{EPIPE} -+#. TRANS unless it has handled or blocked @code{SIGPIPE}. -+#: sysdeps/generic/siglist.h:40 sysdeps/gnu/errlist.c:360 -+msgid "Broken pipe" -+msgstr "Pipe quebrado" -+ -+#: sysdeps/generic/siglist.h:41 -+msgid "Alarm clock" -+msgstr "Alarme de tempo" -+ -+#: sysdeps/generic/siglist.h:42 -+msgid "Terminated" -+msgstr "Terminado" -+ -+#: sysdeps/generic/siglist.h:43 -+msgid "Urgent I/O condition" -+msgstr "Condição urgente de E/S" -+ -+#: sysdeps/generic/siglist.h:44 -+msgid "Stopped (signal)" -+msgstr "Parado (sinal)" -+ -+#: sysdeps/generic/siglist.h:45 -+msgid "Stopped" -+msgstr "Parado" -+ -+#: sysdeps/generic/siglist.h:46 -+msgid "Continued" -+msgstr "Continua" -+ -+#: sysdeps/generic/siglist.h:47 -+msgid "Child exited" -+msgstr "Filho finalizado" -+ -+#: sysdeps/generic/siglist.h:48 -+msgid "Stopped (tty input)" -+msgstr "Parado (entrada tty)" -+ -+#: sysdeps/generic/siglist.h:49 -+msgid "Stopped (tty output)" -+msgstr "Parado (saída tty)" -+ -+#: sysdeps/generic/siglist.h:50 -+msgid "I/O possible" -+msgstr "Possível E/S" -+ -+#: sysdeps/generic/siglist.h:51 -+msgid "CPU time limit exceeded" -+msgstr "Tempo de CPU excedido" -+ -+#: sysdeps/generic/siglist.h:52 -+msgid "File size limit exceeded" -+msgstr "Excedido tamanho limite de arquivo" -+ -+#: sysdeps/generic/siglist.h:53 -+msgid "Virtual timer expired" -+msgstr "Temporizador virtual expirado" -+ -+#: sysdeps/generic/siglist.h:54 -+msgid "Profiling timer expired" -+msgstr "Tempo expirado para perfilamento" -+ -+#: sysdeps/generic/siglist.h:55 -+msgid "User defined signal 1" -+msgstr "Sinal 1 definido pelo usuário" -+ -+#: sysdeps/generic/siglist.h:56 -+msgid "User defined signal 2" -+msgstr "Sinal 2 definido pelo usuário" -+ -+#: sysdeps/generic/siglist.h:57 -+msgid "Window changed" -+msgstr "Janela alterada" -+ -+#: sysdeps/generic/siglist.h:61 -+msgid "EMT trap" -+msgstr "Trap EMT" -+ -+#: sysdeps/generic/siglist.h:64 -+msgid "Stack fault" -+msgstr "Falha de pilha" -+ -+#: sysdeps/generic/siglist.h:67 -+msgid "Power failure" -+msgstr "Falha de energia" -+ -+#: sysdeps/generic/siglist.h:70 -+msgid "Information request" -+msgstr "Requisição de informação" -+ -+#: sysdeps/generic/siglist.h:73 -+msgid "Resource lost" -+msgstr "Recurso perdido" -+ -+#. TRANS Only the owner of the file (or other resource) -+#. TRANS or processes with special privileges can perform the operation. -+#: sysdeps/gnu/errlist.c:26 -+msgid "Operation not permitted" -+msgstr "Operação não permitida" -+ -+#. TRANS No process matches the specified process ID. -+#: sysdeps/gnu/errlist.c:46 -+msgid "No such process" -+msgstr "Processo inexistente" -+ -+#. TRANS An asynchronous signal occurred and prevented -+#. TRANS completion of the call. When this happens, you should try the call -+#. TRANS again. -+#. TRANS -+#. TRANS You can choose to have functions resume after a signal that is handled, -+#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted -+#. TRANS Primitives}. -+#: sysdeps/gnu/errlist.c:61 -+msgid "Interrupted system call" -+msgstr "Chamada de sistema interrompida" -+ -+#. TRANS Usually used for physical read or write errors. -+#: sysdeps/gnu/errlist.c:70 -+msgid "Input/output error" -+msgstr "Erro de entrada/saída" -+ -+#. TRANS The system tried to use the device -+#. TRANS represented by a file you specified, and it couldn't find the device. -+#. TRANS This can mean that the device file was installed incorrectly, or that -+#. TRANS the physical device is missing or not correctly attached to the -+#. TRANS computer. -+#: sysdeps/gnu/errlist.c:83 -+msgid "No such device or address" -+msgstr "Endereço ou dispositivo inexistente" -+ -+#. TRANS Used when the arguments passed to a new program -+#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a -+#. TRANS File}) occupy too much memory space. This condition never arises on -+#. TRANS @gnuhurdsystems{}. -+#: sysdeps/gnu/errlist.c:95 -+msgid "Argument list too long" -+msgstr "Lista de argumentos muito longa" -+ -+#. 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 "Erro no formato exec" -+ -+#. 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 "Descritor de arquivo inválido" -+ -+#. 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 "Não há processos filhos" -+ -+#. TRANS Allocating a system resource would have resulted in a -+#. TRANS deadlock situation. The system does not guarantee that it will notice -+#. TRANS all such situations. This error means you got lucky and the system -+#. TRANS noticed; it might just hang. @xref{File Locks}, for an example. -+#: sysdeps/gnu/errlist.c:139 -+msgid "Resource deadlock avoided" -+msgstr "Evitado deadlock de recurso" -+ -+#. TRANS The system cannot allocate more virtual memory -+#. TRANS because its capacity is full. -+#: sysdeps/gnu/errlist.c:149 -+msgid "Cannot allocate memory" -+msgstr "Não foi possível alocar memória" -+ -+#. TRANS An invalid pointer was detected. -+#. TRANS On @gnuhurdsystems{}, this error never happens; you get a signal instead. -+#: sysdeps/gnu/errlist.c:168 -+msgid "Bad address" -+msgstr "Endereço inválido" -+ -+#. TRANS A file that isn't a block special file was given in a situation that -+#. TRANS requires one. For example, trying to mount an ordinary file as a file -+#. TRANS system in Unix gives this error. -+#: sysdeps/gnu/errlist.c:179 -+msgid "Block device required" -+msgstr "Dispositivo de bloco requerido" -+ -+#. TRANS A system resource that can't be shared is already in use. -+#. TRANS For example, if you try to delete a file that is the root of a currently -+#. TRANS mounted filesystem, you get this error. -+#: sysdeps/gnu/errlist.c:190 -+msgid "Device or resource busy" -+msgstr "Dispositivo ou recurso está ocupado" -+ -+#. TRANS An existing file was specified in a context where it only -+#. TRANS makes sense to specify a new file. -+#: sysdeps/gnu/errlist.c:200 -+msgid "File exists" -+msgstr "Arquivo existe" -+ -+#. TRANS An attempt to make an improper link across file systems was detected. -+#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but -+#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}). -+#: sysdeps/gnu/errlist.c:211 -+msgid "Invalid cross-device link" -+msgstr "Link entre dispositivos inválido" -+ -+#. TRANS The wrong type of device was given to a function that expects a -+#. TRANS particular sort of device. -+#: sysdeps/gnu/errlist.c:221 -+msgid "No such device" -+msgstr "Dispositivo inexistente" -+ -+#. TRANS A file that isn't a directory was specified when a directory is required. -+#: sysdeps/gnu/errlist.c:230 -+msgid "Not a directory" -+msgstr "Não é um diretório" -+ -+#. TRANS You cannot open a directory for writing, -+#. TRANS or create or remove hard links to it. -+#: sysdeps/gnu/errlist.c:240 -+msgid "Is a directory" -+msgstr "É um diretório" -+ -+#. TRANS This is used to indicate various kinds of problems -+#. TRANS with passing the wrong argument to a library function. -+#: sysdeps/gnu/errlist.c:250 -+msgid "Invalid argument" -+msgstr "Argumento inválido" -+ -+#. TRANS The current process has too many files open and can't open any more. -+#. TRANS Duplicate descriptors do count toward this limit. -+#. TRANS -+#. TRANS In BSD and GNU, the number of open files is controlled by a resource -+#. TRANS limit that can usually be increased. If you get this error, you might -+#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited; -+#. TRANS @pxref{Limits on Resources}. -+#: sysdeps/gnu/errlist.c:265 -+msgid "Too many open files" -+msgstr "Muitos arquivos abertos" -+ -+#. TRANS There are too many distinct file openings in the entire system. Note -+#. TRANS that any number of linked channels count as just one file opening; see -+#. TRANS @ref{Linked Channels}. This error never occurs on @gnuhurdsystems{}. -+#: sysdeps/gnu/errlist.c:276 -+msgid "Too many open files in system" -+msgstr "Muitos arquivos abertos no sistema" -+ -+#. TRANS Inappropriate I/O control operation, such as trying to set terminal -+#. TRANS modes on an ordinary file. -+#: sysdeps/gnu/errlist.c:286 -+msgid "Inappropriate ioctl for device" -+msgstr "ioctl inapropriado para dispositivo" -+ -+#. TRANS An attempt to execute a file that is currently open for writing, or -+#. TRANS write to a file that is currently being executed. Often using a -+#. TRANS debugger to run a program is considered having it open for writing and -+#. TRANS will cause this error. (The name stands for ``text file busy''.) This -+#. TRANS is not an error on @gnuhurdsystems{}; the text is copied as necessary. -+#: sysdeps/gnu/errlist.c:299 -+msgid "Text file busy" -+msgstr "Área de texto ocupada" -+ -+#. TRANS The size of a file would be larger than allowed by the system. -+#: sysdeps/gnu/errlist.c:308 -+msgid "File too large" -+msgstr "Arquivo muito grande" -+ -+#. TRANS Write operation on a file failed because the -+#. TRANS disk is full. -+#: sysdeps/gnu/errlist.c:318 -+msgid "No space left on device" -+msgstr "Não há espaço disponível no dispositivo" -+ -+#. TRANS Invalid seek operation (such as on a pipe). -+#: sysdeps/gnu/errlist.c:327 -+msgid "Illegal seek" -+msgstr "Procura ilegal" -+ -+#. TRANS An attempt was made to modify something on a read-only file system. -+#: sysdeps/gnu/errlist.c:336 -+msgid "Read-only file system" -+msgstr "Sistema de arquivos somente para leitura" -+ -+#. TRANS The link count of a single file would become too large. -+#. TRANS @code{rename} can cause this error if the file being renamed already has -+#. TRANS as many links as it can take (@pxref{Renaming Files}). -+#: sysdeps/gnu/errlist.c:347 -+msgid "Too many links" -+msgstr "Muitos links" -+ -+#. TRANS Used by mathematical functions when an argument value does -+#. TRANS not fall into the domain over which the function is defined. -+#: sysdeps/gnu/errlist.c:370 -+msgid "Numerical argument out of domain" -+msgstr "Argumento numérico fora de domínio" -+ -+#. TRANS Used by mathematical functions when the result value is -+#. TRANS not representable because of overflow or underflow. -+#: sysdeps/gnu/errlist.c:380 -+msgid "Numerical result out of range" -+msgstr "Resultado numérico fora de alcance" -+ -+#. TRANS The call might work if you try again -+#. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN}; -+#. TRANS they are always the same in @theglibc{}. -+#. TRANS -+#. TRANS This error can happen in a few different situations: -+#. TRANS -+#. TRANS @itemize @bullet -+#. TRANS @item -+#. TRANS An operation that would block was attempted on an object that has -+#. TRANS non-blocking mode selected. Trying the same operation again will block -+#. TRANS until some external condition makes it possible to read, write, or -+#. TRANS connect (whatever the operation). You can use @code{select} to find out -+#. TRANS when the operation will be possible; @pxref{Waiting for I/O}. -+#. TRANS -+#. TRANS @strong{Portability Note:} In many older Unix systems, this condition -+#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code -+#. TRANS different from @code{EAGAIN}. To make your program portable, you should -+#. TRANS check for both codes and treat them the same. -+#. TRANS -+#. TRANS @item -+#. TRANS A temporary resource shortage made an operation impossible. @code{fork} -+#. TRANS can return this error. It indicates that the shortage is expected to -+#. TRANS pass, so your program can try the call again later and it may succeed. -+#. TRANS It is probably a good idea to delay for a few seconds before trying it -+#. TRANS again, to allow time for other processes to release scarce resources. -+#. TRANS Such shortages are usually fairly serious and affect the whole system, -+#. TRANS so usually an interactive program should report the error to the user -+#. TRANS and return to its command loop. -+#. TRANS @end itemize -+#: sysdeps/gnu/errlist.c:417 -+msgid "Resource temporarily unavailable" -+msgstr "Recurso temporariamente indisponível" -+ -+#. TRANS In @theglibc{}, this is another name for @code{EAGAIN} (above). -+#. TRANS The values are always the same, on every operating system. -+#. TRANS -+#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a -+#. TRANS separate error code. -+#: sysdeps/gnu/errlist.c:430 -+msgid "Operation would block" -+msgstr "Operation causaria bloqueio" -+ -+#. TRANS An operation that cannot complete immediately was initiated on an object -+#. TRANS that has non-blocking mode selected. Some functions that must always -+#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return -+#. TRANS @code{EAGAIN}. Instead, they return @code{EINPROGRESS} to indicate that -+#. TRANS the operation has begun and will take some time. Attempts to manipulate -+#. TRANS the object before the call completes return @code{EALREADY}. You can -+#. TRANS use the @code{select} function to find out when the pending operation -+#. TRANS has completed; @pxref{Waiting for I/O}. -+#: sysdeps/gnu/errlist.c:446 -+msgid "Operation now in progress" -+msgstr "Operação agora em progresso" -+ -+#. TRANS An operation is already in progress on an object that has non-blocking -+#. TRANS mode selected. -+#: sysdeps/gnu/errlist.c:456 -+msgid "Operation already in progress" -+msgstr "Operação já em progresso" -+ -+#. TRANS A file that isn't a socket was specified when a socket is required. -+#: sysdeps/gnu/errlist.c:465 -+msgid "Socket operation on non-socket" -+msgstr "Operação socket em um arquivo não-socket" -+ -+#. TRANS The size of a message sent on a socket was larger than the supported -+#. TRANS maximum size. -+#: sysdeps/gnu/errlist.c:475 -+msgid "Message too long" -+msgstr "Mensagem muito longa" -+ -+#. TRANS The socket type does not support the requested communications protocol. -+#: sysdeps/gnu/errlist.c:484 -+msgid "Protocol wrong type for socket" -+msgstr "Tipo errado de protocolo para socket" -+ -+#. TRANS You specified a socket option that doesn't make sense for the -+#. TRANS particular protocol being used by the socket. @xref{Socket Options}. -+#: sysdeps/gnu/errlist.c:494 -+msgid "Protocol not available" -+msgstr "Protocolo não disponível" -+ -+#. TRANS The socket domain does not support the requested communications protocol -+#. TRANS (perhaps because the requested protocol is completely invalid). -+#. TRANS @xref{Creating a Socket}. -+#: sysdeps/gnu/errlist.c:505 -+msgid "Protocol not supported" -+msgstr "Protocolo sem suporte" -+ -+#. TRANS The socket type is not supported. -+#: sysdeps/gnu/errlist.c:514 -+msgid "Socket type not supported" -+msgstr "Tipo socket sem suporte" -+ -+#. TRANS The operation you requested is not supported. Some socket functions -+#. TRANS don't make sense for all types of sockets, and others may not be -+#. TRANS implemented for all communications protocols. On @gnuhurdsystems{}, this -+#. TRANS error can happen for many calls when the object does not support the -+#. TRANS particular operation; it is a generic indication that the server knows -+#. TRANS nothing to do for that call. -+#: sysdeps/gnu/errlist.c:528 -+msgid "Operation not supported" -+msgstr "Operação sem suporte" -+ -+#. TRANS The socket communications protocol family you requested is not supported. -+#: sysdeps/gnu/errlist.c:537 -+msgid "Protocol family not supported" -+msgstr "Família de protocolo sem suporte" -+ -+#. TRANS The address family specified for a socket is not supported; it is -+#. TRANS inconsistent with the protocol being used on the socket. @xref{Sockets}. -+#: sysdeps/gnu/errlist.c:547 -+msgid "Address family not supported by protocol" -+msgstr "Família de endereços sem suporte pelo protocolo" -+ -+#. TRANS The requested socket address is already in use. @xref{Socket Addresses}. -+#: sysdeps/gnu/errlist.c:556 -+msgid "Address already in use" -+msgstr "Endereço já em uso" -+ -+#. TRANS The requested socket address is not available; for example, you tried -+#. TRANS to give a socket a name that doesn't match the local host name. -+#. TRANS @xref{Socket Addresses}. -+#: sysdeps/gnu/errlist.c:567 -+msgid "Cannot assign requested address" -+msgstr "Não foi possível acessar o endereço requisitado" - --#: iconv/iconv_prog.c:193 --#, c-format --msgid "error while closing input `%s'" --msgstr "erro fechando entrada `%s'" -+#. TRANS A socket operation failed because the network was down. -+#: sysdeps/gnu/errlist.c:576 -+msgid "Network is down" -+msgstr "A rede não responde" - --#: iconv/iconv_prog.c:239 --msgid "error while closing output file" --msgstr "erro fechando arquivo de saída" -+#. TRANS A socket operation failed because the subnet containing the remote host -+#. TRANS was unreachable. -+#: sysdeps/gnu/errlist.c:586 -+msgid "Network is unreachable" -+msgstr "A rede está fora de alcance" - --#: elf/sprof.c:710 --msgid "error while closing the profiling data file" --msgstr "erro fechando arquivo de dados de perfil" -+#. TRANS A network connection was reset because the remote host crashed. -+#: sysdeps/gnu/errlist.c:595 -+msgid "Network dropped connection on reset" -+msgstr "A rede desconectou-se ao reiniciar" - --#: locale/programs/ld-collate.c:1158 --msgid "error while inserting collation element into hash table" --msgstr "erro enquanto inserindo elemento de comparação na tabela hash" -+#. TRANS A network connection was aborted locally. -+#: sysdeps/gnu/errlist.c:604 -+msgid "Software caused connection abort" -+msgstr "Término de conexão causada por software" - --#: locale/programs/ld-collate.c:1170 --msgid "error while inserting to hash table" --msgstr "erro ao inserir na tabela hash" -+#. TRANS A network connection was closed for reasons outside the control of the -+#. TRANS local host, such as by the remote machine rebooting or an unrecoverable -+#. TRANS protocol violation. -+#: sysdeps/gnu/errlist.c:615 -+msgid "Connection reset by peer" -+msgstr "Conexão fechada pela outra ponta" - --#: iconv/iconv_prog.c:389 iconv/iconv_prog.c:420 --msgid "error while reading the input" --msgstr "enquanto lendo entrada" -+#. 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 -+#. TRANS other from network operations. -+#: sysdeps/gnu/errlist.c:626 -+msgid "No buffer space available" -+msgstr "Não há espaço de buffer disponível" - --#: locale/programs/locfile.c:595 --msgid "expect string argument for `copy'" --msgstr "esperado argumento tipo string para `copy'" -+#. TRANS You tried to connect a socket that is already connected. -+#. TRANS @xref{Connecting}. -+#: sysdeps/gnu/errlist.c:636 -+msgid "Transport endpoint is already connected" -+msgstr "Ponto final de transporte já está conectado" - --#: timezone/zic.c:868 --msgid "expected continuation line not found" --msgstr "linha de continuação não foi localizada" -+#. TRANS The socket is not connected to anything. You get this error when you -+#. TRANS try to transmit data over a socket, without first specifying a -+#. TRANS destination for the data. For a connectionless socket (for datagram -+#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead. -+#: sysdeps/gnu/errlist.c:648 -+msgid "Transport endpoint is not connected" -+msgstr "Ponto final de transporte não está conectado" - --#: elf/sprof.c:408 --#, c-format --msgid "failed to load shared object `%s'" --msgstr "falha no carregamento do objeto compartilhado `%s'" -+#. TRANS No default destination address was set for the socket. You get this -+#. TRANS error when you try to transmit data over a connectionless socket, -+#. TRANS without first specifying a destination for the data with @code{connect}. -+#: sysdeps/gnu/errlist.c:659 -+msgid "Destination address required" -+msgstr "Endereço de destino requerido" - --#: elf/sprof.c:604 --msgid "failed to load symbol data" --msgstr "falha para carregar dados de símbolos" -+#. TRANS The socket has already been shut down. -+#: sysdeps/gnu/errlist.c:668 -+msgid "Cannot send after transport endpoint shutdown" -+msgstr "Não é possível enviar após desligamento do ponto final de transporte" - --#: elf/sprof.c:702 --msgid "failed to mmap the profiling data file" --msgstr "falha para mapear (mmap) o arquivo de dados do perfil" -+#: sysdeps/gnu/errlist.c:676 -+msgid "Too many references: cannot splice" -+msgstr "Muitas referências: não é possível unir" - --#: iconv/iconv_prog.c:147 --msgid "failed to start conversion processing" --msgstr "falha para iniciar o processo de conversão" -+#. TRANS A socket operation with a specified timeout received no response during -+#. TRANS the timeout period. -+#: sysdeps/gnu/errlist.c:686 -+msgid "Connection timed out" -+msgstr "Tempo esgotado para conexão" - --#: locale/programs/locfile.c:1154 --#, c-format --msgid "failure while writing data for category `%s'" --msgstr "falha ao escrever dados para categoria `%s'" -+#. TRANS A remote host refused to allow the network connection (typically because -+#. TRANS it is not running the requested service). -+#: sysdeps/gnu/errlist.c:696 -+msgid "Connection refused" -+msgstr "Conexão recusada" - --#: nis/nis_call.c:155 --msgid "fcntl: F_SETFD" --msgstr "fcntl: F_SETFD" -+#. TRANS Too many levels of symbolic links were encountered in looking up a file name. -+#. TRANS This often indicates a cycle of symbolic links. -+#: sysdeps/gnu/errlist.c:706 -+msgid "Too many levels of symbolic links" -+msgstr "Muitos níveis de links simbólicos" - --#: locale/programs/ld-monetary.c:163 locale/programs/ld-numeric.c:98 --#, c-format --msgid "field `%s' in category `%s' not defined" --msgstr "campo `%s' na categoria `%s' não definido" -+#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for -+#. TRANS Files}) or host name too long (in @code{gethostname} or -+#. TRANS @code{sethostname}; @pxref{Host Identification}). -+#: sysdeps/gnu/errlist.c:717 -+msgid "File name too long" -+msgstr "Nome de arquivo muito longo" - --#: locale/programs/ld-messages.c:86 locale/programs/ld-messages.c:110 --#, c-format --msgid "field `%s' in category `%s' undefined" --msgstr "campo `%s' na categoria `%s' não definido" -+#. TRANS The remote host for a requested network connection is down. -+#: sysdeps/gnu/errlist.c:726 -+msgid "Host is down" -+msgstr "Host está desligado" - --#: sunrpc/rpc_main.c:1148 --#, c-format --msgid "file '%s' already exists and may be overwritten\n" --msgstr "arquivo `%s' já existe e pode ser sobrescrito\n" -+#. TRANS The remote host for a requested network connection is not reachable. -+#: sysdeps/gnu/errlist.c:735 -+msgid "No route to host" -+msgstr "Não há rota para o host" - --#: locale/programs/locfile.c:677 --msgid "from-value of `collating-element' must be a string" --msgstr "valor `from' do elemento de comparação deve ser uma string" -+#. TRANS Directory not empty, where an empty directory was expected. Typically, -+#. TRANS this error occurs when you are trying to delete a directory. -+#: sysdeps/gnu/errlist.c:745 -+msgid "Directory not empty" -+msgstr "Diretório não vazio" - --#: inet/rcmd.c:316 --msgid "fstat failed" --msgstr "falha em fstat" -+#. TRANS This means that the per-user limit on new process would be exceeded by -+#. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on -+#. TRANS the @code{RLIMIT_NPROC} limit. -+#: sysdeps/gnu/errlist.c:756 -+msgid "Too many processes" -+msgstr "Muitos processos" - --#: locale/programs/linereader.c:333 --msgid "garbage at end of character code specification" --msgstr "lixo no final da especificação do código de caracter" -+#. TRANS The file quota system is confused because there are too many users. -+#. TRANS @c This can probably happen in a GNU system when using NFS. -+#: sysdeps/gnu/errlist.c:766 -+msgid "Too many users" -+msgstr "Muitos usuários" - --#: locale/programs/linereader.c:219 --msgid "garbage at end of number" --msgstr "lixo no final do número" -+#. TRANS The user's disk quota was exceeded. -+#: sysdeps/gnu/errlist.c:775 -+msgid "Disk quota exceeded" -+msgstr "Cota da disco excedida" -+ -+#. TRANS This indicates an internal confusion in the -+#. TRANS file system which is due to file system rearrangements on the server host -+#. TRANS for NFS file systems or corruption in other file systems. -+#. TRANS Repairing this condition usually requires unmounting, possibly repairing -+#. TRANS and remounting the file system. -+#: sysdeps/gnu/errlist.c:788 -+msgid "Stale file handle" -+msgstr "Manipulador de arquivo corrompido" - --#: locale/programs/ld-time.c:195 --#, c-format --msgid "garbage at end of offset value in string %d in `era' field in category `%s'" --msgstr "lixo no final do valor do deslocamento na string %d no campo `era', categoria `%s'" -+#. TRANS An attempt was made to NFS-mount a remote file system with a file name that -+#. TRANS already specifies an NFS-mounted file. -+#. TRANS (This is an error on some operating systems, but we expect it to work -+#. TRANS properly on @gnuhurdsystems{}, making this error code impossible.) -+#: sysdeps/gnu/errlist.c:800 -+msgid "Object is remote" -+msgstr "Objeto é remoto" - --#: locale/programs/ld-time.c:252 --#, c-format --msgid "garbage at end of starting date in string %d in `era' field in category `%s'" --msgstr "lixo no final da data de início na string %d no campo `era', categoria `%s'" -+#: sysdeps/gnu/errlist.c:808 -+msgid "RPC struct is bad" -+msgstr "Estrutura RPC inválida" - --#: locale/programs/ld-time.c:328 --#, c-format --msgid "garbage at end of stopping date in string %d in `era' field in category `%s'" --msgstr "lixo no final da data de parada na string %d no campo `era', categoria `%s'" -+#: sysdeps/gnu/errlist.c:816 -+msgid "RPC version wrong" -+msgstr "Versão RPC incorreta" - --#: elf/sprof.c:81 --msgid "generate call graph" --msgstr "gera gráfico de chamadas" -+#: sysdeps/gnu/errlist.c:824 -+msgid "RPC program not available" -+msgstr "Programa RPC não disponível" - --#: elf/sprof.c:80 --msgid "generate flat profile with counts and ticks" --msgstr "gera perfil com contadores e `ticks'" -+#: sysdeps/gnu/errlist.c:832 -+msgid "RPC program version wrong" -+msgstr "Versão incorreta de programa RPC" - --#: sunrpc/get_myaddr.c:77 --msgid "get_myaddress: ioctl (get interface configuration)" --msgstr "get_myaddress: ioctl (obtém configuração de interface)" -+#: sysdeps/gnu/errlist.c:840 -+msgid "RPC bad procedure for program" -+msgstr "Procedimento RPC ruim para programa" - --#: nss/getent.c:53 --msgid "getent - get entries from administrative database." --msgstr "getent - pega entrada da base de dados administrativa." -+#. TRANS This is used by the file locking facilities; see -+#. TRANS @ref{File Locks}. This error is never generated by @gnuhurdsystems{}, but -+#. TRANS it can result from an operation to an NFS server running another -+#. TRANS operating system. -+#: sysdeps/gnu/errlist.c:852 -+msgid "No locks available" -+msgstr "Não há travas disponíveis" - --#: nscd/connections.c:200 --#, c-format --msgid "handle_request: request received (Version = %d)" --msgstr "handle_request: requisição recebida (Versão = %d)" -+#. TRANS The file was the wrong type for the -+#. TRANS operation, or a data file had the wrong format. -+#. TRANS -+#. TRANS On some systems @code{chmod} returns this error if you try to set the -+#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}. -+#: sysdeps/gnu/errlist.c:865 -+msgid "Inappropriate file type or format" -+msgstr "Tipo ou formato de arquivo inapropriado" - --#: timezone/zic.c:613 --msgid "hard link failed, symbolic link used" --msgstr "vínculo (link( falhou, vínculo simbólico usado" -+#: sysdeps/gnu/errlist.c:873 -+msgid "Authentication error" -+msgstr "Erro de autenticação" - --#: inet/rcmd.c:322 --msgid "hard linked somewhere" --msgstr "vinculo (hard linked) em algúm lugar" -+#: sysdeps/gnu/errlist.c:881 -+msgid "Need authenticator" -+msgstr "É necessário um autenticador" -+ -+#. TRANS This indicates that the function called is -+#. TRANS not implemented at all, either in the C library itself or in the -+#. TRANS operating system. When you get this error, you can be sure that this -+#. TRANS particular function will always fail with @code{ENOSYS} unless you -+#. TRANS install a new version of the C library or the operating system. -+#: sysdeps/gnu/errlist.c:894 -+msgid "Function not implemented" -+msgstr "Função não implementada" -+ -+#. TRANS A function returns this error when certain parameter -+#. TRANS values are valid, but the functionality they request is not available. -+#. TRANS This can mean that the function does not implement a particular command -+#. TRANS or option value or flag bit at all. For functions that operate on some -+#. TRANS object given in a parameter, such as a file descriptor or a port, it -+#. TRANS might instead mean that only @emph{that specific object} (file -+#. TRANS descriptor, port, etc.) is unable to support the other parameters given; -+#. TRANS different file descriptors might support different ranges of parameter -+#. TRANS values. -+#. TRANS -+#. TRANS If the entire function is not available at all in the implementation, -+#. TRANS it returns @code{ENOSYS} instead. -+#: sysdeps/gnu/errlist.c:914 -+msgid "Not supported" -+msgstr "Não há suporte" - --#: timezone/zic.c:1162 --msgid "illegal CORRECTION field on Leap line" --msgstr "Campo CORRECTION ilegal em linha Leap (ajuste)" -+#. TRANS While decoding a multibyte character the function came along an invalid -+#. TRANS or an incomplete sequence of bytes or the given wide character is invalid. -+#: sysdeps/gnu/errlist.c:924 -+msgid "Invalid or incomplete multibyte or wide character" -+msgstr "Multibyte ou caractere largo inválido" - --#: timezone/zic.c:1166 --msgid "illegal Rolling/Stationary field on Leap line" --msgstr "campo Rolling/Stationary ilegal em linha Leap (ajuste)" -+#. TRANS On @gnuhurdsystems{}, servers supporting the @code{term} protocol return -+#. TRANS this error for certain operations when the caller is not in the -+#. TRANS foreground process group of the terminal. Users do not usually see this -+#. TRANS error because functions such as @code{read} and @code{write} translate -+#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control}, -+#. TRANS for information on process groups and these signals. -+#: sysdeps/gnu/errlist.c:938 -+msgid "Inappropriate operation for background process" -+msgstr "Operação inapropriada para processo em background" - --#: locale/programs/ld-collate.c:1782 --msgid "illegal character constant in string" --msgstr "constante de caracteres ilegal na string" -+#. TRANS On @gnuhurdsystems{}, opening a file returns this error when the file is -+#. TRANS translated by a program and the translator program dies while starting -+#. TRANS up, before it has connected to the file. -+#: sysdeps/gnu/errlist.c:949 -+msgid "Translator died" -+msgstr "Tradutor morto" - --#: sunrpc/rpc_scan.c:311 --msgid "illegal character in file: " --msgstr "caracteres ilegais no arquivo: " -+#. TRANS The experienced user will know what is wrong. -+#. TRANS @c This error code is a joke. Its perror text is part of the joke. -+#. TRANS @c Don't change it. -+#: sysdeps/gnu/errlist.c:960 -+msgid "?" -+msgstr "?" - --#: locale/programs/ld-collate.c:1125 --msgid "illegal collation element" --msgstr "elemento de comparação ilegal" -+#. TRANS You did @strong{what}? -+#: sysdeps/gnu/errlist.c:969 -+msgid "You really blew it this time" -+msgstr "Você realmente estragou desta vez" - --#: locale/programs/charmap.c:281 --msgid "illegal definition" --msgstr "definição ilegal" -+#. TRANS Go home and have a glass of warm, dairy-fresh milk. -+#: sysdeps/gnu/errlist.c:978 -+msgid "Computer bought the farm" -+msgstr "O computador comprou a fazenda" - --#: locale/programs/charmap.c:434 --msgid "illegal encoding given" --msgstr "dada codificação ilegal" -+#. TRANS This error code has no purpose. -+#: sysdeps/gnu/errlist.c:987 -+msgid "Gratuitous error" -+msgstr "Erro gratuito" - --#: locale/programs/linereader.c:551 --msgid "illegal escape sequence at end of string" --msgstr "sequência de escape ilegal no final da string" -+#: sysdeps/gnu/errlist.c:995 -+msgid "Bad message" -+msgstr "Mensagem inválida" - --#: iconv/iconv_prog.c:342 --#, c-format --msgid "illegal input sequence at position %ld" --msgstr "sequência de entrada ilegal na posição %ld" -+#: sysdeps/gnu/errlist.c:1003 -+msgid "Identifier removed" -+msgstr "Identificador removido" - --#: locale/programs/charset.c:78 --msgid "illegal names for character range" --msgstr "nomes ilegais para faixa de caracteres" -+#: sysdeps/gnu/errlist.c:1011 -+msgid "Multihop attempted" -+msgstr "Tentativa de Multihop" - --#: sunrpc/rpc_main.c:462 --#, c-format --msgid "illegal nettype :'%s'\n" --msgstr "nettype ilegal: `%s'\n" -+#: sysdeps/gnu/errlist.c:1019 -+msgid "No data available" -+msgstr "Não há dados disponíveis" - --#: locale/programs/ld-time.c:187 --#, c-format --msgid "illegal number for offset in string %d in `era' field in category `%s'" --msgstr "número ilegal para offset na string %d no campo `era', categoria `%s'" -+#: sysdeps/gnu/errlist.c:1027 -+msgid "Link has been severed" -+msgstr "Link foi cortado" - --#: catgets/gencat.c:361 catgets/gencat.c:438 --msgid "illegal set number" --msgstr "número de conjunto ilegal" -+#: sysdeps/gnu/errlist.c:1035 -+msgid "No message of desired type" -+msgstr "Não há mensagens do tipo desejado" - --#: locale/programs/ld-time.c:243 --#, c-format --msgid "illegal starting date in string %d in `era' field in category `%s'" --msgstr "data de início ilegal na string %d no campo `era', categoria `%s'" -+#: sysdeps/gnu/errlist.c:1043 -+msgid "Out of streams resources" -+msgstr "Sem recursos de streams" - --#: locale/programs/ld-time.c:319 --#, c-format --msgid "illegal stopping date in string %d in `era' field in category `%s'" --msgstr "data de parada ilegal na string %d no campo `era', categoria `%s'" -+#: sysdeps/gnu/errlist.c:1051 -+msgid "Device not a stream" -+msgstr "Dispositivo não é um stream" - --#: locale/programs/ld-ctype.c:831 --#, c-format --msgid "implementation limit: no more than %d character classes allowed" --msgstr "limite de implementacão: não são permitidas mais que %d classes de caracter" -+#: sysdeps/gnu/errlist.c:1059 -+msgid "Value too large for defined data type" -+msgstr "Valor muito grande para o tipo de dados definido" - --#: locale/programs/ld-ctype.c:863 --#, c-format --msgid "implementation limit: no more than %d character maps allowed" --msgstr "limite de implementacão: não são permitidos mais que %d mapas de caracter" -+#: sysdeps/gnu/errlist.c:1067 -+msgid "Protocol error" -+msgstr "Erro de protocolo" - --#: iconv/iconv_prog.c:346 --msgid "incomplete character or shift sequence at end of buffer" --msgstr "caractere incompleto ou mudança de seqüencia no final do buffer" -+#: sysdeps/gnu/errlist.c:1075 -+msgid "Timer expired" -+msgstr "Tempo expirado" - --#: db2/makedb.c:148 --msgid "incorrectly formatted file" --msgstr "arquivo formatado incorretamente" -+#. 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 -+msgid "Operation canceled" -+msgstr "Operação cancelada" - --#: timezone/zic.c:825 --msgid "input line of unknown type" --msgstr "linha de entrada de tipo desconhecido" -+#: sysdeps/gnu/errlist.c:1095 -+msgid "Interrupted system call should be restarted" -+msgstr "Chamada de sistema interrompida deve ser reiniciada" - --#: iconv/iconv_prog.c:350 --msgid "internal error (illegal descriptor)" --msgstr "erro interno (descritor ilegal)" -+#: sysdeps/gnu/errlist.c:1103 -+msgid "Channel number out of range" -+msgstr "Número do canal fora do intervalo" - --#: timezone/zic.c:1788 --msgid "internal error - addtype called with bad isdst" --msgstr "erro interno - addtype chamado com isdst incorreto" -+#: sysdeps/gnu/errlist.c:1111 -+msgid "Level 2 not synchronized" -+msgstr "Nível 2 não sincronizado" - --#: timezone/zic.c:1796 --msgid "internal error - addtype called with bad ttisgmt" --msgstr "erro interno - addtype chamado com ttisgmt incorreto" -+#: sysdeps/gnu/errlist.c:1119 -+msgid "Level 3 halted" -+msgstr "Nível 3 parado" - --#: timezone/zic.c:1792 --msgid "internal error - addtype called with bad ttisstd" --msgstr "erro interno - addtype chamado com ttisstd incorreto" -+#: sysdeps/gnu/errlist.c:1127 -+msgid "Level 3 reset" -+msgstr "Nível 3 reiniciado" - --#: locale/programs/ld-ctype.c:307 --#, c-format --msgid "internal error in %s, line %u" --msgstr "erro interno em %s, linha %u" -+#: sysdeps/gnu/errlist.c:1135 -+msgid "Link number out of range" -+msgstr "Número de link fora da faixa" - --#: timezone/zic.c:1034 --msgid "invalid UTC offset" --msgstr "deslocamento UTC inválido" -+#: sysdeps/gnu/errlist.c:1143 -+msgid "Protocol driver not attached" -+msgstr "Driver de protocolo não anexado" - --#: timezone/zic.c:1037 --msgid "invalid abbreviation format" --msgstr "formato de abreviação inválido" -+#: sysdeps/gnu/errlist.c:1151 -+msgid "No CSI structure available" -+msgstr "Não há estrutura CSI disponível" - --#: timezone/zic.c:1127 timezone/zic.c:1339 timezone/zic.c:1353 --msgid "invalid day of month" --msgstr "dia do mês inválido" -+#: sysdeps/gnu/errlist.c:1159 -+msgid "Level 2 halted" -+msgstr "Parada de sistema nível 2" - --#: timezone/zic.c:1291 --msgid "invalid ending year" --msgstr "ano final inválido" -+#: sysdeps/gnu/errlist.c:1167 -+msgid "Invalid exchange" -+msgstr "Troca inválida" - --#: timezone/zic.c:1099 --msgid "invalid leaping year" --msgstr "ano bissexto inválido" -+#: sysdeps/gnu/errlist.c:1175 -+msgid "Invalid request descriptor" -+msgstr "Descritor de requisição inválido" - --#: elf/dl-open.c:159 --msgid "invalid mode for dlopen()" --msgstr "modo inválido para dlopen()" -+#: sysdeps/gnu/errlist.c:1183 -+msgid "Exchange full" -+msgstr "Troca completa" - --#: timezone/zic.c:1114 timezone/zic.c:1217 --msgid "invalid month name" --msgstr "nome do mês inválido" -+#: sysdeps/gnu/errlist.c:1191 -+msgid "No anode" -+msgstr "Sem anode" - --#: timezone/zic.c:933 --msgid "invalid saved time" --msgstr "tempo gravado inválido" -+#: sysdeps/gnu/errlist.c:1199 -+msgid "Invalid request code" -+msgstr "Código de requisição inválido" - --#: timezone/zic.c:1266 --msgid "invalid starting year" --msgstr "ano inicial inválido" -+#: sysdeps/gnu/errlist.c:1207 -+msgid "Invalid slot" -+msgstr "Slot inválido" - --#: timezone/zic.c:1143 timezone/zic.c:1246 --msgid "invalid time of day" --msgstr "hora do dia inválida" -+#: sysdeps/gnu/errlist.c:1215 -+msgid "File locking deadlock error" -+msgstr "Erro de bloqueio em arquivo (deadlock)" - --#: timezone/zic.c:1344 --msgid "invalid weekday name" --msgstr "nome de dia de semana inválido" -+#: sysdeps/gnu/errlist.c:1223 -+msgid "Bad font file format" -+msgstr "Formato do arquivo fonte inválido" - --#: nscd/connections.c:375 --#, c-format --msgid "key length in request too long: %Zd" --msgstr "tamanho de chave na requisição muito longa: %Zd" -+#: sysdeps/gnu/errlist.c:1231 -+msgid "Machine is not on the network" -+msgstr "A maquina não está na rede" - --#: locale/programs/ld-collate.c:1422 --msgid "line after ellipsis must contain character definition" --msgstr "linha após elipse deve conter definição de caracter" -+#: sysdeps/gnu/errlist.c:1239 -+msgid "Package not installed" -+msgstr "Pacote não instalado" - --#: locale/programs/ld-collate.c:1401 --msgid "line before ellipsis does not contain definition for character constant" --msgstr "linha antes da elipse não contém definição para constante de caracter" -+#: sysdeps/gnu/errlist.c:1247 -+msgid "Advertise error" -+msgstr "Erro de aviso" - --#: timezone/zic.c:805 --msgid "line too long" --msgstr "linha muito longa" -+#: sysdeps/gnu/errlist.c:1255 -+msgid "Srmount error" -+msgstr "Erro de srmount" - --#: iconv/iconv_prog.c:58 --msgid "list all known coded character sets" --msgstr "lista todas as coleções de caracteres codificados" -+#: sysdeps/gnu/errlist.c:1263 -+msgid "Communication error on send" -+msgstr "Erro de comunicação ao enviar" - --#: locale/programs/localedef.c:273 --#, c-format --msgid "locale file `%s', used in `copy' statement, not found" --msgstr "arquivo locale `%s', usado na declaração `copy' , não encontrado" -+#: sysdeps/gnu/errlist.c:1271 -+msgid "RFS specific error" -+msgstr "Erro específico de RFS" - --#: inet/rcmd.c:307 --msgid "lstat failed" --msgstr "falha em lstat" -+#: sysdeps/gnu/errlist.c:1279 -+msgid "Name not unique on network" -+msgstr "O nome não é único na rede" - --#: catgets/gencat.c:619 --msgid "malformed line ignored" --msgstr "linha inválida ignorada" -+#: sysdeps/gnu/errlist.c:1287 -+msgid "File descriptor in bad state" -+msgstr "Descritor de arquivo em mal estado" - --#: elf/sprof.c:554 --msgid "mapping of section header string table failed" --msgstr "mapeamento da tabela de cadeias do cabeçalho da seção falhou" -+#: sysdeps/gnu/errlist.c:1295 -+msgid "Remote address changed" -+msgstr "Endereço remoto alterado" - --#: elf/sprof.c:544 --msgid "mapping of section headers failed" --msgstr "mapeamento dos cabeçalhos da seção falhou" -+#: sysdeps/gnu/errlist.c:1303 -+msgid "Can not access a needed shared library" -+msgstr "Não foi possível acessar uma biblioteca compartilhada" - --#: malloc/mcheck.c:202 --msgid "memory clobbered before allocated block\n" --msgstr "memória sobrescrita antes do bloco alocado\n" -+#: sysdeps/gnu/errlist.c:1311 -+msgid "Accessing a corrupted shared library" -+msgstr "Acessando uma biblioteca compartilhado corrompida" - --#: malloc/mcheck.c:205 --msgid "memory clobbered past end of allocated block\n" --msgstr "memória sobrescrita após o fim do bloco allocado\n" -- --#: locale/programs/ld-collate.c:170 locale/programs/ld-collate.c:176 --#: locale/programs/ld-collate.c:180 locale/programs/ld-collate.c:1449 --#: locale/programs/ld-collate.c:1478 locale/programs/locfile.c:1082 --#: locale/programs/xmalloc.c:70 login/programs/database.c:62 --#: login/programs/database.c:79 login/programs/database.c:95 --#: posix/getconf.c:682 --msgid "memory exhausted" --msgstr "memória esgotada" -+#: sysdeps/gnu/errlist.c:1319 -+msgid ".lib section in a.out corrupted" -+msgstr "Seção .lib corrompida em a.out" - --#: malloc/obstack.c:471 --msgid "memory exhausted\n" --msgstr "memória esgotada\n" -+#: sysdeps/gnu/errlist.c:1327 -+msgid "Attempting to link in too many shared libraries" -+msgstr "Tentando vincular em muitas bibliotecas compartilhadas" - --#: malloc/mcheck.c:199 --msgid "memory is consistent, library is buggy\n" --msgstr "a memória está consistente, problemas na biblioteca\n" -+#: sysdeps/gnu/errlist.c:1335 -+msgid "Cannot exec a shared library directly" -+msgstr "Não foi possível executar uma biblioteca compartilhado diretamente" - --#: locale/programs/ld-time.c:370 --#, c-format --msgid "missing era format in string %d in `era' field in category `%s'" --msgstr "formato era ausente na string %d no campo `era', categoria`%s'" -+#: sysdeps/gnu/errlist.c:1343 -+msgid "Streams pipe error" -+msgstr "Erro de fluxos de pipe" - --#: locale/programs/ld-time.c:358 --#, c-format --msgid "missing era name in string %d in `era' field in category `%s'" --msgstr "nome era ausente na string %d no campo `era', categoria `%s'" -+#: sysdeps/gnu/errlist.c:1351 -+msgid "Structure needs cleaning" -+msgstr "A estrutura necessita de limpeza" - --#: timezone/zic.c:928 --msgid "nameless rule" --msgstr "regra sem nome" -+#: sysdeps/gnu/errlist.c:1359 -+msgid "Not a XENIX named type file" -+msgstr "Não é um arquivo nomeável XENIX" - --#: iconv/iconv_prog.c:133 --msgid "neither original nor target encoding specified" --msgstr "codificação original nem destino especificada" -+#: sysdeps/gnu/errlist.c:1367 -+msgid "No XENIX semaphores available" -+msgstr "Não há semáforos XENIX disponíveis" - --#: nis/nss_nisplus/nisplus-publickey.c:262 --#: nis/nss_nisplus/nisplus-publickey.c:268 --#: nis/nss_nisplus/nisplus-publickey.c:327 --#: nis/nss_nisplus/nisplus-publickey.c:336 --#, c-format --msgid "netname2user: (nis+ lookup): %s\n" --msgstr "netname2user: (nis+ lookup): %s\n" -+#: sysdeps/gnu/errlist.c:1375 -+msgid "Is a named type file" -+msgstr "É um arquivo tipo nomeável" - --#: nis/nss_nisplus/nisplus-publickey.c:281 --#, c-format --msgid "netname2user: DES entry for %s in directory %s not unique" --msgstr "netname2user: entrada DES para %s no diretório %s não é única" -+#: sysdeps/gnu/errlist.c:1383 -+msgid "Remote I/O error" -+msgstr "Erro de E/S remota" - --#: nis/nss_nisplus/nisplus-publickey.c:349 --#, c-format --msgid "netname2user: LOCAL entry for %s in directory %s not unique" --msgstr "netname2user: entrada LOCAL para %s no diretório %s não é única" -+#: sysdeps/gnu/errlist.c:1391 -+msgid "No medium found" -+msgstr "Mídia não encontrada" - --#: nis/nss_nisplus/nisplus-publickey.c:194 --#, c-format --msgid "netname2user: missing group id list in '%s'." --msgstr "netname2user: lista de id do grupo perdida em `%s'." -+#: sysdeps/gnu/errlist.c:1399 -+msgid "Wrong medium type" -+msgstr "Tipo de mídia incorreta" - --#: nis/nss_nisplus/nisplus-publickey.c:299 --#, c-format --msgid "netname2user: principal name '%s' too long" --msgstr "netname2user: nome principal `%s' muito longo" -+#: sysdeps/gnu/errlist.c:1407 -+msgid "Required key not available" -+msgstr "Chave necessária não disponível" - --#: nis/nss_nisplus/nisplus-publickey.c:356 --msgid "netname2user: should not have uid 0" --msgstr "netname2user: não deve possuir uid 0" -+#: sysdeps/gnu/errlist.c:1415 -+msgid "Key has expired" -+msgstr "A chave expirou" - --#: sunrpc/svc_simple.c:158 --#, c-format --msgid "never registered prog %d\n" --msgstr "nunca registrado prog %d\n" -+#: sysdeps/gnu/errlist.c:1423 -+msgid "Key has been revoked" -+msgstr "A chave foi revogada" - --#: locale/programs/repertoire.c:238 --msgid "no or value given" --msgstr "Valores ou não entrados" -+#: sysdeps/gnu/errlist.c:1431 -+msgid "Key was rejected by service" -+msgstr "A chave foi rejeitada pelo serviço" - --#: locale/programs/ld-messages.c:101 locale/programs/ld-messages.c:125 --#, c-format --msgid "no correct regular expression for field `%s' in category `%s': %s" --msgstr "não há expressão regular correta para campo `%s', categoria `%s': %s" -+#: sysdeps/gnu/errlist.c:1439 -+msgid "Owner died" -+msgstr "Dono morto" - --#: timezone/zic.c:2115 --msgid "no day in month matches rule" --msgstr "nehum dia do mês satisfaz a norma" -+#: sysdeps/gnu/errlist.c:1447 -+msgid "State not recoverable" -+msgstr "Estado não recuperável" - --#: locale/programs/ld-collate.c:267 --msgid "no definition of `UNDEFINED'" --msgstr "não há definição de `UNDEFINED'" -+#: sysdeps/gnu/errlist.c:1455 -+msgid "Operation not possible due to RF-kill" -+msgstr "Operação não permitida em razão de RF-kill" - --#: elf/sprof.c:276 --#, c-format --msgid "no filename for profiling data given and shared object `%s' has no soname" --msgstr "nome de arquivo para perfil de dados não informado e objetos compartilhados `%s' não tem `soname'" -+#: sysdeps/gnu/errlist.c:1463 -+msgid "Memory page has hardware error" -+msgstr "Página de memória possui um erro de hardware" - --#: locale/programs/locfile.c:609 --msgid "no other keyword shall be specified when `copy' is used" --msgstr "nehuma outra palavra-chave deve ser especificada quando `copy' é usado" -+#: sysdeps/mach/_strerror.c:56 -+msgid "Error in unknown error system: " -+msgstr "Falha no erro desconhecido do sistema: " - --#: locale/programs/localedef.c:334 --msgid "no output file produced because warning were issued" --msgstr "nenhum arquivo de saída foi produzido porque avisos foram emitidos" -+#: sysdeps/posix/gai_strerror-strs.h:1 -+msgid "Address family for hostname not supported" -+msgstr "Família de endereços não suportada para nome de máquina" - --#: locale/programs/locfile.c:283 locale/programs/locfile.c:301 --#: locale/programs/locfile.c:319 locale/programs/locfile.c:337 --#: locale/programs/locfile.c:355 locale/programs/locfile.c:373 --msgid "no repertoire map specified: cannot proceed" --msgstr "mapa de repertório não especificado: não posso prosseguir" -+#: sysdeps/posix/gai_strerror-strs.h:2 -+msgid "Temporary failure in name resolution" -+msgstr "Falha temporário na resolução de nome" - --#: locale/programs/charmap.c:400 locale/programs/charmap.c:550 --#: locale/programs/charmap.c:629 locale/programs/repertoire.c:199 --msgid "no symbolic name given" --msgstr "nenhum nome simbólico dado" -+#: sysdeps/posix/gai_strerror-strs.h:3 -+msgid "Bad value for ai_flags" -+msgstr "Valor inválido para ai_flags" - --#: locale/programs/charmap.c:465 locale/programs/charmap.c:596 --#: locale/programs/charmap.c:662 locale/programs/repertoire.c:261 --msgid "no symbolic name given for end of range" --msgstr "nenhum nome simbólico dado para fim do intervalo" -+#: sysdeps/posix/gai_strerror-strs.h:4 -+msgid "Non-recoverable failure in name resolution" -+msgstr "Falha irrecuperável na resolução de nome" - --#: locale/programs/ld-collate.c:249 --#, c-format --msgid "no weight defined for symbol `%s'" --msgstr "não foi definido peso para o símbolo `%s'" -+#: sysdeps/posix/gai_strerror-strs.h:5 -+msgid "ai_family not supported" -+msgstr "Família de protocolo (ai_family) sem suporte" - --#: inet/rcmd.c:309 --msgid "not regular file" --msgstr "não é arquivo normal" -+#: sysdeps/posix/gai_strerror-strs.h:6 -+msgid "Memory allocation failure" -+msgstr "Falha de alocação de memória" - --#: nscd/nscd_stat.c:130 --#, c-format --msgid "" --"nscd configuration:\n" --"\n" --"%15d server debug level\n" --msgstr "" --"configuração nscd:\n" --"\n" --"%15d nível de debug do servidor\n" -+#: sysdeps/posix/gai_strerror-strs.h:7 -+msgid "No address associated with hostname" -+msgstr "Não há endereço associado com o nome" - --#: nscd/nscd_stat.c:104 --msgid "nscd not running!\n" --msgstr "nscd não está rodando!\n" -+#: sysdeps/posix/gai_strerror-strs.h:8 -+msgid "Name or service not known" -+msgstr "Nome ou serviço desconhecido" - --#: locale/programs/charmap.c:514 --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" -+#: sysdeps/posix/gai_strerror-strs.h:9 -+msgid "Servname not supported for ai_socktype" -+msgstr "Servname sem suporte para “ai_socktype”" - --#: iconv/iconv_prog.c:135 --msgid "original encoding not specified using `-f'" --msgstr "codificação original não especificada usando `-f'" -+#: sysdeps/posix/gai_strerror-strs.h:10 -+msgid "ai_socktype not supported" -+msgstr "ai_socktype sem suporte" - --#: iconv/iconv_prog.c:60 --msgid "output file" --msgstr "arquivo de saída" -+#: sysdeps/posix/gai_strerror-strs.h:11 -+msgid "System error" -+msgstr "Erro de sistema" - --#: sunrpc/pm_getmaps.c:73 --msgid "pmap_getmaps rpc problem" --msgstr "problemas de pmap_getmaps rpc" -+#: sysdeps/posix/gai_strerror-strs.h:12 -+msgid "Processing request in progress" -+msgstr "Processamento da requisição em progresso" - --#: inet/rcmd.c:179 --msgid "poll: protocol failure in circuit setup\n" --msgstr "poll: falha de protocolo na configuração do circuito\n" -+#: sysdeps/posix/gai_strerror-strs.h:13 -+msgid "Request canceled" -+msgstr "Requisição cancelada" - --#: sunrpc/rpc_scan.c:523 sunrpc/rpc_scan.c:533 --msgid "preprocessor error" --msgstr "Erro de pré-processador" -+#: sysdeps/posix/gai_strerror-strs.h:14 -+msgid "Request not canceled" -+msgstr "Requisição não cancelada" - --#: elf/sprof.c:78 --msgid "print list of count paths and their number of use" --msgstr "mostra lista de número de rotas e seu número de uso" -+#: sysdeps/posix/gai_strerror-strs.h:15 -+msgid "All requests done" -+msgstr "Todas as requisições feitas" - --#: iconv/iconv_prog.c:61 --msgid "print progress information" --msgstr "mostra informações de progresso" -+#: sysdeps/posix/gai_strerror-strs.h:16 -+msgid "Interrupted by a signal" -+msgstr "Interrompido por um sinal" - --#: db2/makedb.c:345 --#, c-format --msgid "problems while reading `%s'" --msgstr "problems lendo `%s'" -+#: sysdeps/posix/gai_strerror-strs.h:17 -+msgid "Parameter string not correctly encoded" -+msgstr "String de parâmetro não codificado corretamente" - --#: elf/sprof.c:691 -+#: sysdeps/unix/sysv/linux/i386/readelflib.c:65 - #, c-format --msgid "profiling data file `%s' does not match shared object `%s'" --msgstr "arquivo de dados de perfil `%s' não coincide com objetos compartilhados `%s'" -+msgid "%s is for unknown machine %d.\n" -+msgstr "%s é para máquina desconhecida %d.\n" - --#: sunrpc/rpcinfo.c:237 sunrpc/rpcinfo.c:383 -+#: sysdeps/unix/sysv/linux/ia64/makecontext.c:58 - #, c-format --msgid "program %lu is not available\n" --msgstr "programa %lu não está disponível\n" -+msgid "makecontext: does not know how to handle more than 8 arguments\n" -+msgstr "makecontext: não sabe como lidar com mais de 8 argumentos\n" - --#: sunrpc/rpcinfo.c:264 sunrpc/rpcinfo.c:310 sunrpc/rpcinfo.c:333 --#: sunrpc/rpcinfo.c:407 sunrpc/rpcinfo.c:453 sunrpc/rpcinfo.c:476 --#: sunrpc/rpcinfo.c:510 -+#: sysdeps/unix/sysv/linux/lddlibc4.c:60 - #, c-format --msgid "program %lu version %lu is not available\n" --msgstr "programa %lu versão %lu não está disponível\n" -+msgid "" -+"Usage: lddlibc4 FILE\n" -+"\n" -+msgstr "" -+"Uso: lddlibc4 ARQUIVO\n" -+"\n" - --#: sunrpc/rpcinfo.c:515 -+#: sysdeps/unix/sysv/linux/lddlibc4.c:81 - #, c-format --msgid "program %lu version %lu ready and waiting\n" --msgstr "programa %lu versão %lu pronto e aguardando\n" -+msgid "cannot open `%s'" -+msgstr "não foi possível abrir “%s”" - --#: inet/rcmd.c:176 -+#: sysdeps/unix/sysv/linux/lddlibc4.c:85 - #, c-format --msgid "rcmd: poll (setting up stderr): %m\n" --msgstr "rcmd: poll (configurando stderr): %m\n" -- --#: inet/rcmd.c:110 --msgid "rcmd: socket: All ports in use\n" --msgstr "rcmd: socket: Todas as portas em uso\n" -+msgid "cannot read header from `%s'" -+msgstr "não foi possível ler cabeçalho de “%s”" - --#: inet/rcmd.c:166 --#, c-format --msgid "rcmd: write (setting up stderr): %m\n" --msgstr "rcmd: write (configurando stderr): %m\n" -+#: timezone/zdump.c:338 -+msgid "has fewer than 3 characters" -+msgstr "possui menos de 3 caracteres" - --#: sunrpc/svc_simple.c:98 --msgid "registerrpc: out of memory\n" --msgstr "registerrpc: não há memória suficiente\n" -+#: timezone/zdump.c:340 -+msgid "has more than 6 characters" -+msgstr "possui mais de 6 caracteres" - --#: timezone/zic.c:1849 --msgid "repeated leap second moment" --msgstr "ajuste repetido em segundo momento" -+#: timezone/zdump.c:342 -+msgid "has characters other than ASCII alphanumerics, '-' or '+'" -+msgstr "possui caracteres além de “-”, “+” ou alfanuméricos ASCII" - --#: locale/programs/repertoire.c:95 -+#: timezone/zdump.c:347 - #, c-format --msgid "repertoire map file `%s' not found" --msgstr "arquivo de mapas `%s' não foi localizado" -- --#: sunrpc/rpc_main.c:1117 --msgid "rpcgen: arglist coding error\n" --msgstr "rpcgen: erro na codificação de parâmetros\n" -- --#: sunrpc/rpc_main.c:1105 --msgid "rpcgen: too many defines\n" --msgstr "rpcgen: muitas definições\n" -+msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n" -+msgstr "%s: aviso: fuso “%s” abreviação “%s” %s\n" - --#: sunrpc/rpcinfo.c:732 -+#: timezone/zdump.c:393 - #, c-format --msgid "rpcinfo: %s is unknown host\n" --msgstr "rpcinfo: %s é um host desconhecido\n" -+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" -+msgstr "" -+"%s: uso: %s OPÇÕES NOMEFUSO ...\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" -+" -i Lista transições brevemente (formato é experimental)\n" -+" -v Lista transições verbosamente\n" -+" -V Lista transições um pouco menos verbosamente\n" -+" --help Emite essa ajuda\n" -+" --version Emite informação da versão\n" -+"\n" -+"Relate erros para %s.\n" - --#: sunrpc/rpcinfo.c:695 -+#: timezone/zdump.c:479 - #, c-format --msgid "rpcinfo: %s is unknown service\n" --msgstr "rpcinfo: %s é um serviço desconhecido\n" -+msgid "%s: wild -c argument %s\n" -+msgstr "%s: argumento -c insensato %s\n" - --#: sunrpc/rpcinfo.c:665 -+#: timezone/zdump.c:512 - #, c-format --msgid "rpcinfo: Could not delete registration for prog %s version %s\n" --msgstr "rpcinfo: Não foi possível apagar registro para prog %s versão %s\n" -+msgid "%s: wild -t argument %s\n" -+msgstr "%s: argumento -t insensato %s\n" - --#: sunrpc/rpcinfo.c:637 -+#: timezone/zic.c:398 - #, c-format --msgid "rpcinfo: broadcast failed: %s\n" --msgstr "rpcinfo: broadcast falhou: %s\n" -+msgid "%s: Memory exhausted: %s\n" -+msgstr "%s: Memória esgotada: %s\n" - --#: sunrpc/rpcinfo.c:556 sunrpc/rpcinfo.c:563 --msgid "rpcinfo: can't contact portmapper" --msgstr "rpcinfo: impossível contactar portmapper" -+#: timezone/zic.c:406 -+msgid "size overflow" -+msgstr "estouro de tamanho" - --#: timezone/zic.c:718 timezone/zic.c:720 --msgid "same rule name in multiple files" --msgstr "mesmo nome de regra em múltiplos arquivos" -+#: timezone/zic.c:454 -+msgid "integer overflow" -+msgstr "estouro de valor inteiro" - --#: nscd/connections.c:387 -+#: timezone/zic.c:488 - #, c-format --msgid "short read while reading request key: %s" --msgstr "falha na leitura lendo chave de requisição: %s" -+msgid "\"%s\", line %: " -+msgstr "“%s”, linha %: " - --#: nscd/connections.c:364 -+#: timezone/zic.c:491 - #, c-format --msgid "short read while reading request: %s" --msgstr "problems lendo `%s'" -+msgid " (rule from \"%s\", line %)" -+msgstr " (regra de “%s”, linha %)" - --#: nscd/grpcache.c:191 nscd/hstcache.c:278 nscd/pwdcache.c:188 -+#: timezone/zic.c:510 - #, c-format --msgid "short write in %s: %s" --msgstr "Erro escrevendo em %s: %s" -- --#: inet/rcmd.c:197 --msgid "socket: protocol failure in circuit setup\n" --msgstr "socket: falha de protocolo na configuração do circuito\n" -- --#: locale/programs/locfile.c:730 --msgid "sorting order `forward' and `backward' are mutually exclusive" --msgstr "as ordens de classificação `forward' e `backward' são mutuamente exclusivas" -- --#: locale/programs/ld-collate.c:1582 locale/programs/ld-collate.c:1628 --msgid "specification of sorting weight for collation symbol does not make sense" --msgstr "especificação de peso para símbolo de comparação não faz sentido" -- --#: timezone/zic.c:789 --msgid "standard input" --msgstr "entrada padrão" -- --#: timezone/zdump.c:268 --msgid "standard output" --msgstr "saída padrão" -+msgid "warning: " -+msgstr "aviso: " - --#: locale/programs/ld-time.c:272 -+#: timezone/zic.c:535 - #, c-format --msgid "starting date is illegal in string %d in `era' field in category `%s'" --msgstr "data inicial é ilegal na string %d no campo `era', categoria `%s'" -- --#: timezone/zic.c:1300 --msgid "starting year greater than ending year" --msgstr "ano inicial maior que ano final" -- --#: timezone/zic.c:1272 timezone/zic.c:1297 --msgid "starting year too high to be represented" --msgstr "ano inicial muito alto para ser representado" -- --#: timezone/zic.c:1270 timezone/zic.c:1295 --msgid "starting year too low to be represented" --msgstr "ano inicial muito baixo para ser representado" -+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" -+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" -+"\n" -+"Relate erros para %s.\n" - --#: locale/programs/ld-time.c:348 -+#: timezone/zic.c:558 - #, c-format --msgid "stopping date is illegal in string %d in `era' field in category `%s'" --msgstr "data de término é ilegal na string %d no campo `era', categoria `%s'" -+msgid "%s: Can't chdir to %s: %s\n" -+msgstr "%s: Não foi fazer chdir criar %s: %s\n" - --#: sunrpc/svc_run.c:81 --msgid "svc_run: - select failed" --msgstr "svc_run: - select falhou" -+#: timezone/zic.c:590 -+msgid "wild compilation-time specification of zic_t" -+msgstr "especificação insensata de tempo de compilação de zic_t" - --#: sunrpc/svc_tcp.c:160 --msgid "svc_tcp.c - cannot getsockname or listen" --msgstr "svc_tcp_.c - não é possível receber `getsocknome' ou `listen'" -+#: timezone/zic.c:610 -+#, c-format -+msgid "%s: More than one -d option specified\n" -+msgstr "%s: Mais de uma opção -d foi especificada\n" - --#: sunrpc/svc_tcp.c:145 --msgid "svc_tcp.c - tcp socket creation problem" --msgstr "svc_tcp_.c - problema na criação do soquete AF_UNIX" -+#: timezone/zic.c:620 -+#, c-format -+msgid "%s: More than one -l option specified\n" -+msgstr "%s: Mais de uma opção -l especificada\n" - --#: sunrpc/svc_tcp.c:209 sunrpc/svc_tcp.c:215 --msgid "svc_tcp: makefd_xprt: out of memory\n" --msgstr "svc_tcp: makefd_xprt: não há memória suficiente\n" -+#: timezone/zic.c:630 -+#, c-format -+msgid "%s: More than one -p option specified\n" -+msgstr "%s: Mais de uma opção -p especificada\n" - --#: sunrpc/svc_unix.c:135 --msgid "svc_unix.c - AF_UNIX socket creation problem" --msgstr "svc_tcp_.c - problema na criação do soquete AF_UNIX" -+#: timezone/zic.c:640 -+#, c-format -+msgid "%s: More than one -y option specified\n" -+msgstr "%s: Mais de uma opção -y especificada\n" - --#: sunrpc/svc_unix.c:151 --msgid "svc_unix.c - cannot getsockname or listen" --msgstr "svc_tcp_.c - memória exaurida" -+#: timezone/zic.c:650 -+#, c-format -+msgid "%s: More than one -L option specified\n" -+msgstr "%s: Mais de uma opção -L foi especificada\n" - --#: sunrpc/svc_unix.c:201 sunrpc/svc_unix.c:207 --msgid "svc_unix: makefd_xprt: out of memory\n" --msgstr "svc_unix: makefd_xprt: não há memória suficiente\n" -+#: timezone/zic.c:659 -+msgid "-s ignored" -+msgstr "-s ignorada" - --#: sunrpc/svc_tcp.c:168 sunrpc/svc_tcp.c:176 --msgid "svctcp_create: out of memory\n" --msgstr "svctcp_create: não há memória suficiente\n" -+#: timezone/zic.c:698 -+msgid "link to link" -+msgstr "link para o link" - --#: sunrpc/svc_udp.c:135 --msgid "svcudp_create - cannot getsockname" --msgstr "svcudp_create - não é possível getsockname" -+#: timezone/zic.c:701 timezone/zic.c:705 -+msgid "command line" -+msgstr "linha de comando" - --#: sunrpc/svc_udp.c:143 sunrpc/svc_udp.c:149 sunrpc/svc_udp.c:155 --msgid "svcudp_create: out of memory\n" --msgstr "svcucp_create: não há memória suficiente\n" -+#: timezone/zic.c:721 -+msgid "empty file name" -+msgstr "arquivo com nome vazio" - --#: sunrpc/svc_udp.c:121 --msgid "svcudp_create: socket creation problem" --msgstr "svcudp_create: problema na criação socket" -+#: timezone/zic.c:724 -+#, c-format -+msgid "file name '%s' begins with '/'" -+msgstr "nome de arquivo “%s” começa com “/”" - --#: sunrpc/svc_unix.c:160 sunrpc/svc_unix.c:168 --msgid "svcunix_create: out of memory\n" --msgstr "svcunix_create: não há memória suficiente\n" -+#: timezone/zic.c:734 -+#, c-format -+msgid "file name '%s' contains '%.*s' component" -+msgstr "nome de arquivo “%s” contém componente “%.*s”" - --#: locale/programs/ld-collate.c:1201 -+#: timezone/zic.c:740 - #, c-format --msgid "symbol for multicharacter collating element `%.*s' duplicates element definition" --msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica a definição do elemento" -+msgid "file name '%s' component contains leading '-'" -+msgstr "um componente do nome de arquivo “%s” inicia com “-”" - --#: locale/programs/ld-collate.c:1073 -+#: timezone/zic.c:743 - #, c-format --msgid "symbol for multicharacter collating element `%.*s' duplicates other element definition" --msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica a definição do elemento" -+msgid "file name '%s' contains overlength component '%.*s...'" -+msgstr "nome de arquivo “%s” contém componente “%.*s...” comprido demais" - --#: locale/programs/ld-collate.c:1210 -+#: timezone/zic.c:771 - #, c-format --msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition" --msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica outra definição de símbolo" -+msgid "file name '%s' contains byte '%c'" -+msgstr "nome de arquivo “%s” contém byte “%c”" - --#: locale/programs/ld-collate.c:1082 -+#: timezone/zic.c:772 - #, c-format --msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition" --msgstr "símbolo para elemento de comparação multicaracter `%.*s' duplica a definição do símbolo" -+msgid "file name '%s' contains byte '\\%o'" -+msgstr "nome de arquivo “%s” contém byte “\\%o”" - --#: locale/programs/ld-collate.c:1064 locale/programs/ld-collate.c:1192 -+#: timezone/zic.c:842 - #, c-format --msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset" --msgstr "símbolo para elemento de comparação multicaracter `%.*s duplicado" -+msgid "%s: link from %s/%s failed: %s\n" -+msgstr "%s: link de %s/%s falhou: %s\n" - --#: locale/programs/charmap.c:399 locale/programs/charmap.c:433 --#: locale/programs/charmap.c:463 locale/programs/charmap.c:549 --#: locale/programs/charmap.c:595 locale/programs/charmap.c:628 --#: locale/programs/charmap.c:660 -+#: timezone/zic.c:852 timezone/zic.c:1815 - #, c-format --msgid "syntax error in %s definition: %s" --msgstr "erro de sintaxe na definição %s: %s" -+msgid "%s: Can't remove %s/%s: %s\n" -+msgstr "%s: Não é possível remover %s/%s: %s\n" - --#: locale/programs/locfile.c:750 --msgid "syntax error in `order_start' directive" --msgstr "erro de sintaxe na diretiva `order_start'" -+#: timezone/zic.c:874 -+#, c-format -+msgid "symbolic link used because hard link failed: %s" -+msgstr "link simbólico usado porque link absoluto falhou: %s" - --#: locale/programs/locfile.c:492 --msgid "syntax error in character class definition" --msgstr "erro de sintaxe na definição de classe de caracteres" -+#: timezone/zic.c:882 -+#, c-format -+msgid "%s: Can't read %s/%s: %s\n" -+msgstr "%s: Não foi possível ler %s/%s: %s\n" - --#: locale/programs/locfile.c:550 --msgid "syntax error in character conversion definition" --msgstr "erro de sintaxe na definição de conversão de caracteres" -+#: timezone/zic.c:889 timezone/zic.c:1828 -+#, c-format -+msgid "%s: Can't create %s/%s: %s\n" -+msgstr "%s: Não é possível criar %s/%s (%s)\n" - --#: locale/programs/locfile.c:792 --msgid "syntax error in collating order definition" --msgstr "erro de sintaxe na definição de ordem de comparação" -+#: timezone/zic.c:898 -+#, c-format -+msgid "copy used because hard link failed: %s" -+msgstr "cópia usada porque link absoluto falhou: %s" - --#: locale/programs/locfile.c:642 --msgid "syntax error in collation definition" --msgstr "erro de sintaxe na definição de comparação" -+#: timezone/zic.c:901 -+#, c-format -+msgid "copy used because symbolic link failed: %s" -+msgstr "cópia usada porque link simbólico falhou: %s" - --#: locale/programs/locfile.c:465 --msgid "syntax error in definition of LC_CTYPE category" --msgstr "erro de sintaxe na definição da categoria LC_CTYPE" -+#: timezone/zic.c:1013 timezone/zic.c:1015 -+msgid "same rule name in multiple files" -+msgstr "mesmo nome de regra em múltiplos arquivos" - --#: locale/programs/locfile.c:408 --msgid "syntax error in definition of new character class" --msgstr "erro de sintaxe na definição de uma nova classe de caracteres" -+#: timezone/zic.c:1056 -+msgid "unruly zone" -+msgstr "fuso horário sem regras" - --#: locale/programs/locfile.c:418 --msgid "syntax error in definition of new character map" --msgstr "erro de sintaxe na definição de um novo mapa de caracteres" -+#: timezone/zic.c:1063 -+#, c-format -+msgid "%s in ruleless zone" -+msgstr "%s em uma fuso horário sem regras" - --#: locale/programs/locfile.c:1003 --msgid "syntax error in message locale definition" --msgstr "erro de sintaxe na definição da mensagem locale" -+#: timezone/zic.c:1083 -+msgid "standard input" -+msgstr "entrada padrão" - --#: locale/programs/locfile.c:914 --msgid "syntax error in monetary locale definition" --msgstr "erro de sintaxe na definição monetária locale" -+#: timezone/zic.c:1088 -+#, c-format -+msgid "%s: Can't open %s: %s\n" -+msgstr "%s: Não é possível abrir %s: %s\n" - --#: locale/programs/locfile.c:941 --msgid "syntax error in numeric locale definition" --msgstr "erro de sintaxe na definição numérica locale" -+#: timezone/zic.c:1099 -+msgid "line too long" -+msgstr "linha muito longa" - --#: locale/programs/locfile.c:852 --msgid "syntax error in order specification" --msgstr "erro de sintaxe na especificação de ordem" -+#: timezone/zic.c:1119 -+msgid "input line of unknown type" -+msgstr "linha de entrada de tipo desconhecido" - --#: locale/programs/charmap.c:280 locale/programs/charmap.c:296 --#: locale/programs/repertoire.c:143 -+#: timezone/zic.c:1134 - #, c-format --msgid "syntax error in prolog: %s" --msgstr "erro de sintaxe em prolog: %s" -+msgid "%s: Leap line in non leap seconds file %s" -+msgstr "%s: linha Leap em arquivo de segundos não bissextos %s" - --#: locale/programs/repertoire.c:198 locale/programs/repertoire.c:237 --#: locale/programs/repertoire.c:260 -+#: timezone/zic.c:1142 timezone/zic.c:1547 timezone/zic.c:1569 - #, c-format --msgid "syntax error in repertoire map definition: %s" --msgstr "erro de sintaxe no mapa de repertório: %s" -- --#: locale/programs/locfile.c:979 --msgid "syntax error in time locale definition" --msgstr "erro de sintaxe na definição de tempo locale" -- --#: locale/programs/locfile.c:385 --msgid "syntax error: not inside a locale definition section" --msgstr "erro de sintaxe: não está dentro de uma definição de seção locale" -- --#: iconv/iconv_prog.c:137 --msgid "target encoding not specified using `-t'" --msgstr "codificação destino não especificada usando `-t'" -- --#: catgets/gencat.c:390 catgets/gencat.c:526 catgets/gencat.c:553 --msgid "this is the first definition" --msgstr "esta é a primeira definição" -+msgid "%s: panic: Invalid l_value %d\n" -+msgstr "%s: pânico: l_value inválido %d\n" - --#: timezone/zic.c:1132 --msgid "time before zero" --msgstr "tempo menor que zero" -+#: timezone/zic.c:1151 -+msgid "expected continuation line not found" -+msgstr "linha de continuação não foi localizada" - --#: timezone/zic.c:1140 timezone/zic.c:2015 timezone/zic.c:2034 -+#: timezone/zic.c:1193 timezone/zic.c:2976 - msgid "time overflow" - msgstr "estouro de tempo" - --#: locale/programs/charmap.c:443 --msgid "too few bytes in character encoding" --msgstr "poucos bytes na codificação do caracter" -- --#: locale/programs/charmap.c:445 --msgid "too many bytes in character encoding" --msgstr "muitos bytes na codificação do caracter" -- --#: locale/programs/locales.h:92 --msgid "too many character classes defined" --msgstr "muitas classes de caracteres definidas" -+#: timezone/zic.c:1198 -+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:1843 --msgid "too many leap seconds" --msgstr "excessivos ajustes em segundos" -+#: timezone/zic.c:1209 -+msgid "wrong number of fields on Rule line" -+msgstr "número incorreto de campos na linha Rule" - --#: timezone/zic.c:1815 --msgid "too many local time types" --msgstr "muitos tipos de tempo local" -+#: timezone/zic.c:1213 -+msgid "nameless rule" -+msgstr "regra sem nome" - --#: timezone/zic.c:1769 --msgid "too many transitions?!" --msgstr "muitas transições?!" -+#: timezone/zic.c:1218 -+msgid "invalid saved time" -+msgstr "tempo gravado inválido" - --#: locale/programs/ld-collate.c:1637 --msgid "too many weights" --msgstr "muitos pesos" -+#: timezone/zic.c:1235 -+msgid "wrong number of fields on Zone line" -+msgstr "número incorreto de campos na linha Zone" - --#: timezone/zic.c:2138 --msgid "too many, or too long, time zone abbreviations" --msgstr "abreviações de zona de tempo excessivas ou muito extensas" -+#: timezone/zic.c:1240 -+#, 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" - --#: locale/programs/linereader.h:146 --msgid "trailing garbage at end of line" --msgstr "lixo no final da linha" -+#: timezone/zic.c:1246 -+#, 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" - --#: sunrpc/svc_simple.c:150 -+#: timezone/zic.c:1253 - #, c-format --msgid "trouble replying to prog %d\n" --msgstr "problemas respondendo ao prog %d\n" -+msgid "duplicate zone name %s (file \"%s\", line %)" -+msgstr "nome de fuso horário duplicado %s (arquivo “%s”, linha %)" - --#: locale/programs/ld-collate.c:1393 --msgid "two lines in a row containing `...' are not allowed" --msgstr "duas linhas em uma lista contendo `...' não são permitidas" -+#: timezone/zic.c:1267 -+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 --msgid "typed single year" --msgstr "digitado ano simples" -+msgid "invalid UT offset" -+msgstr "deslocamento de UT inválido" - --#: iconv/iconv_prog.c:406 --msgid "unable to allocate buffer for input" --msgstr "incapaz de alocar espaço para entrada" -- --#: nis/nis_callback.c:187 --msgid "unable to free arguments" --msgstr "não consegui liberar parâmetros" -- --#: posix/getconf.c:654 posix/getconf.c:670 --msgid "undefined" --msgstr "indefinido" -- --#: locale/programs/charmap.c:701 locale/programs/charmap.c:712 --#, c-format --msgid "unknown character `%s'" --msgstr "caracter desconhecido `%s'" -- --#: locale/programs/ld-messages.c:202 locale/programs/ld-messages.c:213 --#: locale/programs/ld-messages.c:224 locale/programs/ld-messages.c:235 --#: locale/programs/ld-time.c:718 --#, c-format --msgid "unknown character in field `%s' of category `%s'" --msgstr "caracter desconhecido no campo `%s', categoria `%s'" -- --#: locale/programs/locfile.c:715 --msgid "unknown collation directive" --msgstr "diretiva de comparação desconhecida" -+#: timezone/zic.c:1311 -+msgid "invalid abbreviation format" -+msgstr "formato de abreviação inválido" - --#: catgets/gencat.c:487 -+#: timezone/zic.c:1320 - #, c-format --msgid "unknown directive `%s': line ignored" --msgstr "diretiva desconhecida `%s': linha ignorada" -+msgid "format '%s' not handled by pre-2015 versions of zic" -+msgstr "formato “%s” não tratado por versões pré-2015 do zic" - --#: iconv/iconv_prog.c:353 --#, c-format --msgid "unknown iconv() error %d" --msgstr "erro iconv() desconhecido: %d" -+#: timezone/zic.c:1347 -+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" - --#: catgets/gencat.c:466 --#, c-format --msgid "unknown set `%s'" --msgstr "conjunto desconhecido `%s'" -+#: timezone/zic.c:1374 -+msgid "wrong number of fields on Leap line" -+msgstr "número incorreto de campos na linha Leap" - --#: locale/programs/ld-collate.c:1377 locale/programs/ld-collate.c:1572 --#: locale/programs/ld-collate.c:1747 --#, c-format --msgid "unknown symbol `%.*s': line ignored" --msgstr "símbolo desconhecido `%.*s': linha ignorada" -+#: timezone/zic.c:1383 -+msgid "invalid leaping year" -+msgstr "ano bissexto inválido" - --#: timezone/zic.c:761 --msgid "unruly zone" --msgstr "zona sem regras" -+#: timezone/zic.c:1403 timezone/zic.c:1501 -+msgid "invalid month name" -+msgstr "nome do mês inválido" - --#: catgets/gencat.c:971 --msgid "unterminated message" --msgstr "mensagem não terminada" -+#: timezone/zic.c:1416 timezone/zic.c:1614 timezone/zic.c:1628 -+msgid "invalid day of month" -+msgstr "dia do mês inválido" - --#: locale/programs/linereader.c:520 locale/programs/linereader.c:555 --msgid "unterminated string" --msgstr "string não terminada" -+#: timezone/zic.c:1421 -+msgid "time too small" -+msgstr "hora pequena demais" - --#: sunrpc/rpc_scan.c:350 sunrpc/rpc_scan.c:376 --msgid "unterminated string constant" --msgstr "string não terminada" -+#: timezone/zic.c:1425 -+msgid "time too large" -+msgstr "hora grande demais" - --#: locale/programs/linereader.c:390 --msgid "unterminated symbolic name" --msgstr "nome simbólico não terminado" -+#: timezone/zic.c:1429 timezone/zic.c:1530 -+msgid "invalid time of day" -+msgstr "hora do dia inválida" - --#: locale/programs/ld-collate.c:1699 --msgid "unterminated weight name" --msgstr "nome do peso não terminado" -+#: timezone/zic.c:1448 -+msgid "illegal CORRECTION field on Leap line" -+msgstr "Campo CORRECTION ilegal em linha Leap (ajuste)" - --#: locale/programs/charset.c:104 --msgid "upper limit in range is not smaller then lower limit" --msgstr "o limite inferior do intervalo é maior que o limite superior" -+#: timezone/zic.c:1453 -+msgid "illegal Rolling/Stationary field on Leap line" -+msgstr "campo Rolling/Stationary ilegal em linha Leap (ajuste)" - --#: sunrpc/rpc_main.c:1415 --#, c-format --msgid "usage: %s infile\n" --msgstr "uso: %s arquivo_entrada\n" -+#: timezone/zic.c:1459 -+msgid "leap second precedes Big Bang" -+msgstr "segundo bissexto precede Big Bang" - --#: timezone/zic.c:2081 --msgid "use of 2/29 in non leap-year" --msgstr "use 2/29 em ano não bissexto" -+#: timezone/zic.c:1472 -+msgid "wrong number of fields on Link line" -+msgstr "número incorreto de campos na linha Link" - --#: locale/programs/charmap.c:522 locale/programs/charmap.c:576 --#, c-format --msgid "value for %s must be an integer" --msgstr "valor para %s deve ser um inteiro" -+#: timezone/zic.c:1476 -+msgid "blank FROM field on Link line" -+msgstr "campo FROM em branco na linha Link" - --#: locale/programs/charmap.c:318 --#, c-format --msgid "value for <%s> must lie between 1 and 4" --msgstr "valor para <%s> deve estar entre 1 e 4" -+#: timezone/zic.c:1551 -+msgid "invalid starting year" -+msgstr "ano inicial inválido" - --#: locale/programs/ld-monetary.c:157 locale/programs/ld-numeric.c:92 --#, c-format --msgid "value for field `%s' in category `%s' must not be the empty string" --msgstr "valor para campo `%s', categoria `%s', não deve ser uma string vazia" -+#: timezone/zic.c:1573 -+msgid "invalid ending year" -+msgstr "ano final inválido" - --#: locale/programs/charmap.c:330 --msgid "value of must be greater than the value of " --msgstr "o valor de deve ser maior que o valor de " -+#: timezone/zic.c:1577 -+msgid "starting year greater than ending year" -+msgstr "ano inicial maior que ano final" - --#: locale/programs/ld-monetary.c:147 --msgid "value of field `int_curr_symbol' in category `LC_MONETARY' does not correspond to a valid name in ISO 4217" --msgstr "o valor do campo `int_curr_symbol' na categoria `LC_MONETARY' não corresponde a um nome válido na ISO 4217" -+#: timezone/zic.c:1584 -+msgid "typed single year" -+msgstr "digitado ano simples" - --#: locale/programs/ld-monetary.c:139 --msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length" --msgstr "o valor do campo `int_curr_symbol' na categoria `LC_MONETARY' possui tamanho errado" -+#: timezone/zic.c:1619 -+msgid "invalid weekday name" -+msgstr "nome de dia de semana inválido" - --#: locale/programs/ld-monetary.c:383 locale/programs/ld-numeric.c:207 -+#: timezone/zic.c:1743 - #, c-format --msgid "values for field `%s' in category `%s' must be smaller than 127" --msgstr "os valores para o campo `%s' na categoria `%s' devem ser menores que 127" -+msgid "reference clients mishandle more than %d transition times" -+msgstr "clientes de referência lidam incorretamente com mais %d tempos de transição" - --#: nscd/connections.c:355 --#, c-format --msgid "while accepting connection: %s" --msgstr "enquanto aceitando conecção: %s" -+#: timezone/zic.c:1747 -+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" - --#: nscd/grpcache.c:149 nscd/hstcache.c:168 nscd/pwdcache.c:142 --msgid "while allocating cache entry" --msgstr "enquanto alocando entrada de cache" -+#: timezone/zic.c:1858 -+msgid "too many transition times" -+msgstr "tempos de transição em excesso" - --#: nscd/cache.c:85 --msgid "while allocating hash table entry" --msgstr "enquanto alocando entrada na tabela hash" -+#: timezone/zic.c:2047 -+#, c-format -+msgid "%%z UTC offset magnitude exceeds 99:59:59" -+msgstr "a magnitude do deslocamento de %%z UTC excede 99:59:59" - --#: nscd/grpcache.c:99 nscd/hstcache.c:109 nscd/pwdcache.c:105 --msgid "while allocating key copy" --msgstr "enquanto alocando chave cópia" -+#: timezone/zic.c:2424 -+msgid "no POSIX environment variable for zone" -+msgstr "nenhuma variável de ambiente POSIX para o fuso horário" - --#: catgets/gencat.c:1001 --msgid "while opening old catalog file" --msgstr "enquanto abrindo antigo arquivo de catálogo" -+#: timezone/zic.c:2430 -+#, 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" - --#: locale/programs/locale.c:346 --msgid "while preparing output" --msgstr "enquanto preparando saída" -+#: timezone/zic.c:2566 -+msgid "two rules for same instant" -+msgstr "duas regras para o mesmo instante" - --#: db2/makedb.c:365 db2/makedb.c:382 --msgid "while reading database" --msgstr "enquanto lendo database" -+#: timezone/zic.c:2627 -+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" - --#: elf/sprof.c:683 --msgid "while stat'ing profiling data file" --msgstr "enquanto escrevendo arquivo data de dados de perfil" -+#: timezone/zic.c:2725 -+msgid "too many local time types" -+msgstr "tipos de tempo local em excesso" - --#: db2/makedb.c:334 --msgid "while writing database file" --msgstr "enquanto escrevendo arquivo data base" -+#: timezone/zic.c:2729 -+msgid "UT offset out of range" -+msgstr "deslocamento de UT fora da faixa" - --#: nscd/nscd_stat.c:115 --msgid "write incomplete" --msgstr "escrita incompleta" -+#: timezone/zic.c:2753 -+msgid "too many leap seconds" -+msgstr "número excessivo de segundos bissextos" - --#: inet/rcmd.c:320 --msgid "writeable by other than owner" --msgstr "permissão de escrita para outros" -+#: timezone/zic.c:2759 -+msgid "repeated leap second moment" -+msgstr "momento de segundo bissexto repetido" - --#: db2/makedb.c:124 nscd/nscd.c:114 nss/getent.c:392 --msgid "wrong number of arguments" --msgstr "número incorreto de argumentos" -+#: timezone/zic.c:2830 -+msgid "Wild result from command execution" -+msgstr "Resultado insensato da execução do comando" - --#: timezone/zic.c:1090 --msgid "wrong number of fields on Leap line" --msgstr "número incorreto de campos na linha Leap" -+#: timezone/zic.c:2831 -+#, c-format -+msgid "%s: command was '%s', result was %d\n" -+msgstr "%s: comando era “%s”, resultado era %d\n" - --#: timezone/zic.c:1181 --msgid "wrong number of fields on Link line" --msgstr "número incorreto de campos na linha Link" -+#: timezone/zic.c:2961 -+msgid "Odd number of quotation marks" -+msgstr "Número ímpar de aspas" - --#: timezone/zic.c:924 --msgid "wrong number of fields on Rule line" --msgstr "número incorreto de campos na linha Rule" -+#: timezone/zic.c:3046 -+msgid "use of 2/29 in non leap-year" -+msgstr "uso de 2/29 em ano não bissexto" - --#: timezone/zic.c:994 --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:3081 -+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:952 --msgid "wrong number of fields on Zone line" --msgstr "número incorreto de campos na linha Zone" -+#: timezone/zic.c:3108 -+msgid "time zone abbreviation has fewer than 3 characters" -+msgstr "abreviação de fuso horário possui menos de 3 caracteres" - --#: sunrpc/xdr_ref.c:84 --msgid "xdr_reference: out of memory\n" --msgstr "xdr_reference: não há memória suficiente\n" -+#: timezone/zic.c:3110 -+msgid "time zone abbreviation has too many characters" -+msgstr "abreviação de fuso horário possui um número excessivo de caracteres" - --#: sunrpc/xdr_rec.c:151 sunrpc/xdr_rec.c:166 --msgid "xdrrec_create: out of memory\n" --msgstr "xdrrec_create: não há memória suficiente\n" -+#: timezone/zic.c:3112 -+msgid "time zone abbreviation differs from POSIX standard" -+msgstr "abreviação de fuso horário difere do padrão POSIX" - --#: nis/ypclnt.c:884 --msgid "yp_update: cannot convert host to netname\n" --msgstr "yp_update: não é possível converter host para netname\n" -+#: timezone/zic.c:3118 -+msgid "too many, or too long, time zone abbreviations" -+msgstr "abreviações de fuso horário em excesso ou muito extensas" - --#: nis/ypclnt.c:896 --msgid "yp_update: cannot get server address\n" --msgstr "yp_update: não é possível obter o endereço do servidor\n" -+#: timezone/zic.c:3161 -+#, c-format -+msgid "%s: Can't create directory %s: %s" -+msgstr "%s: Não foi possível criar o diretório %s: %s" -diff --git a/posix/Makefile b/posix/Makefile -index 83b3d7418c..0fb280ba69 100644 ---- a/posix/Makefile -+++ b/posix/Makefile -@@ -95,10 +95,10 @@ tests := test-errno tstgetopt testfnm runtests runptests \ - 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 -+ tst-glob-tilde tst-spawn4 - tests-internal := bug-regex5 bug-regex20 bug-regex33 \ - tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \ -- tst-glob_lstat_compat -+ tst-glob_lstat_compat tst-spawn4-compat - xtests := bug-ga2 tst-getaddrinfo4 tst-getaddrinfo5 - ifeq (yes,$(build-shared)) - test-srcs := globtest -diff --git a/posix/execvpe.c b/posix/execvpe.c -index 859c0f69bf..ea67d19fcd 100644 ---- a/posix/execvpe.c -+++ b/posix/execvpe.c -@@ -67,11 +67,9 @@ maybe_script_execute (const char *file, char *const argv[], char *const envp[]) - __execve (new_argv[0], new_argv, envp); - } - -- --/* Execute FILE, searching in the `PATH' environment variable if it contains -- no slashes, with arguments ARGV and environment from ENVP. */ --int --__execvpe (const char *file, char *const argv[], char *const envp[]) -+static int -+__execvpe_common (const char *file, char *const argv[], char *const envp[], -+ bool exec_script) - { - /* We check the simple case first. */ - if (*file == '\0') -@@ -85,7 +83,7 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) - { - __execve (file, argv, envp); - -- if (errno == ENOEXEC) -+ if (errno == ENOEXEC && exec_script) - maybe_script_execute (file, argv, envp); - - return -1; -@@ -137,7 +135,7 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) - - __execve (buffer, argv, envp); - -- if (errno == ENOEXEC) -+ if (errno == ENOEXEC && exec_script) - /* This has O(P*C) behavior, where P is the length of the path and C - is the argument count. A better strategy would be allocate the - substitute argv and reuse it each time through the loop (so it -@@ -184,4 +182,18 @@ __execvpe (const char *file, char *const argv[], char *const envp[]) - return -1; - } - -+/* Execute FILE, searching in the `PATH' environment variable if it contains -+ no slashes, with arguments ARGV and environment from ENVP. */ -+int -+__execvpe (const char *file, char *const argv[], char *const envp[]) -+{ -+ return __execvpe_common (file, argv, envp, true); -+} - weak_alias (__execvpe, execvpe) -+ -+/* Same as __EXECVPE, but does not try to execute NOEXEC files. */ -+int -+__execvpex (const char *file, char *const argv[], char *const envp[]) -+{ -+ return __execvpe_common (file, argv, envp, false); -+} -diff --git a/posix/regexec.c b/posix/regexec.c -index 4b1ab4ecff..21129432d1 100644 ---- a/posix/regexec.c -+++ b/posix/regexec.c -@@ -3848,30 +3848,27 @@ check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, - indirect = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); - int32_t idx = findidx (table, indirect, extra, &cp, elem_len); -+ int32_t rule = idx >> 24; -+ idx &= 0xffffff; - if (idx > 0) -- for (i = 0; i < cset->nequiv_classes; ++i) -- { -- int32_t equiv_class_idx = cset->equiv_classes[i]; -- size_t weight_len = weights[idx & 0xffffff]; -- if (weight_len == weights[equiv_class_idx & 0xffffff] -- && (idx >> 24) == (equiv_class_idx >> 24)) -- { -- int cnt = 0; -- -- idx &= 0xffffff; -- equiv_class_idx &= 0xffffff; -- -- while (cnt <= weight_len -- && (weights[equiv_class_idx + 1 + cnt] -- == weights[idx + 1 + cnt])) -- ++cnt; -- if (cnt > weight_len) -- { -- match_len = elem_len; -- goto check_node_accept_bytes_match; -- } -- } -- } -+ { -+ size_t weight_len = weights[idx]; -+ for (i = 0; i < cset->nequiv_classes; ++i) -+ { -+ int32_t equiv_class_idx = cset->equiv_classes[i]; -+ int32_t equiv_class_rule = equiv_class_idx >> 24; -+ equiv_class_idx &= 0xffffff; -+ if (weights[equiv_class_idx] == weight_len -+ && equiv_class_rule == rule -+ && memcmp (weights + idx + 1, -+ weights + equiv_class_idx + 1, -+ weight_len) == 0) -+ { -+ match_len = elem_len; -+ goto check_node_accept_bytes_match; -+ } -+ } -+ } - } - } - else -diff --git a/posix/tst-glob_lstat_compat.c b/posix/tst-glob_lstat_compat.c -index c46bc9e578..22cd1f02f9 100644 ---- a/posix/tst-glob_lstat_compat.c -+++ b/posix/tst-glob_lstat_compat.c -@@ -35,7 +35,14 @@ - #if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) - - __typeof (glob) glob; -+/* On alpha glob exists in version GLIBC_2_0, GLIBC_2_1, and GLIBC_2_27. -+ This test needs to access the version prior to GLIBC_2_27, which is -+ GLIBC_2_1 on alpha, GLIBC_2_0 elsewhere. */ -+# ifdef __alpha__ -+compat_symbol_reference (libc, glob, glob, GLIBC_2_1); -+# else - compat_symbol_reference (libc, glob, glob, GLIBC_2_0); -+# endif - - /* Compat glob should not call gl_lstat since for some old binaries it - might be unitialized (for instance GNUmake). Check if it is indeed -diff --git a/posix/tst-rfc3484-2.c b/posix/tst-rfc3484-2.c -index f509534ca9..8c64ac59ff 100644 ---- a/posix/tst-rfc3484-2.c -+++ b/posix/tst-rfc3484-2.c -@@ -58,6 +58,7 @@ _res_hconf_init (void) - #undef USE_NSCD - #include "../sysdeps/posix/getaddrinfo.c" - -+service_user *__nss_hosts_database attribute_hidden; - - /* This is the beginning of the real test code. The above defines - (among other things) the function rfc3484_sort. */ -diff --git a/posix/tst-rfc3484-3.c b/posix/tst-rfc3484-3.c -index ae44087a10..1c61aaf844 100644 ---- a/posix/tst-rfc3484-3.c -+++ b/posix/tst-rfc3484-3.c -@@ -58,6 +58,7 @@ _res_hconf_init (void) - #undef USE_NSCD - #include "../sysdeps/posix/getaddrinfo.c" - -+service_user *__nss_hosts_database attribute_hidden; - - /* This is the beginning of the real test code. The above defines - (among other things) the function rfc3484_sort. */ -diff --git a/posix/tst-rfc3484.c b/posix/tst-rfc3484.c -index 7f191abbbc..8f45848e44 100644 ---- a/posix/tst-rfc3484.c -+++ b/posix/tst-rfc3484.c -@@ -58,6 +58,7 @@ _res_hconf_init (void) - #undef USE_NSCD - #include "../sysdeps/posix/getaddrinfo.c" - -+service_user *__nss_hosts_database attribute_hidden; - - /* This is the beginning of the real test code. The above defines - (among other things) the function rfc3484_sort. */ -diff --git a/posix/tst-spawn4-compat.c b/posix/tst-spawn4-compat.c -new file mode 100644 -index 0000000000..11f654b913 ---- /dev/null -+++ b/posix/tst-spawn4-compat.c -@@ -0,0 +1,77 @@ -+/* Check if posix_spawn does handle correctly ENOEXEC files. -+ 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 -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include -+#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_15) -+ -+compat_symbol_reference (libc, posix_spawn, posix_spawn, GLIBC_2_2); -+compat_symbol_reference (libc, posix_spawnp, posix_spawnp, GLIBC_2_2); -+ -+static int -+do_test (void) -+{ -+ char *scriptname; -+ int fd = create_temp_file ("tst-spawn4.", &scriptname); -+ TEST_VERIFY_EXIT (fd >= 0); -+ -+ const char script[] = "exit 65"; -+ xwrite (fd, script, sizeof (script) - 1); -+ xclose (fd); -+ -+ TEST_VERIFY_EXIT (chmod (scriptname, 0x775) == 0); -+ -+ pid_t pid; -+ int status; -+ -+ /* For compat symbol it verifies that trying to issued a shell script -+ without a shebang is correctly executed. */ -+ status = posix_spawn (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, -+ (char *[]) { 0 }); -+ TEST_VERIFY_EXIT (status == 0); -+ -+ TEST_VERIFY_EXIT (waitpid (pid, &status, 0) == pid); -+ TEST_VERIFY_EXIT (WIFEXITED (status) == 1 && WEXITSTATUS (status) == 65); -+ -+ status = posix_spawnp (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, -+ (char *[]) { 0 }); -+ TEST_VERIFY_EXIT (status == 0); -+ -+ TEST_VERIFY_EXIT (waitpid (pid, &status, 0) == pid); -+ TEST_VERIFY_EXIT (WIFEXITED (status) == 1 && WEXITSTATUS (status) == 65); -+ -+ return 0; -+} -+#else -+static int -+do_test (void) -+{ -+ return 77; -+} -+#endif -+ -+#include -diff --git a/posix/tst-spawn4.c b/posix/tst-spawn4.c -new file mode 100644 -index 0000000000..e4a1fa3f00 ---- /dev/null -+++ b/posix/tst-spawn4.c -@@ -0,0 +1,56 @@ -+/* Check if posix_spawn does handle correctly ENOEXEC files. -+ 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 -+ . */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ char *scriptname; -+ int fd = create_temp_file ("tst-spawn4.", &scriptname); -+ TEST_VERIFY_EXIT (fd >= 0); -+ -+ const char script[] = "echo it should not happen"; -+ xwrite (fd, script, sizeof (script) - 1); -+ xclose (fd); -+ -+ TEST_VERIFY_EXIT (chmod (scriptname, 0x775) == 0); -+ -+ pid_t pid; -+ int status; -+ -+ /* Check if scripts without shebang are correctly not executed. */ -+ status = posix_spawn (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, -+ (char *[]) { 0 }); -+ TEST_VERIFY_EXIT (status == ENOEXEC); -+ -+ status = posix_spawnp (&pid, scriptname, NULL, NULL, (char *[]) { 0 }, -+ (char *[]) { 0 }); -+ TEST_VERIFY_EXIT (status == ENOEXEC); -+ -+ return 0; -+} -+ -+#include -diff --git a/resolv/gai_misc.c b/resolv/gai_misc.c -index e7c3b63cc5..80a2cff835 100644 ---- a/resolv/gai_misc.c -+++ b/resolv/gai_misc.c -@@ -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; -diff --git a/resolv/res_send.c b/resolv/res_send.c -index dde0425a33..9e9541789b 100644 ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -471,6 +471,11 @@ __res_context_send (struct resolv_context *ctx, - '\0', - sizeof (struct sockaddr_in6) - - sizeof (struct sockaddr_in)); -+ else -+ { -+ __set_errno (ENOMEM); -+ return -1; -+ } - } - EXT(statp).nscount = statp->nscount; - } -@@ -1152,25 +1157,27 @@ send_dg(res_state statp, - if (have_sendmmsg >= 0 && nwritten == 0 && buf2 != NULL - && !single_request) - { -- struct iovec iov[2]; -- struct mmsghdr reqs[2]; -- reqs[0].msg_hdr.msg_name = NULL; -- reqs[0].msg_hdr.msg_namelen = 0; -- reqs[0].msg_hdr.msg_iov = &iov[0]; -- reqs[0].msg_hdr.msg_iovlen = 1; -- iov[0].iov_base = (void *) buf; -- iov[0].iov_len = buflen; -- reqs[0].msg_hdr.msg_control = NULL; -- reqs[0].msg_hdr.msg_controllen = 0; -- -- reqs[1].msg_hdr.msg_name = NULL; -- reqs[1].msg_hdr.msg_namelen = 0; -- reqs[1].msg_hdr.msg_iov = &iov[1]; -- reqs[1].msg_hdr.msg_iovlen = 1; -- iov[1].iov_base = (void *) buf2; -- iov[1].iov_len = buflen2; -- reqs[1].msg_hdr.msg_control = NULL; -- reqs[1].msg_hdr.msg_controllen = 0; -+ struct iovec iov = -+ { .iov_base = (void *) buf, .iov_len = buflen }; -+ struct iovec iov2 = -+ { .iov_base = (void *) buf2, .iov_len = buflen2 }; -+ struct mmsghdr reqs[2] = -+ { -+ { -+ .msg_hdr = -+ { -+ .msg_iov = &iov, -+ .msg_iovlen = 1, -+ }, -+ }, -+ { -+ .msg_hdr = -+ { -+ .msg_iov = &iov2, -+ .msg_iovlen = 1, -+ } -+ }, -+ }; - - int ndg = __sendmmsg (pfd[0].fd, reqs, 2, MSG_NOSIGNAL); - if (__glibc_likely (ndg == 2)) -diff --git a/resolv/tst-resolv-network.c b/resolv/tst-resolv-network.c -index 4b862d57e6..735e38d0f8 100644 ---- a/resolv/tst-resolv-network.c -+++ b/resolv/tst-resolv-network.c -@@ -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/signal/Makefile b/signal/Makefile -index a9b99a20be..aa63434f47 100644 ---- a/signal/Makefile -+++ b/signal/Makefile -@@ -46,7 +46,7 @@ routines := signal raise killpg \ - sighold sigrelse sigignore sigset - - tests := tst-signal tst-sigset tst-sigsimple tst-raise tst-sigset2 \ -- tst-sigwait-eintr \ -+ tst-sigwait-eintr tst-sigaction \ - - include ../Rules - -diff --git a/signal/tst-sigaction.c b/signal/tst-sigaction.c -new file mode 100644 -index 0000000000..c908e8f6f6 ---- /dev/null -+++ b/signal/tst-sigaction.c -@@ -0,0 +1,56 @@ -+/* Test sigaction regression for BZ #23069. -+ 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 -+ . */ -+ -+#include -+#include -+ -+#include -+ -+static void -+my_sig_handler (int signum) -+{ -+} -+ -+static int -+do_test (void) -+{ -+ /* Define a simple signal handler */ -+ struct sigaction act; -+ act.sa_handler = my_sig_handler; -+ act.sa_flags = 0; -+ sigemptyset (&act.sa_mask); -+ -+ /* Set it as SIGUSR1 signal handler */ -+ TEST_VERIFY_EXIT (sigaction (SIGUSR1, &act, NULL) == 0); -+ -+ /* Get SIGUSR1 signal handler */ -+ TEST_VERIFY_EXIT (sigaction (SIGUSR1, NULL, &act) == 0); -+ -+ /* Check it is consistent with the defined one */ -+ TEST_VERIFY (act.sa_handler == my_sig_handler); -+ TEST_VERIFY (!(act.sa_flags & SA_RESETHAND)); -+ -+ for (int i = 1; i < _NSIG; i++) -+ { -+ TEST_VERIFY (!sigismember (&act.sa_mask, i)); -+ } -+ -+ return 0; -+} -+ -+#include -diff --git a/stdio-common/tst-printf.c b/stdio-common/tst-printf.c -index d73f0cc34e..70d9e584b3 100644 ---- a/stdio-common/tst-printf.c -+++ b/stdio-common/tst-printf.c -@@ -69,77 +69,7 @@ fmtst2chk (const char *fmt) - (void) printf(fmt, 4, 4, 0x12); - (void) printf("'\n"); - } -- --/* This page is covered by the following copyright: */ -- --/* (C) Copyright C E Chew -- * -- * Feel free to copy, use and distribute this software provided: -- * -- * 1. you do not pretend that you wrote it -- * 2. you leave this copyright notice intact. -- */ -- --/* -- * Extracted from exercise.c for glibc-1.05 bug report by Bruce Evans. -- */ -- --#define DEC -123 --#define INT 255 --#define UNS (~0) - --/* Formatted Output Test -- * -- * This exercises the output formatting code. -- */ -- --static void --fp_test (void) --{ -- int i, j, k, l; -- char buf[7]; -- char *prefix = buf; -- char tp[20]; -- -- puts("\nFormatted output test"); -- printf("prefix 6d 6o 6x 6X 6u\n"); -- strcpy(prefix, "%"); -- for (i = 0; i < 2; i++) { -- for (j = 0; j < 2; j++) { -- for (k = 0; k < 2; k++) { -- for (l = 0; l < 2; l++) { -- strcpy(prefix, "%"); -- if (i == 0) strcat(prefix, "-"); -- if (j == 0) strcat(prefix, "+"); -- if (k == 0) strcat(prefix, "#"); -- if (l == 0) strcat(prefix, "0"); -- printf("%5s |", prefix); -- strcpy(tp, prefix); -- strcat(tp, "6d |"); -- printf(tp, DEC); -- strcpy(tp, prefix); -- strcat(tp, "6o |"); -- printf(tp, INT); -- strcpy(tp, prefix); -- strcat(tp, "6x |"); -- printf(tp, INT); -- strcpy(tp, prefix); -- strcat(tp, "6X |"); -- printf(tp, INT); -- strcpy(tp, prefix); -- strcat(tp, "6u |"); -- printf(tp, UNS); -- printf("\n"); -- } -- } -- } -- } -- printf("%10s\n", (char *) NULL); -- printf("%-10s\n", (char *) NULL); -- printf("%.8f\n", DBL_MAX); -- printf("%.8f\n", -DBL_MAX); --} -- - static int - do_test (void) - { -@@ -239,8 +169,8 @@ I am ready for my first lesson today."; - snprintf(buf2, sizeof(buf2), "%.999999u", 10)); - } - -- fp_test (); -- -+ printf("%.8f\n", DBL_MAX); -+ printf("%.8f\n", -DBL_MAX); - printf ("%e should be 1.234568e+06\n", 1234567.8); - printf ("%f should be 1234567.800000\n", 1234567.8); - printf ("%g should be 1.23457e+06\n", 1234567.8); -diff --git a/stdio-common/tst-printf.sh b/stdio-common/tst-printf.sh -index 93bfe03c6f..b543cc646c 100644 ---- a/stdio-common/tst-printf.sh -+++ b/stdio-common/tst-printf.sh -@@ -105,27 +105,6 @@ something really insane: 1.00000000000000000000000000000000000000000000000000000 - | 123456.0000| 1.2346e+05| 1.235e+05| - snprintf ("%30s", "foo") == 30, " " - snprintf ("%.999999u", 10) == 999999 -- --Formatted output test --prefix 6d 6o 6x 6X 6u --%-+#0 |-123 |0377 |0xff |0XFF |4294967295 | -- %-+# |-123 |0377 |0xff |0XFF |4294967295 | -- %-+0 |-123 |377 |ff |FF |4294967295 | -- %-+ |-123 |377 |ff |FF |4294967295 | -- %-#0 |-123 |0377 |0xff |0XFF |4294967295 | -- %-# |-123 |0377 |0xff |0XFF |4294967295 | -- %-0 |-123 |377 |ff |FF |4294967295 | -- %- |-123 |377 |ff |FF |4294967295 | -- %+#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 | -- %+# | -123 | 0377 | 0xff | 0XFF |4294967295 | -- %+0 |-00123 |000377 |0000ff |0000FF |4294967295 | -- %+ | -123 | 377 | ff | FF |4294967295 | -- %#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 | -- %# | -123 | 0377 | 0xff | 0XFF |4294967295 | -- %0 |-00123 |000377 |0000ff |0000FF |4294967295 | -- % | -123 | 377 | ff | FF |4294967295 | -- (null) --(null) - 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000 - -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000 - 1.234568e+06 should be 1.234568e+06 -@@ -225,27 +204,6 @@ something really insane: 1.00000000000000000000000000000000000000000000000000000 - | 123456.0000| 1.2346e+05| 1.235e+05| - snprintf ("%30s", "foo") == 30, " " - snprintf ("%.999999u", 10) == 999999 -- --Formatted output test --prefix 6d 6o 6x 6X 6u --%-+#0 |-123 |0377 |0xff |0XFF |4294967295 | -- %-+# |-123 |0377 |0xff |0XFF |4294967295 | -- %-+0 |-123 |377 |ff |FF |4294967295 | -- %-+ |-123 |377 |ff |FF |4294967295 | -- %-#0 |-123 |0377 |0xff |0XFF |4294967295 | -- %-# |-123 |0377 |0xff |0XFF |4294967295 | -- %-0 |-123 |377 |ff |FF |4294967295 | -- %- |-123 |377 |ff |FF |4294967295 | -- %+#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 | -- %+# | -123 | 0377 | 0xff | 0XFF |4294967295 | -- %+0 |-00123 |000377 |0000ff |0000FF |4294967295 | -- %+ | -123 | 377 | ff | FF |4294967295 | -- %#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 | -- %# | -123 | 0377 | 0xff | 0XFF |4294967295 | -- %0 |-00123 |000377 |0000ff |0000FF |4294967295 | -- % | -123 | 377 | ff | FF |4294967295 | -- (null) --(null) - 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000 - -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00000000 - 1.234568e+06 should be 1.234568e+06 -diff --git a/stdlib/Makefile b/stdlib/Makefile -index 7c363a6e4d..a9ad849531 100644 ---- a/stdlib/Makefile -+++ b/stdlib/Makefile -@@ -84,7 +84,7 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ - tst-cxa_atexit tst-on_exit test-atexit-race \ - test-at_quick_exit-race test-cxa_atexit-race \ - test-on_exit-race test-dlclose-exit-race \ -- tst-makecontext-align -+ tst-makecontext-align test-bz22786 - - tests-internal := tst-strtod1i tst-strtod3 tst-strtod4 tst-strtod5i \ - tst-tls-atexit tst-tls-atexit-nodelete -diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c -index 30825a91b8..432fc82b4a 100644 ---- a/stdlib/canonicalize.c -+++ b/stdlib/canonicalize.c -@@ -181,7 +181,7 @@ __realpath (const char *name, char *resolved) - extra_buf = __alloca (path_max); - - len = strlen (end); -- if ((long int) (n + len) >= path_max) -+ if (path_max - n <= len) - { - __set_errno (ENAMETOOLONG); - goto error; -diff --git a/stdlib/random_r.c b/stdlib/random_r.c -index 4d2f0d472f..b47c65c6d7 100644 ---- a/stdlib/random_r.c -+++ b/stdlib/random_r.c -@@ -361,8 +361,7 @@ __random_r (struct random_data *buf, int32_t *result) - - if (buf->rand_type == TYPE_0) - { -- int32_t val = state[0]; -- val = ((state[0] * 1103515245) + 12345) & 0x7fffffff; -+ int32_t val = ((state[0] * 1103515245U) + 12345U) & 0x7fffffff; - state[0] = val; - *result = val; - } -@@ -371,11 +370,11 @@ __random_r (struct random_data *buf, int32_t *result) - int32_t *fptr = buf->fptr; - int32_t *rptr = buf->rptr; - int32_t *end_ptr = buf->end_ptr; -- int32_t val; -+ uint32_t val; - -- val = *fptr += *rptr; -+ val = *fptr += (uint32_t) *rptr; - /* Chucking least random bit. */ -- *result = (val >> 1) & 0x7fffffff; -+ *result = val >> 1; - ++fptr; - if (fptr >= end_ptr) - { -diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c -new file mode 100644 -index 0000000000..e7837f98c1 ---- /dev/null -+++ b/stdlib/test-bz22786.c -@@ -0,0 +1,90 @@ -+/* Bug 22786: test for buffer overflow in realpath. -+ 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 -+ . */ -+ -+/* This file must be run from within a directory called "stdlib". */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+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; -+ -+ if (path == NULL) -+ { -+ printf ("malloc (%zu): %m\n", path_len); -+ return EXIT_UNSUPPORTED; -+ } -+ -+ /* Construct very long path = "bz22786/symlink/aaaa....." */ -+ char *p = mempcpy (path, lnk, sizeof (lnk) - 1); -+ *(p++) = '/'; -+ memset (p, 'a', path_len - (path - p) - 2); -+ p[path_len - (path - p) - 1] = '\0'; -+ -+ /* This call crashes before the fix for bz22786 on 32-bit platforms. */ -+ p = realpath (path, NULL); -+ -+ if (p != NULL || errno != ENAMETOOLONG) -+ { -+ printf ("realpath: %s (%m)", p); -+ return EXIT_FAILURE; -+ } -+ -+ /* Cleanup. */ -+ unlink (lnk); -+ rmdir (dir); -+ -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test -+#include -diff --git a/string/test-memcpy.c b/string/test-memcpy.c -index 45f20a6d80..3c8066da52 100644 ---- a/string/test-memcpy.c -+++ b/string/test-memcpy.c -@@ -212,6 +212,50 @@ do_random_tests (void) - } - } - -+static void -+do_test1 (void) -+{ -+ size_t size = 0x100000; -+ void *large_buf; -+ -+ large_buf = mmap (NULL, size * 2 + page_size, PROT_READ | PROT_WRITE, -+ MAP_PRIVATE | MAP_ANON, -1, 0); -+ if (large_buf == MAP_FAILED) -+ { -+ puts ("Failed to allocat large_buf, skipping do_test1"); -+ return; -+ } -+ -+ if (mprotect (large_buf + size, page_size, PROT_NONE)) -+ error (EXIT_FAILURE, errno, "mprotect failed"); -+ -+ size_t arrary_size = size / sizeof (uint32_t); -+ uint32_t *dest = large_buf; -+ uint32_t *src = large_buf + size + page_size; -+ size_t i; -+ -+ for (i = 0; i < arrary_size; i++) -+ src[i] = (uint32_t) i; -+ -+ FOR_EACH_IMPL (impl, 0) -+ { -+ memset (dest, -1, size); -+ CALL (impl, (char *) dest, (char *) src, size); -+ for (i = 0; i < arrary_size; i++) -+ if (dest[i] != src[i]) -+ { -+ error (0, 0, -+ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", -+ impl->name, dest, src, i); -+ ret = 1; -+ break; -+ } -+ } -+ -+ munmap ((void *) dest, size); -+ munmap ((void *) src, size); -+} -+ - int - test_main (void) - { -@@ -253,6 +297,9 @@ test_main (void) - do_test (0, 0, getpagesize ()); - - do_random_tests (); -+ -+ do_test1 (); -+ - return ret; - } - -diff --git a/string/test-memmove.c b/string/test-memmove.c -index edc7a4c3bf..64e3651ba4 100644 ---- a/string/test-memmove.c -+++ b/string/test-memmove.c -@@ -24,6 +24,7 @@ - # define TEST_NAME "memmove" - #endif - #include "test-string.h" -+#include - - char *simple_memmove (char *, const char *, size_t); - -@@ -245,6 +246,60 @@ do_random_tests (void) - } - } - -+static void -+do_test2 (void) -+{ -+ size_t size = 0x20000000; -+ uint32_t * large_buf; -+ -+ large_buf = mmap ((void*) 0x70000000, size, PROT_READ | PROT_WRITE, -+ MAP_PRIVATE | MAP_ANON, -1, 0); -+ -+ if (large_buf == MAP_FAILED) -+ error (EXIT_UNSUPPORTED, errno, "Large mmap failed"); -+ -+ if ((uintptr_t) large_buf > 0x80000000 - 128 -+ || 0x80000000 - (uintptr_t) large_buf > 0x20000000) -+ { -+ error (0, 0, "Large mmap allocated improperly"); -+ ret = EXIT_UNSUPPORTED; -+ munmap ((void *) large_buf, size); -+ return; -+ } -+ -+ size_t bytes_move = 0x80000000 - (uintptr_t) large_buf; -+ size_t arr_size = bytes_move / sizeof (uint32_t); -+ size_t i; -+ -+ FOR_EACH_IMPL (impl, 0) -+ { -+ for (i = 0; i < arr_size; i++) -+ large_buf[i] = (uint32_t) i; -+ -+ uint32_t * dst = &large_buf[33]; -+ -+#ifdef TEST_BCOPY -+ CALL (impl, (char *) large_buf, (char *) dst, bytes_move); -+#else -+ CALL (impl, (char *) dst, (char *) large_buf, bytes_move); -+#endif -+ -+ for (i = 0; i < arr_size; i++) -+ { -+ if (dst[i] != (uint32_t) i) -+ { -+ error (0, 0, -+ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", -+ impl->name, dst, large_buf, i); -+ ret = 1; -+ break; -+ } -+ } -+ } -+ -+ munmap ((void *) large_buf, size); -+} -+ - int - test_main (void) - { -@@ -284,6 +339,9 @@ test_main (void) - } - - do_random_tests (); -+ -+ do_test2 (); -+ - return ret; - } - -diff --git a/string/test-mempcpy.c b/string/test-mempcpy.c -index c08fba895e..d98ecdd2d9 100644 ---- a/string/test-mempcpy.c -+++ b/string/test-mempcpy.c -@@ -18,6 +18,7 @@ - . */ - - #define MEMCPY_RESULT(dst, len) (dst) + (len) -+#define MIN_PAGE_SIZE 131072 - #define TEST_MAIN - #define TEST_NAME "mempcpy" - #include "test-string.h" -diff --git a/sunrpc/rpc_common.c b/sunrpc/rpc_common.c -index 710191163c..2d42827a87 100644 ---- a/sunrpc/rpc_common.c -+++ b/sunrpc/rpc_common.c -@@ -46,7 +46,14 @@ - the variable is declared. So we use the section attribute. */ - struct opaque_auth _null_auth __attribute__ ((nocommon)); - libc_hidden_nolink_sunrpc (_null_auth, GLIBC_2_0) --fd_set svc_fdset; --struct rpc_createerr rpc_createerr; --struct pollfd *svc_pollfd; --int svc_max_pollfd; -+ -+/* The variables need the nocommon attribute, so that it is possible -+ to create aliases and specify symbol versions. */ -+fd_set svc_fdset __attribute__ ((nocommon)); -+libc_hidden_nolink_sunrpc (svc_fdset, GLIBC_2_0) -+struct rpc_createerr rpc_createerr __attribute__ ((nocommon)); -+libc_hidden_nolink_sunrpc (rpc_createerr, GLIBC_2_0) -+struct pollfd *svc_pollfd __attribute__ ((nocommon)); -+libc_hidden_nolink_sunrpc (svc_pollfd, GLIBC_2_2) -+int svc_max_pollfd __attribute__ ((nocommon)); -+libc_hidden_nolink_sunrpc (svc_max_pollfd, GLIBC_2_2) -diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c -index f99a5a324f..9ce4804239 100644 ---- a/sunrpc/svcauth_des.c -+++ b/sunrpc/svcauth_des.c -@@ -87,16 +87,21 @@ static void cache_ref (uint32_t sid); /* note that sid was ref'd */ - - static void invalidate (char *cred); /* invalidate entry in cache */ - --/* -- * cache statistics -- */ -+/* Cache statistics. Accidental historic export without a matching -+ declaration in any header file. */ -+#ifndef SHARED -+static -+#endif - struct - { - u_long ncachehits; /* times cache hit, and is not replay */ - u_long ncachereplays; /* times cache hit, and is replay */ - u_long ncachemisses; /* times cache missed */ - } --svcauthdes_stats; -+svcauthdes_stats __attribute__ ((nocommon)); -+#ifdef SHARED -+compat_symbol (libc, svcauthdes_stats, svcauthdes_stats, GLIBC_2_0); -+#endif - - /* - * Service side authenticator for AUTH_DES -diff --git a/support/Makefile b/support/Makefile -index 1bda81e55e..652d2cdf69 100644 ---- a/support/Makefile -+++ b/support/Makefile -@@ -52,9 +52,12 @@ libsupport-routines = \ - support_format_hostent \ - support_format_netent \ - support_isolate_in_subprocess \ -+ support_openpty \ -+ support_quote_blob \ - support_record_failure \ - support_run_diff \ - support_shared_allocate \ -+ support_test_compare_blob \ - support_test_compare_failure \ - support_write_file_string \ - support_test_main \ -@@ -95,6 +98,9 @@ libsupport-routines = \ - xpthread_barrier_destroy \ - xpthread_barrier_init \ - xpthread_barrier_wait \ -+ xpthread_barrierattr_destroy \ -+ xpthread_barrierattr_init \ -+ xpthread_barrierattr_setpshared \ - xpthread_cancel \ - xpthread_check_return \ - xpthread_cond_wait \ -@@ -150,8 +156,10 @@ tests = \ - tst-support-namespace \ - tst-support_capture_subprocess \ - tst-support_format_dns_packet \ -+ tst-support_quote_blob \ - tst-support_record_failure \ - tst-test_compare \ -+ tst-test_compare_blob \ - tst-xreadlink \ - - ifeq ($(run-built-tests),yes) -diff --git a/support/check.h b/support/check.h -index 2192f38941..b3a4645e92 100644 ---- a/support/check.h -+++ b/support/check.h -@@ -64,6 +64,8 @@ __BEGIN_DECLS - (1, __FILE__, __LINE__, #expr); \ - }) - -+ -+ - int support_print_failure_impl (const char *file, int line, - const char *format, ...) - __attribute__ ((nonnull (1), format (printf, 3, 4))); -@@ -141,6 +143,26 @@ void support_test_compare_failure (const char *file, int line, - int right_size); - - -+/* Compare [LEFT, LEFT + LEFT_LENGTH) with [RIGHT, RIGHT + -+ RIGHT_LENGTH) and report a test failure if the arrays are -+ different. LEFT_LENGTH and RIGHT_LENGTH are measured in bytes. If -+ the length is null, the corresponding pointer is ignored (i.e., it -+ can be NULL). The blobs should be reasonably short because on -+ mismatch, both are printed. */ -+#define TEST_COMPARE_BLOB(left, left_length, right, right_length) \ -+ (support_test_compare_blob (left, left_length, right, right_length, \ -+ __FILE__, __LINE__, \ -+ #left, #left_length, #right, #right_length)) -+ -+void support_test_compare_blob (const void *left, -+ unsigned long int left_length, -+ const void *right, -+ unsigned long int right_length, -+ const char *file, int line, -+ const char *left_exp, const char *left_len_exp, -+ const char *right_exp, -+ const char *right_len_exp); -+ - /* Internal function called by the test driver. */ - int support_report_failure (int status) - __attribute__ ((weak, warn_unused_result)); -diff --git a/support/support.h b/support/support.h -index bc5827ed87..b61fe0735c 100644 ---- a/support/support.h -+++ b/support/support.h -@@ -59,6 +59,12 @@ void support_shared_free (void *); - process on error. */ - void support_write_file_string (const char *path, const char *contents); - -+/* Quote the contents of the byte array starting at BLOB, of LENGTH -+ bytes, 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_blob (const void *blob, size_t length); -+ - /* Error-checking wrapper functions which terminate the process on - error. */ - -diff --git a/support/support_format_addrinfo.c b/support/support_format_addrinfo.c -index c5e00e516a..60d2cc40f6 100644 ---- a/support/support_format_addrinfo.c -+++ b/support/support_format_addrinfo.c -@@ -67,8 +67,6 @@ format_ai_flags (FILE *out, struct addrinfo *ai) - FLAG (AI_ADDRCONFIG); - FLAG (AI_IDN); - FLAG (AI_CANONIDN); -- FLAG (AI_IDN_ALLOW_UNASSIGNED); -- FLAG (AI_IDN_USE_STD3_ASCII_RULES); - FLAG (AI_NUMERICSERV); - #undef FLAG - int remaining = ai->ai_flags & ~flags_printed; -@@ -220,7 +218,11 @@ support_format_addrinfo (struct addrinfo *ai, int ret) - xopen_memstream (&mem); - if (ret != 0) - { -- fprintf (mem.out, "error: %s\n", gai_strerror (ret)); -+ const char *errmsg = gai_strerror (ret); -+ if (strcmp (errmsg, "Unknown error") == 0) -+ fprintf (mem.out, "error: Unknown error %d\n", ret); -+ else -+ fprintf (mem.out, "error: %s\n", errmsg); - if (ret == EAI_SYSTEM) - { - errno = errno_copy; -diff --git a/support/support_openpty.c b/support/support_openpty.c -new file mode 100644 -index 0000000000..ac779ab91e ---- /dev/null -+++ b/support/support_openpty.c -@@ -0,0 +1,109 @@ -+/* Open a pseudoterminal. -+ 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 -+ . */ -+ -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+/* As ptsname, but allocates space for an appropriately-sized string -+ using malloc. */ -+static char * -+xptsname (int fd) -+{ -+ int rv; -+ size_t buf_len = 128; -+ char *buf = xmalloc (buf_len); -+ for (;;) -+ { -+ rv = ptsname_r (fd, buf, buf_len); -+ if (rv) -+ FAIL_EXIT1 ("ptsname_r: %s", strerror (errno)); -+ -+ if (memchr (buf, '\0', buf_len)) -+ return buf; /* ptsname succeeded and the buffer was not truncated */ -+ -+ buf_len *= 2; -+ buf = xrealloc (buf, buf_len); -+ } -+} -+ -+void -+support_openpty (int *a_outer, int *a_inner, char **a_name, -+ const struct termios *termp, -+ const struct winsize *winp) -+{ -+ int outer = -1, inner = -1; -+ char *namebuf = 0; -+ -+ outer = posix_openpt (O_RDWR | O_NOCTTY); -+ if (outer == -1) -+ FAIL_EXIT1 ("posix_openpt: %s", strerror (errno)); -+ -+ if (grantpt (outer)) -+ FAIL_EXIT1 ("grantpt: %s", strerror (errno)); -+ -+ if (unlockpt (outer)) -+ FAIL_EXIT1 ("unlockpt: %s", strerror (errno)); -+ -+ -+#ifdef TIOCGPTPEER -+ inner = ioctl (outer, TIOCGPTPEER, O_RDWR | O_NOCTTY); -+#endif -+ if (inner == -1) -+ { -+ /* The kernel might not support TIOCGPTPEER, fall back to open -+ by name. */ -+ namebuf = xptsname (outer); -+ inner = open (namebuf, O_RDWR | O_NOCTTY); -+ if (inner == -1) -+ FAIL_EXIT1 ("%s: %s", namebuf, strerror (errno)); -+ } -+ -+ if (termp) -+ { -+ if (tcsetattr (inner, TCSAFLUSH, termp)) -+ FAIL_EXIT1 ("tcsetattr: %s", strerror (errno)); -+ } -+#ifdef TIOCSWINSZ -+ if (winp) -+ { -+ if (ioctl (inner, TIOCSWINSZ, winp)) -+ FAIL_EXIT1 ("TIOCSWINSZ: %s", strerror (errno)); -+ } -+#endif -+ -+ if (a_name) -+ { -+ if (!namebuf) -+ namebuf = xptsname (outer); -+ *a_name = namebuf; -+ } -+ else -+ free (namebuf); -+ *a_outer = outer; -+ *a_inner = inner; -+} -diff --git a/support/support_quote_blob.c b/support/support_quote_blob.c -new file mode 100644 -index 0000000000..d6a678d8d6 ---- /dev/null -+++ b/support/support_quote_blob.c -@@ -0,0 +1,83 @@ -+/* Quote a blob so that it can be used in C literals. -+ 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 -+ . */ -+ -+#include -+#include -+ -+char * -+support_quote_blob (const void *blob, size_t length) -+{ -+ struct xmemstream out; -+ xopen_memstream (&out); -+ -+ const unsigned char *p = blob; -+ for (size_t i = 0; i < length; ++i) -+ { -+ unsigned char ch = p[i]; -+ -+ /* Use C backslash escapes for those control characters for -+ which they are defined. */ -+ switch (ch) -+ { -+ case '\a': -+ putc_unlocked ('\\', out.out); -+ putc_unlocked ('a', out.out); -+ break; -+ case '\b': -+ putc_unlocked ('\\', out.out); -+ putc_unlocked ('b', out.out); -+ break; -+ case '\f': -+ putc_unlocked ('\\', out.out); -+ putc_unlocked ('f', out.out); -+ break; -+ case '\n': -+ putc_unlocked ('\\', out.out); -+ putc_unlocked ('n', out.out); -+ break; -+ case '\r': -+ putc_unlocked ('\\', out.out); -+ putc_unlocked ('r', out.out); -+ break; -+ case '\t': -+ putc_unlocked ('\\', out.out); -+ putc_unlocked ('t', out.out); -+ break; -+ case '\v': -+ putc_unlocked ('\\', out.out); -+ putc_unlocked ('v', out.out); -+ break; -+ case '\\': -+ case '\'': -+ case '\"': -+ putc_unlocked ('\\', out.out); -+ putc_unlocked (ch, out.out); -+ break; -+ default: -+ if (ch < ' ' || ch > '~') -+ /* Use octal sequences because they are fixed width, -+ unlike hexadecimal sequences. */ -+ fprintf (out.out, "\\%03o", ch); -+ else -+ putc_unlocked (ch, out.out); -+ } -+ } -+ -+ xfclose_memstream (&out); -+ return out.buffer; -+} -diff --git a/support/support_test_compare_blob.c b/support/support_test_compare_blob.c -new file mode 100644 -index 0000000000..c5e63d1b93 ---- /dev/null -+++ b/support/support_test_compare_blob.c -@@ -0,0 +1,76 @@ -+/* Check two binary blobs for equality. -+ 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 -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static void -+report_length (const char *what, unsigned long int length, const char *expr) -+{ -+ printf (" %s %lu bytes (from %s)\n", what, length, expr); -+} -+ -+static void -+report_blob (const char *what, const unsigned char *blob, -+ unsigned long int 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 (unsigned long i = 0; i < length; ++i) -+ printf (" %02X", blob[i]); -+ putc ('\n', stdout); -+ } -+} -+ -+void -+support_test_compare_blob (const void *left, unsigned long int left_length, -+ const void *right, unsigned long int right_length, -+ const char *file, int line, -+ const char *left_expr, const char *left_len_expr, -+ const char *right_expr, const char *right_len_expr) -+{ -+ /* No differences are possible if both lengths are null. */ -+ if (left_length == 0 && right_length == 0) -+ return; -+ -+ if (left_length != right_length || left == NULL || right == NULL -+ || memcmp (left, right, left_length) != 0) -+ { -+ support_record_failure (); -+ printf ("%s:%d: error: blob comparison failed\n", file, line); -+ if (left_length == right_length) -+ printf (" blob length: %lu bytes\n", left_length); -+ else -+ { -+ report_length ("left length: ", left_length, left_len_expr); -+ report_length ("right length:", right_length, right_len_expr); -+ } -+ report_blob ("left", left, left_length, left_expr); -+ report_blob ("right", right, right_length, right_expr); -+ } -+} -diff --git a/support/support_test_main.c b/support/support_test_main.c -index 396385729b..23429779ac 100644 ---- a/support/support_test_main.c -+++ b/support/support_test_main.c -@@ -270,7 +270,8 @@ support_test_main (int argc, char **argv, const struct test_config *config) - timeout = DEFAULT_TIMEOUT; - - /* Make sure we see all message, even those on stdout. */ -- setvbuf (stdout, NULL, _IONBF, 0); -+ if (!config->no_setvbuf) -+ setvbuf (stdout, NULL, _IONBF, 0); - - /* Make sure temporary files are deleted. */ - if (support_delete_temp_files != NULL) -diff --git a/support/test-driver.c b/support/test-driver.c -index 09c8783e4f..9798f16227 100644 ---- a/support/test-driver.c -+++ b/support/test-driver.c -@@ -140,6 +140,10 @@ main (int argc, char **argv) - test_config.no_mallopt = 1; - #endif - -+#ifdef TEST_NO_SETVBUF -+ test_config.no_setvbuf = 1; -+#endif -+ - #ifdef TIMEOUT - test_config.timeout = TIMEOUT; - #endif -diff --git a/support/test-driver.h b/support/test-driver.h -index 1708d68d60..549179b254 100644 ---- a/support/test-driver.h -+++ b/support/test-driver.h -@@ -35,6 +35,7 @@ struct test_config - int expected_status; /* Expected exit status. */ - int expected_signal; /* If non-zero, expect termination by signal. */ - char no_mallopt; /* Boolean flag to disable mallopt. */ -+ char no_setvbuf; /* Boolean flag to disable setvbuf. */ - const char *optstring; /* Short command line options. */ - }; - -diff --git a/support/tst-support_quote_blob.c b/support/tst-support_quote_blob.c -new file mode 100644 -index 0000000000..5467a190a6 ---- /dev/null -+++ b/support/tst-support_quote_blob.c -@@ -0,0 +1,61 @@ -+/* Test the support_quote_blob function. -+ 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 -+ . */ -+ -+#include -+#include -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ /* Check handling of the empty blob, both with and without trailing -+ NUL byte. */ -+ char *p = support_quote_blob ("", 0); -+ TEST_COMPARE (strlen (p), 0); -+ free (p); -+ p = support_quote_blob ("X", 0); -+ TEST_COMPARE (strlen (p), 0); -+ free (p); -+ -+ /* Check escaping of backslash-escaped characters, and lack of -+ escaping for other shell meta-characters. */ -+ p = support_quote_blob ("$()*?`@[]{}~\'\"X", 14); -+ TEST_COMPARE (strcmp (p, "$()*?`@[]{}~\\'\\\""), 0); -+ free (p); -+ -+ /* Check lack of escaping for letters and digits. */ -+#define LETTERS_AND_DIGTS \ -+ "abcdefghijklmnopqrstuvwxyz" \ -+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ -+ "0123456789" -+ p = support_quote_blob (LETTERS_AND_DIGTS "@", 2 * 26 + 10); -+ TEST_COMPARE (strcmp (p, LETTERS_AND_DIGTS), 0); -+ free (p); -+ -+ /* Check escaping of control characters and other non-printable -+ characters. */ -+ p = support_quote_blob ("\r\n\t\a\b\f\v\1\177\200\377\0@", 14); -+ TEST_COMPARE (strcmp (p, "\\r\\n\\t\\a\\b\\f\\v\\001" -+ "\\177\\200\\377\\000@\\000"), 0); -+ free (p); -+ -+ return 0; -+} -+ -+#include -diff --git a/support/tst-test_compare_blob.c b/support/tst-test_compare_blob.c -new file mode 100644 -index 0000000000..aa8643e182 ---- /dev/null -+++ b/support/tst-test_compare_blob.c -@@ -0,0 +1,125 @@ -+/* Basic test for the TEST_COMPARE_BLOB macro. -+ 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 -+ . */ -+ -+#include -+#include -+#include -+ -+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_BLOB ("", 0, "", 1); /* Line 29. */ -+ TEST_COMPARE_BLOB ("X", 1, "", 1); /* Line 30. */ -+ TEST_COMPARE_BLOB ("abcd", 3, "abcd", 4); /* Line 31. */ -+ TEST_COMPARE_BLOB ("abcd", 4, "abcD", 4); /* Line 32. */ -+ TEST_COMPARE_BLOB ("abcd", 4, NULL, 0); /* Line 33. */ -+ TEST_COMPARE_BLOB (NULL, 0, "abcd", 4); /* 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_BLOB ("", 0, "", 0); -+ TEST_COMPARE_BLOB ("", 0, buffer_abc_1, 0); -+ TEST_COMPARE_BLOB (buffer_abc_1, 0, "", 0); -+ TEST_COMPARE_BLOB (NULL, 0, "", 0); -+ TEST_COMPARE_BLOB ("", 0, NULL, 0); -+ TEST_COMPARE_BLOB (NULL, 0, NULL, 0); -+ -+ /* Check equality of blobs containing a single NUL byte. */ -+ TEST_COMPARE_BLOB ("", 1, "", 1); -+ TEST_COMPARE_BLOB ("", 1, &buffer_abc_1[3], 1); -+ -+ /* Check equality of blobs of varying lengths. */ -+ for (size_t i = 0; i <= sizeof (buffer_abc_1); ++i) -+ TEST_COMPARE_BLOB (buffer_abc_1, i, buffer_abc_2, i); -+ -+ 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_blob.c:29: error: blob comparison failed\n" -+" left length: 0 bytes (from 0)\n" -+" right length: 1 bytes (from 1)\n" -+" right (evaluated from \"\"):\n" -+" \"\\000\"\n" -+" 00\n" -+"tst-test_compare_blob.c:30: error: blob comparison failed\n" -+" blob length: 1 bytes\n" -+" left (evaluated from \"X\"):\n" -+" \"X\"\n" -+" 58\n" -+" right (evaluated from \"\"):\n" -+" \"\\000\"\n" -+" 00\n" -+"tst-test_compare_blob.c:31: error: blob comparison failed\n" -+" left length: 3 bytes (from 3)\n" -+" right length: 4 bytes (from 4)\n" -+" left (evaluated from \"abcd\"):\n" -+" \"abc\"\n" -+" 61 62 63\n" -+" right (evaluated from \"abcd\"):\n" -+" \"abcd\"\n" -+" 61 62 63 64\n" -+"tst-test_compare_blob.c:32: error: blob comparison failed\n" -+" blob 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_blob.c:33: error: blob comparison failed\n" -+" left length: 4 bytes (from 4)\n" -+" right length: 0 bytes (from 0)\n" -+" left (evaluated from \"abcd\"):\n" -+" \"abcd\"\n" -+" 61 62 63 64\n" -+"tst-test_compare_blob.c:34: error: blob comparison failed\n" -+" left length: 0 bytes (from 0)\n" -+" right length: 4 bytes (from 4)\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_BLOB", -+ 0, sc_allow_stdout); -+ -+ return 0; -+} -+ -+#include -diff --git a/support/tty.h b/support/tty.h -new file mode 100644 -index 0000000000..1d37c42279 ---- /dev/null -+++ b/support/tty.h -@@ -0,0 +1,45 @@ -+/* Support functions related to (pseudo)terminals. -+ 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 -+ . */ -+ -+#ifndef _SUPPORT_TTY_H -+#define _SUPPORT_TTY_H 1 -+ -+struct termios; -+struct winsize; -+ -+/** Open a pseudoterminal pair. The outer fd is written to the address -+ A_OUTER and the inner fd to A_INNER. -+ -+ If A_NAME is not NULL, it will be set to point to a string naming -+ the /dev/pts/NNN device corresponding to the inner fd; space for -+ this string is allocated with malloc and should be freed by the -+ caller when no longer needed. (This is different from the libutil -+ function 'openpty'.) -+ -+ If TERMP is not NULL, the terminal parameters will be initialized -+ according to the termios structure it points to. -+ -+ If WINP is not NULL, the terminal window size will be set -+ accordingly. -+ -+ Terminates the process on failure (like xmalloc). */ -+extern void support_openpty (int *a_outer, int *a_inner, char **a_name, -+ const struct termios *termp, -+ const struct winsize *winp); -+ -+#endif -diff --git a/support/xpthread_barrierattr_destroy.c b/support/xpthread_barrierattr_destroy.c -new file mode 100644 -index 0000000000..3e471f9a81 ---- /dev/null -+++ b/support/xpthread_barrierattr_destroy.c -@@ -0,0 +1,26 @@ -+/* pthread_barrierattr_destroy with error checking. -+ 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 -+ . */ -+ -+#include -+ -+void -+xpthread_barrierattr_destroy (pthread_barrierattr_t *attr) -+{ -+ xpthread_check_return ("pthread_barrierattr_destroy", -+ pthread_barrierattr_destroy (attr)); -+} -diff --git a/support/xpthread_barrierattr_init.c b/support/xpthread_barrierattr_init.c -new file mode 100644 -index 0000000000..4ee14e78f3 ---- /dev/null -+++ b/support/xpthread_barrierattr_init.c -@@ -0,0 +1,26 @@ -+/* pthread_barrierattr_init with error checking. -+ 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 -+ . */ -+ -+#include -+ -+void -+xpthread_barrierattr_init (pthread_barrierattr_t *attr) -+{ -+ xpthread_check_return ("pthread_barrierattr_init", -+ pthread_barrierattr_init (attr)); -+} -diff --git a/support/xpthread_barrierattr_setpshared.c b/support/xpthread_barrierattr_setpshared.c -new file mode 100644 -index 0000000000..90b2c5bec6 ---- /dev/null -+++ b/support/xpthread_barrierattr_setpshared.c -@@ -0,0 +1,26 @@ -+/* pthread_barrierattr_setpshared with error checking. -+ 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 -+ . */ -+ -+#include -+ -+void -+xpthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared) -+{ -+ xpthread_check_return ("pthread_barrierattr_setpshared", -+ pthread_barrierattr_setpshared (attr, pshared)); -+} -diff --git a/support/xthread.h b/support/xthread.h -index 79358e7c99..623f5ad0ac 100644 ---- a/support/xthread.h -+++ b/support/xthread.h -@@ -41,6 +41,9 @@ void xpthread_check_return (const char *function, int value); - void xpthread_barrier_init (pthread_barrier_t *barrier, - pthread_barrierattr_t *attr, unsigned int count); - void xpthread_barrier_destroy (pthread_barrier_t *barrier); -+void xpthread_barrierattr_destroy (pthread_barrierattr_t *); -+void xpthread_barrierattr_init (pthread_barrierattr_t *); -+void xpthread_barrierattr_setpshared (pthread_barrierattr_t *, int pshared); - void xpthread_mutexattr_destroy (pthread_mutexattr_t *); - void xpthread_mutexattr_init (pthread_mutexattr_t *); - void xpthread_mutexattr_setprotocol (pthread_mutexattr_t *, int); -diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h -index e4b9d8697f..cff76149d6 100644 ---- a/sysdeps/generic/math_private.h -+++ b/sysdeps/generic/math_private.h -@@ -514,33 +514,6 @@ default_libc_feupdateenv_test (fenv_t *e, int ex) - # define HAVE_RM_CTX 0 - #endif - --#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 - - /* Default implementation using standard fenv functions. - Avoid unnecessary rounding mode changes by first checking the -@@ -548,7 +521,7 @@ default_libc_feupdateenv_test (fenv_t *e, int ex) - important for performance. */ - - static __always_inline void --libc_feholdsetround_ctx (struct rm_ctx *ctx, int round) -+default_libc_feholdsetround_ctx (struct rm_ctx *ctx, int round) - { - ctx->updated_status = false; - -@@ -562,7 +535,7 @@ libc_feholdsetround_ctx (struct rm_ctx *ctx, int round) - } - - static __always_inline void --libc_feresetround_ctx (struct rm_ctx *ctx) -+default_libc_feresetround_ctx (struct rm_ctx *ctx) - { - /* Restore the rounding mode if updated. */ - if (__glibc_unlikely (ctx->updated_status)) -@@ -570,7 +543,7 @@ libc_feresetround_ctx (struct rm_ctx *ctx) - } - - static __always_inline void --libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round) -+default_libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round) - { - /* Save exception flags and rounding mode, and disable exception - traps. */ -@@ -582,12 +555,45 @@ libc_feholdsetround_noex_ctx (struct rm_ctx *ctx, int round) - } - - static __always_inline void --libc_feresetround_noex_ctx (struct rm_ctx *ctx) -+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 -diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile -index a1500454e5..9c7078e33c 100644 ---- a/sysdeps/i386/Makefile -+++ b/sysdeps/i386/Makefile -@@ -5,6 +5,14 @@ asm-CPPFLAGS += -DGAS_SYNTAX - # The i386 `long double' is a distinct type we support. - long-double-fcts = yes - -+ifeq ($(subdir),math) -+# These functions change the rounding mode internally and need to -+# update both the SSE2 rounding mode and the 387 rounding mode. See -+# the handling of MATH_SET_BOTH_ROUNDING_MODES in -+# sysdeps/i386/fpu/fenv_private.h. -+CFLAGS-e_gamma_r.c += -DMATH_SET_BOTH_ROUNDING_MODES -+endif -+ - ifeq ($(subdir),string) - sysdep_routines += cacheinfo - endif -diff --git a/sysdeps/i386/fpu/fenv_private.h b/sysdeps/i386/fpu/fenv_private.h -index 38fd0b92b5..03177bb1ed 100644 ---- a/sysdeps/i386/fpu/fenv_private.h -+++ b/sysdeps/i386/fpu/fenv_private.h -@@ -491,11 +491,19 @@ libc_feupdateenv_387_ctx (struct rm_ctx *ctx) - #endif /* __SSE_MATH__ */ - - #ifdef __SSE2_MATH__ --# 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 -+# 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 -diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps -index 862a74e09d..9d1c35c605 100644 ---- a/sysdeps/i386/fpu/libm-test-ulps -+++ b/sysdeps/i386/fpu/libm-test-ulps -@@ -281,20 +281,20 @@ ldouble: 1 - - Function: Real part of "cacos": - double: 1 --float: 1 -+float: 2 - float128: 2 - idouble: 1 --ifloat: 1 -+ifloat: 2 - ifloat128: 2 - ildouble: 1 - ldouble: 1 - - Function: Imaginary part of "cacos": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 -@@ -360,21 +360,21 @@ ildouble: 7 - ldouble: 7 - - Function: Real part of "cacosh": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: Imaginary part of "cacosh": - double: 1 --float: 1 -+float: 2 - float128: 2 - idouble: 1 --ifloat: 1 -+ifloat: 2 - ifloat128: 2 - ildouble: 1 - ldouble: 1 -@@ -420,10 +420,10 @@ ildouble: 2 - ldouble: 2 - - Function: Real part of "cacosh_upward": --double: 4 -+double: 5 - float: 4 - float128: 6 --idouble: 4 -+idouble: 5 - ifloat: 4 - ifloat128: 6 - ildouble: 5 -@@ -488,11 +488,11 @@ ildouble: 1 - ldouble: 1 - - Function: Imaginary part of "casin": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 -@@ -558,11 +558,11 @@ ildouble: 7 - ldouble: 7 - - Function: Real part of "casinh": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 -@@ -774,11 +774,11 @@ ildouble: 1 - ldouble: 1 - - Function: Real part of "catanh_upward": --double: 2 --float: 2 -+double: 4 -+float: 4 - float128: 4 --idouble: 2 --ifloat: 2 -+idouble: 4 -+ifloat: 4 - ifloat128: 4 - ildouble: 4 - ldouble: 4 -@@ -875,10 +875,10 @@ ldouble: 3 - - Function: Real part of "ccos_towardzero": - double: 1 --float: 1 -+float: 2 - float128: 2 - idouble: 1 --ifloat: 1 -+ifloat: 2 - ifloat128: 2 - ildouble: 3 - ldouble: 3 -@@ -934,10 +934,10 @@ 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 -@@ -954,11 +954,11 @@ ildouble: 3 - ldouble: 3 - - Function: Real part of "ccosh_towardzero": --double: 1 --float: 2 -+double: 2 -+float: 3 - float128: 2 --idouble: 1 --ifloat: 2 -+idouble: 2 -+ifloat: 3 - ifloat128: 2 - ildouble: 3 - ldouble: 3 -@@ -1075,10 +1075,10 @@ ldouble: 3 - - Function: Real part of "clog": - double: 2 --float: 1 -+float: 3 - float128: 2 - idouble: 2 --ifloat: 1 -+ifloat: 3 - ifloat128: 2 - ildouble: 3 - ldouble: 3 -@@ -1092,79 +1092,81 @@ ildouble: 1 - ldouble: 1 - - Function: Real part of "clog10": --double: 2 --float: 2 -+double: 3 -+float: 4 - float128: 2 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 4 - ifloat128: 2 - ildouble: 4 - ldouble: 4 - - Function: Imaginary part of "clog10": --double: 1 -+double: 2 -+float: 1 - float128: 2 --idouble: 1 -+idouble: 2 -+ifloat: 1 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: Real part of "clog10_downward": --double: 3 --float: 3 -+double: 4 -+float: 4 - float128: 3 --idouble: 3 --ifloat: 3 -+idouble: 4 -+ifloat: 4 - ifloat128: 3 - ildouble: 8 - ldouble: 8 - - Function: Imaginary part of "clog10_downward": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: Real part of "clog10_towardzero": --double: 3 --float: 3 -+double: 5 -+float: 5 - float128: 4 --idouble: 3 --ifloat: 3 -+idouble: 5 -+ifloat: 5 - ifloat128: 4 - ildouble: 8 - ldouble: 8 - - Function: Imaginary part of "clog10_towardzero": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: Real part of "clog10_upward": --double: 3 --float: 3 -+double: 4 -+float: 5 - float128: 4 --idouble: 3 --ifloat: 3 -+idouble: 4 -+ifloat: 5 - ifloat128: 4 - ildouble: 7 - ldouble: 7 - - Function: Imaginary part of "clog10_upward": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 3 - ldouble: 3 -@@ -1191,10 +1193,10 @@ ldouble: 1 - - Function: Real part of "clog_towardzero": - double: 3 --float: 3 -+float: 4 - float128: 3 - idouble: 3 --ifloat: 3 -+ifloat: 4 - ifloat128: 3 - ildouble: 5 - ldouble: 5 -@@ -1230,8 +1232,10 @@ ildouble: 1 - ldouble: 1 - - Function: "cos": -+double: 1 - float: 1 - float128: 1 -+idouble: 1 - ifloat: 1 - ifloat128: 1 - ildouble: 1 -@@ -1462,7 +1466,9 @@ ildouble: 2 - ldouble: 2 - - Function: Real part of "csinh": -+float: 1 - float128: 1 -+ifloat: 1 - ifloat128: 1 - ildouble: 1 - ldouble: 1 -@@ -1478,10 +1484,10 @@ ildouble: 1 - ldouble: 1 - - Function: Real part of "csinh_downward": --double: 1 -+double: 2 - float: 1 - float128: 2 --idouble: 1 -+idouble: 2 - ifloat: 1 - ifloat128: 2 - ildouble: 3 -@@ -1498,11 +1504,11 @@ ildouble: 3 - ldouble: 3 - - Function: Real part of "csinh_towardzero": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 3 - ldouble: 3 -@@ -1538,79 +1544,81 @@ ildouble: 2 - ldouble: 2 - - Function: Real part of "csqrt": --double: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: Imaginary part of "csqrt": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: Real part of "csqrt_downward": --double: 1 --float: 1 -+double: 4 -+float: 4 - float128: 4 --idouble: 1 --ifloat: 1 -+idouble: 4 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: Imaginary part of "csqrt_downward": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 4 - ldouble: 4 - - Function: Real part of "csqrt_towardzero": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 4 - ldouble: 4 - - Function: Imaginary part of "csqrt_towardzero": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 4 - ldouble: 4 - - Function: Real part of "csqrt_upward": --double: 1 --float: 1 -+double: 4 -+float: 4 - float128: 4 --idouble: 1 --ifloat: 1 -+idouble: 4 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: Imaginary part of "csqrt_upward": --double: 1 --float: 2 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 2 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 4 - ldouble: 4 -@@ -1626,21 +1634,21 @@ ildouble: 2 - ldouble: 2 - - Function: Imaginary part of "ctan": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 1 - ldouble: 1 - - Function: Real part of "ctan_downward": --double: 1 --float: 2 -+double: 6 -+float: 5 - float128: 4 --idouble: 1 --ifloat: 2 -+idouble: 6 -+ifloat: 5 - ifloat128: 4 - ildouble: 5 - ldouble: 5 -@@ -1656,11 +1664,11 @@ ildouble: 4 - ldouble: 4 - - Function: Real part of "ctan_towardzero": --double: 3 --float: 2 -+double: 5 -+float: 3 - float128: 4 --idouble: 3 --ifloat: 2 -+idouble: 5 -+ifloat: 3 - ifloat128: 4 - ildouble: 5 - ldouble: 5 -@@ -1677,10 +1685,10 @@ ldouble: 4 - - Function: Real part of "ctan_upward": - double: 3 --float: 2 -+float: 4 - float128: 5 - idouble: 3 --ifloat: 2 -+ifloat: 4 - ifloat128: 5 - ildouble: 3 - ldouble: 3 -@@ -1696,21 +1704,21 @@ ildouble: 3 - ldouble: 3 - - Function: Real part of "ctanh": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 1 - ldouble: 1 - - Function: Imaginary part of "ctanh": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 2 - ldouble: 2 -@@ -1726,11 +1734,11 @@ ildouble: 4 - ldouble: 4 - - Function: Imaginary part of "ctanh_downward": --double: 2 --float: 1 -+double: 6 -+float: 5 - float128: 4 --idouble: 2 --ifloat: 1 -+idouble: 6 -+ifloat: 5 - ifloat128: 4 - ildouble: 4 - ldouble: 4 -@@ -1746,31 +1754,31 @@ ildouble: 4 - ldouble: 4 - - Function: Imaginary part of "ctanh_towardzero": --double: 2 --float: 2 -+double: 5 -+float: 3 - float128: 3 --idouble: 2 --ifloat: 2 -+idouble: 5 -+ifloat: 3 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: Real part of "ctanh_upward": - double: 2 --float: 1 -+float: 2 - float128: 5 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 5 - ildouble: 3 - ldouble: 3 - - Function: Imaginary part of "ctanh_upward": - double: 3 --float: 2 -+float: 3 - float128: 5 - idouble: 3 --ifloat: 2 -+ifloat: 3 - ifloat128: 5 - ildouble: 3 - ldouble: 3 -@@ -1816,41 +1824,41 @@ ildouble: 1 - ldouble: 1 - - Function: "erfc": --double: 1 --float: 1 -+double: 3 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 2 - ifloat128: 2 - ildouble: 3 - ldouble: 3 - - Function: "erfc_downward": --double: 2 --float: 3 -+double: 5 -+float: 6 - float128: 5 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 6 - ifloat128: 5 - ildouble: 4 - ldouble: 4 - - Function: "erfc_towardzero": --double: 2 --float: 2 -+double: 3 -+float: 4 - float128: 4 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 4 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: "erfc_upward": --double: 2 --float: 3 -+double: 5 -+float: 6 - float128: 5 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 6 - ifloat128: 5 - ildouble: 5 - ldouble: 5 -@@ -1994,34 +2002,34 @@ ildouble: 4 - ldouble: 4 - - Function: "gamma": --double: 3 -+double: 4 - float: 3 --idouble: 3 -+idouble: 4 - ifloat: 3 - ildouble: 4 - ldouble: 4 - - Function: "gamma_downward": --double: 4 -+double: 5 - float: 5 --idouble: 4 -+idouble: 5 - ifloat: 5 - ildouble: 7 - ldouble: 7 - - Function: "gamma_towardzero": --double: 4 --float: 3 --idouble: 4 --ifloat: 3 -+double: 5 -+float: 4 -+idouble: 5 -+ifloat: 4 - ildouble: 7 - ldouble: 7 - - Function: "gamma_upward": --double: 3 --float: 4 --idouble: 3 --ifloat: 4 -+double: 5 -+float: 5 -+idouble: 5 -+ifloat: 5 - ildouble: 5 - ldouble: 5 - -@@ -2059,39 +2067,39 @@ ldouble: 1 - - Function: "j0": - double: 2 --float: 1 -+float: 2 - float128: 2 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: "j0_downward": --double: 1 --float: 3 -+double: 2 -+float: 4 - float128: 4 --idouble: 1 --ifloat: 3 -+idouble: 2 -+ifloat: 4 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: "j0_towardzero": --double: 2 --float: 1 -+double: 3 -+float: 2 - float128: 2 --idouble: 2 --ifloat: 1 -+idouble: 3 -+ifloat: 2 - ifloat128: 2 - ildouble: 5 - ldouble: 5 - - Function: "j0_upward": --double: 2 -+double: 3 - float: 3 - float128: 5 --idouble: 2 -+idouble: 3 - ifloat: 3 - ifloat128: 5 - ildouble: 4 -@@ -2108,111 +2116,111 @@ ildouble: 1 - ldouble: 1 - - Function: "j1_downward": --double: 2 --float: 2 -+double: 3 -+float: 3 - float128: 4 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 3 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: "j1_towardzero": --double: 2 -+double: 3 - float: 2 - float128: 4 --idouble: 2 -+idouble: 3 - ifloat: 2 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: "j1_upward": --double: 2 --float: 3 -+double: 3 -+float: 5 - float128: 3 --idouble: 2 --ifloat: 3 -+idouble: 3 -+ifloat: 5 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: "jn": --double: 2 --float: 3 -+double: 4 -+float: 4 - float128: 7 --idouble: 2 --ifloat: 3 -+idouble: 4 -+ifloat: 4 - ifloat128: 7 - ildouble: 4 - ldouble: 4 - - Function: "jn_downward": --double: 2 --float: 3 -+double: 5 -+float: 5 - float128: 8 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 5 - ifloat128: 8 - ildouble: 4 - ldouble: 4 - - Function: "jn_towardzero": --double: 2 --float: 3 -+double: 5 -+float: 5 - float128: 8 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 5 - ifloat128: 8 - ildouble: 5 - ldouble: 5 - - Function: "jn_upward": --double: 2 --float: 3 -+double: 5 -+float: 5 - float128: 7 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 5 - ifloat128: 7 - ildouble: 5 - ldouble: 5 - - Function: "lgamma": --double: 3 -+double: 4 - float: 3 - float128: 5 --idouble: 3 -+idouble: 4 - ifloat: 3 - ifloat128: 5 - ildouble: 4 - ldouble: 4 - - Function: "lgamma_downward": --double: 4 -+double: 5 - float: 5 - float128: 8 --idouble: 4 -+idouble: 5 - ifloat: 5 - ifloat128: 8 - ildouble: 7 - ldouble: 7 - - Function: "lgamma_towardzero": --double: 4 --float: 3 -+double: 5 -+float: 4 - float128: 5 --idouble: 4 --ifloat: 3 -+idouble: 5 -+ifloat: 4 - ifloat128: 5 - ildouble: 7 - ldouble: 7 - - Function: "lgamma_upward": --double: 3 --float: 4 -+double: 5 -+float: 5 - float128: 8 --idouble: 3 --ifloat: 4 -+idouble: 5 -+ifloat: 5 - ifloat128: 8 - ildouble: 5 - ldouble: 5 -@@ -2402,8 +2410,10 @@ ildouble: 4 - ldouble: 4 - - Function: "sin": -+double: 1 - float: 1 - float128: 1 -+idouble: 1 - ifloat: 1 - ifloat128: 1 - ildouble: 1 -@@ -2440,8 +2450,10 @@ ildouble: 3 - ldouble: 3 - - Function: "sincos": -+double: 1 - float: 1 - float128: 1 -+idouble: 1 - ifloat: 1 - ifloat128: 1 - ildouble: 1 -@@ -2478,39 +2490,41 @@ ildouble: 3 - ldouble: 3 - - Function: "sinh": --double: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: "sinh_downward": --double: 2 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 2 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 5 - ldouble: 5 - - Function: "sinh_towardzero": - double: 2 --float: 1 -+float: 2 - float128: 3 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 3 - ildouble: 4 - ldouble: 4 - - Function: "sinh_upward": - double: 4 --float: 2 -+float: 3 - float128: 4 - idouble: 4 --ifloat: 2 -+ifloat: 3 - ifloat128: 4 - ildouble: 5 - ldouble: 5 -@@ -2554,199 +2568,201 @@ ildouble: 2 - ldouble: 2 - - Function: "tanh": --double: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 3 - ldouble: 3 - - Function: "tanh_downward": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 4 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 4 - ildouble: 7 - ldouble: 4 - - Function: "tanh_towardzero": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: "tanh_upward": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 5 - ldouble: 4 - - Function: "tgamma": --double: 3 --float: 3 -+double: 5 -+float: 4 - float128: 4 --idouble: 3 --ifloat: 3 -+idouble: 5 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: "tgamma_downward": --double: 3 --float: 3 -+double: 6 -+float: 5 - float128: 5 --idouble: 3 --ifloat: 3 -+idouble: 6 -+ifloat: 5 - ifloat128: 5 - ildouble: 5 - ldouble: 5 - - Function: "tgamma_towardzero": --double: 3 --float: 3 -+double: 6 -+float: 4 - float128: 5 --idouble: 3 --ifloat: 3 -+idouble: 6 -+ifloat: 4 - ifloat128: 5 - ildouble: 5 - ldouble: 5 - - Function: "tgamma_upward": --double: 3 --float: 3 -+double: 5 -+float: 4 - float128: 4 --idouble: 3 --ifloat: 3 -+idouble: 5 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: "y0": --double: 1 -+double: 2 - float: 1 - float128: 3 --idouble: 1 -+idouble: 2 - ifloat: 1 - ifloat128: 3 - ildouble: 1 - ldouble: 1 - - Function: "y0_downward": --double: 2 --float: 3 -+double: 3 -+float: 4 - float128: 4 --idouble: 2 --ifloat: 3 -+idouble: 3 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: "y0_towardzero": --double: 2 -+double: 3 - float: 3 - float128: 3 --idouble: 2 -+idouble: 3 - ifloat: 3 - ifloat128: 3 - ildouble: 5 - ldouble: 5 - - Function: "y0_upward": --double: 1 --float: 3 -+double: 3 -+float: 5 - float128: 3 --idouble: 1 --ifloat: 3 -+idouble: 3 -+ifloat: 5 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: "y1": --double: 2 -+double: 3 - float: 2 - float128: 2 --idouble: 2 -+idouble: 3 - ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: "y1_downward": --double: 2 -+double: 3 - float: 3 - float128: 4 --idouble: 2 -+idouble: 3 - ifloat: 3 - ifloat128: 4 - ildouble: 7 - ldouble: 7 - - Function: "y1_towardzero": --double: 2 -+double: 3 - float: 3 - float128: 2 --idouble: 2 -+idouble: 3 - ifloat: 3 - ifloat128: 2 - ildouble: 5 - ldouble: 5 - - Function: "y1_upward": --double: 1 -+double: 7 - float: 3 - float128: 5 --idouble: 1 -+idouble: 7 - ifloat: 3 - ifloat128: 5 - ildouble: 7 - ldouble: 7 - - Function: "yn": --double: 2 -+double: 3 - float: 3 - float128: 5 --idouble: 2 -+idouble: 3 - ifloat: 3 - ifloat128: 5 - ildouble: 4 - ldouble: 4 - - Function: "yn_downward": --double: 2 --float: 3 -+double: 3 -+float: 4 - float128: 5 --idouble: 2 --ifloat: 3 -+idouble: 3 -+ifloat: 4 - ifloat128: 5 - ildouble: 5 - ldouble: 5 - - Function: "yn_towardzero": - double: 3 --float: 3 -+float: 4 - float128: 5 - idouble: 3 --ifloat: 3 -+ifloat: 4 - ifloat128: 5 - ildouble: 5 - ldouble: 5 - - Function: "yn_upward": --double: 3 --float: 3 -+double: 4 -+float: 5 - float128: 5 --idouble: 3 --ifloat: 3 -+idouble: 4 -+ifloat: 5 - ifloat128: 5 - ildouble: 4 - ldouble: 4 -diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps -index 8a862ef2eb..1bc39f47e8 100644 ---- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps -+++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps -@@ -281,20 +281,20 @@ ldouble: 1 - - Function: Real part of "cacos": - double: 1 --float: 1 -+float: 2 - float128: 2 - idouble: 1 --ifloat: 1 -+ifloat: 2 - ifloat128: 2 - ildouble: 1 - ldouble: 1 - - Function: Imaginary part of "cacos": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 -@@ -360,21 +360,21 @@ ildouble: 7 - ldouble: 7 - - Function: Real part of "cacosh": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: Imaginary part of "cacosh": - double: 1 --float: 1 -+float: 2 - float128: 2 - idouble: 1 --ifloat: 1 -+ifloat: 2 - ifloat128: 2 - ildouble: 1 - ldouble: 1 -@@ -420,10 +420,10 @@ ildouble: 2 - ldouble: 2 - - Function: Real part of "cacosh_upward": --double: 4 -+double: 5 - float: 4 - float128: 6 --idouble: 4 -+idouble: 5 - ifloat: 4 - ifloat128: 6 - ildouble: 5 -@@ -488,11 +488,11 @@ ildouble: 1 - ldouble: 1 - - Function: Imaginary part of "casin": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 -@@ -558,11 +558,11 @@ ildouble: 7 - ldouble: 7 - - Function: Real part of "casinh": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 -@@ -774,11 +774,11 @@ ildouble: 1 - ldouble: 1 - - Function: Real part of "catanh_upward": --double: 2 --float: 2 -+double: 4 -+float: 4 - float128: 4 --idouble: 2 --ifloat: 2 -+idouble: 4 -+ifloat: 4 - ifloat128: 4 - ildouble: 4 - ldouble: 4 -@@ -875,10 +875,10 @@ ldouble: 3 - - Function: Real part of "ccos_towardzero": - double: 1 --float: 1 -+float: 2 - float128: 2 - idouble: 1 --ifloat: 1 -+ifloat: 2 - ifloat128: 2 - ildouble: 3 - ldouble: 3 -@@ -934,10 +934,10 @@ 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 -@@ -954,11 +954,11 @@ ildouble: 3 - ldouble: 3 - - Function: Real part of "ccosh_towardzero": --double: 1 --float: 2 -+double: 2 -+float: 3 - float128: 2 --idouble: 1 --ifloat: 2 -+idouble: 2 -+ifloat: 3 - ifloat128: 2 - ildouble: 3 - ldouble: 3 -@@ -1075,10 +1075,10 @@ ldouble: 3 - - Function: Real part of "clog": - double: 2 --float: 1 -+float: 3 - float128: 2 - idouble: 2 --ifloat: 1 -+ifloat: 3 - ifloat128: 2 - ildouble: 3 - ldouble: 3 -@@ -1092,79 +1092,81 @@ ildouble: 1 - ldouble: 1 - - Function: Real part of "clog10": --double: 2 --float: 2 -+double: 3 -+float: 4 - float128: 2 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 4 - ifloat128: 2 - ildouble: 4 - ldouble: 4 - - Function: Imaginary part of "clog10": --double: 1 -+double: 2 -+float: 1 - float128: 2 --idouble: 1 -+idouble: 2 -+ifloat: 1 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: Real part of "clog10_downward": --double: 3 --float: 3 -+double: 4 -+float: 4 - float128: 3 --idouble: 3 --ifloat: 3 -+idouble: 4 -+ifloat: 4 - ifloat128: 3 - ildouble: 8 - ldouble: 8 - - Function: Imaginary part of "clog10_downward": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: Real part of "clog10_towardzero": --double: 3 --float: 3 -+double: 5 -+float: 5 - float128: 4 --idouble: 3 --ifloat: 3 -+idouble: 5 -+ifloat: 5 - ifloat128: 4 - ildouble: 8 - ldouble: 8 - - Function: Imaginary part of "clog10_towardzero": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: Real part of "clog10_upward": --double: 3 --float: 3 -+double: 4 -+float: 5 - float128: 4 --idouble: 3 --ifloat: 3 -+idouble: 4 -+ifloat: 5 - ifloat128: 4 - ildouble: 8 - ldouble: 8 - - Function: Imaginary part of "clog10_upward": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 3 - ldouble: 3 -@@ -1191,10 +1193,10 @@ ldouble: 1 - - Function: Real part of "clog_towardzero": - double: 3 --float: 3 -+float: 4 - float128: 3 - idouble: 3 --ifloat: 3 -+ifloat: 4 - ifloat128: 3 - ildouble: 5 - ldouble: 5 -@@ -1230,7 +1232,9 @@ ildouble: 1 - ldouble: 1 - - Function: "cos": -+double: 1 - float128: 1 -+idouble: 1 - ifloat128: 1 - ildouble: 1 - ldouble: 1 -@@ -1478,10 +1482,10 @@ ildouble: 1 - ldouble: 1 - - Function: Real part of "csinh_downward": --double: 1 -+double: 2 - float: 2 - float128: 2 --idouble: 1 -+idouble: 2 - ifloat: 2 - ifloat128: 2 - ildouble: 3 -@@ -1498,10 +1502,10 @@ ildouble: 3 - ldouble: 3 - - Function: Real part of "csinh_towardzero": --double: 1 -+double: 2 - float: 2 - float128: 2 --idouble: 1 -+idouble: 2 - ifloat: 2 - ifloat128: 2 - ildouble: 3 -@@ -1538,79 +1542,81 @@ ildouble: 3 - ldouble: 3 - - Function: Real part of "csqrt": --double: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: Imaginary part of "csqrt": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: Real part of "csqrt_downward": --double: 1 --float: 1 -+double: 4 -+float: 4 - float128: 4 --idouble: 1 --ifloat: 1 -+idouble: 4 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: Imaginary part of "csqrt_downward": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 4 - ldouble: 4 - - Function: Real part of "csqrt_towardzero": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 4 - ldouble: 4 - - Function: Imaginary part of "csqrt_towardzero": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 4 - ldouble: 4 - - Function: Real part of "csqrt_upward": --double: 1 --float: 1 -+double: 4 -+float: 4 - float128: 4 --idouble: 1 --ifloat: 1 -+idouble: 4 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: Imaginary part of "csqrt_upward": --double: 1 --float: 2 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 2 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 4 - ldouble: 4 -@@ -1626,21 +1632,21 @@ ildouble: 2 - ldouble: 2 - - Function: Imaginary part of "ctan": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 1 - ldouble: 1 - - Function: Real part of "ctan_downward": --double: 1 --float: 2 -+double: 6 -+float: 5 - float128: 4 --idouble: 1 --ifloat: 2 -+idouble: 6 -+ifloat: 5 - ifloat128: 4 - ildouble: 5 - ldouble: 5 -@@ -1656,31 +1662,31 @@ ildouble: 4 - ldouble: 4 - - Function: Real part of "ctan_towardzero": --double: 3 --float: 1 -+double: 5 -+float: 3 - float128: 4 --idouble: 3 --ifloat: 1 -+idouble: 5 -+ifloat: 3 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: Imaginary part of "ctan_towardzero": - double: 2 --float: 1 -+float: 2 - float128: 5 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 5 - ildouble: 4 - ldouble: 4 - - Function: Real part of "ctan_upward": - double: 3 --float: 2 -+float: 4 - float128: 5 - idouble: 3 --ifloat: 2 -+ifloat: 4 - ifloat128: 5 - ildouble: 3 - ldouble: 3 -@@ -1696,21 +1702,21 @@ ildouble: 3 - ldouble: 3 - - Function: Real part of "ctanh": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 1 - ldouble: 1 - - Function: Imaginary part of "ctanh": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 2 - ldouble: 2 -@@ -1726,51 +1732,51 @@ ildouble: 4 - ldouble: 4 - - Function: Imaginary part of "ctanh_downward": --double: 2 --float: 1 -+double: 6 -+float: 5 - float128: 4 --idouble: 2 --ifloat: 1 -+idouble: 6 -+ifloat: 5 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: Real part of "ctanh_towardzero": - double: 2 --float: 1 -+float: 2 - float128: 5 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 5 - ildouble: 4 - ldouble: 4 - - Function: Imaginary part of "ctanh_towardzero": --double: 2 --float: 1 -+double: 5 -+float: 3 - float128: 3 --idouble: 2 --ifloat: 1 -+idouble: 5 -+ifloat: 3 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: Real part of "ctanh_upward": - double: 2 --float: 1 -+float: 2 - float128: 5 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 5 - ildouble: 3 - ldouble: 3 - - Function: Imaginary part of "ctanh_upward": - double: 3 --float: 2 -+float: 3 - float128: 5 - idouble: 3 --ifloat: 2 -+ifloat: 3 - ifloat128: 5 - ildouble: 3 - ldouble: 3 -@@ -1816,41 +1822,41 @@ ildouble: 1 - ldouble: 1 - - Function: "erfc": --double: 1 --float: 1 -+double: 3 -+float: 2 - float128: 2 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 2 - ifloat128: 2 - ildouble: 3 - ldouble: 3 - - Function: "erfc_downward": --double: 2 --float: 3 -+double: 5 -+float: 6 - float128: 5 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 6 - ifloat128: 5 - ildouble: 4 - ldouble: 4 - - Function: "erfc_towardzero": --double: 2 --float: 2 -+double: 3 -+float: 4 - float128: 4 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 4 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: "erfc_upward": --double: 2 --float: 3 -+double: 5 -+float: 6 - float128: 5 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 6 - ifloat128: 5 - ildouble: 5 - ldouble: 5 -@@ -1994,34 +2000,34 @@ ildouble: 4 - ldouble: 4 - - Function: "gamma": --double: 3 -+double: 4 - float: 3 --idouble: 3 -+idouble: 4 - ifloat: 3 - ildouble: 4 - ldouble: 4 - - Function: "gamma_downward": --double: 4 -+double: 5 - float: 5 --idouble: 4 -+idouble: 5 - ifloat: 5 - ildouble: 7 - ldouble: 7 - - Function: "gamma_towardzero": --double: 4 -+double: 5 - float: 4 --idouble: 4 -+idouble: 5 - ifloat: 4 - ildouble: 7 - ldouble: 7 - - Function: "gamma_upward": --double: 3 --float: 4 --idouble: 3 --ifloat: 4 -+double: 5 -+float: 5 -+idouble: 5 -+ifloat: 5 - ildouble: 6 - ldouble: 6 - -@@ -2059,39 +2065,39 @@ ldouble: 1 - - Function: "j0": - double: 2 --float: 1 -+float: 2 - float128: 2 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: "j0_downward": --double: 1 --float: 3 -+double: 2 -+float: 4 - float128: 4 --idouble: 1 --ifloat: 3 -+idouble: 2 -+ifloat: 4 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: "j0_towardzero": --double: 2 --float: 1 -+double: 3 -+float: 2 - float128: 2 --idouble: 2 --ifloat: 1 -+idouble: 3 -+ifloat: 2 - ifloat128: 2 - ildouble: 5 - ldouble: 5 - - Function: "j0_upward": --double: 2 -+double: 3 - float: 3 - float128: 5 --idouble: 2 -+idouble: 3 - ifloat: 3 - ifloat128: 5 - ildouble: 4 -@@ -2099,120 +2105,120 @@ ldouble: 4 - - Function: "j1": - double: 2 --float: 1 -+float: 2 - float128: 4 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 4 - ildouble: 1 - ldouble: 1 - - Function: "j1_downward": --double: 2 --float: 2 -+double: 3 -+float: 3 - float128: 4 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 3 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: "j1_towardzero": --double: 2 -+double: 3 - float: 2 - float128: 4 --idouble: 2 -+idouble: 3 - ifloat: 2 - ifloat128: 4 - ildouble: 4 - ldouble: 4 - - Function: "j1_upward": --double: 2 --float: 3 -+double: 3 -+float: 5 - float128: 3 --idouble: 2 --ifloat: 3 -+idouble: 3 -+ifloat: 5 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: "jn": --double: 2 --float: 3 -+double: 4 -+float: 4 - float128: 7 --idouble: 2 --ifloat: 3 -+idouble: 4 -+ifloat: 4 - ifloat128: 7 - ildouble: 4 - ldouble: 4 - - Function: "jn_downward": --double: 2 --float: 3 -+double: 5 -+float: 5 - float128: 8 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 5 - ifloat128: 8 - ildouble: 4 - ldouble: 4 - - Function: "jn_towardzero": --double: 2 --float: 3 -+double: 5 -+float: 5 - float128: 8 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 5 - ifloat128: 8 - ildouble: 5 - ldouble: 5 - - Function: "jn_upward": --double: 2 --float: 3 -+double: 5 -+float: 5 - float128: 7 --idouble: 2 --ifloat: 3 -+idouble: 5 -+ifloat: 5 - ifloat128: 7 - ildouble: 5 - ldouble: 5 - - Function: "lgamma": --double: 3 -+double: 4 - float: 3 - float128: 5 --idouble: 3 -+idouble: 4 - ifloat: 3 - ifloat128: 5 - ildouble: 4 - ldouble: 4 - - Function: "lgamma_downward": --double: 4 -+double: 5 - float: 5 - float128: 8 --idouble: 4 -+idouble: 5 - ifloat: 5 - ifloat128: 8 - ildouble: 7 - ldouble: 7 - - Function: "lgamma_towardzero": --double: 4 -+double: 5 - float: 4 - float128: 5 --idouble: 4 -+idouble: 5 - ifloat: 4 - ifloat128: 5 - ildouble: 7 - ldouble: 7 - - Function: "lgamma_upward": --double: 3 --float: 4 -+double: 5 -+float: 5 - float128: 8 --idouble: 3 --ifloat: 4 -+idouble: 5 -+ifloat: 5 - ifloat128: 8 - ildouble: 6 - ldouble: 6 -@@ -2402,7 +2408,9 @@ ildouble: 4 - ldouble: 4 - - Function: "sin": -+double: 1 - float128: 1 -+idouble: 1 - ifloat128: 1 - ildouble: 1 - ldouble: 1 -@@ -2432,7 +2440,9 @@ ildouble: 3 - ldouble: 3 - - Function: "sincos": -+double: 1 - float128: 1 -+idouble: 1 - ifloat128: 1 - ildouble: 1 - ldouble: 1 -@@ -2462,39 +2472,41 @@ ildouble: 3 - ldouble: 3 - - Function: "sinh": --double: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: "sinh_downward": --double: 2 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 2 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 5 - ldouble: 5 - - Function: "sinh_towardzero": - double: 2 --float: 1 -+float: 2 - float128: 3 - idouble: 2 --ifloat: 1 -+ifloat: 2 - ifloat128: 3 - ildouble: 4 - ldouble: 4 - - Function: "sinh_upward": - double: 4 --float: 2 -+float: 3 - float128: 4 - idouble: 4 --ifloat: 2 -+ifloat: 3 - ifloat128: 4 - ildouble: 5 - ldouble: 5 -@@ -2538,199 +2550,201 @@ ildouble: 2 - ldouble: 2 - - Function: "tanh": --double: 1 -+double: 2 -+float: 2 - float128: 2 --idouble: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 2 - ildouble: 3 - ldouble: 3 - - Function: "tanh_downward": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 4 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 4 - ildouble: 7 - ldouble: 4 - - Function: "tanh_towardzero": --double: 1 --float: 1 -+double: 2 -+float: 2 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 2 -+ifloat: 2 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: "tanh_upward": --double: 1 --float: 1 -+double: 3 -+float: 3 - float128: 3 --idouble: 1 --ifloat: 1 -+idouble: 3 -+ifloat: 3 - ifloat128: 3 - ildouble: 5 - ldouble: 4 - - Function: "tgamma": --double: 3 --float: 3 -+double: 5 -+float: 4 - float128: 4 --idouble: 3 --ifloat: 3 -+idouble: 5 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: "tgamma_downward": --double: 3 -+double: 6 - float: 5 - float128: 5 --idouble: 3 -+idouble: 6 - ifloat: 5 - ifloat128: 5 - ildouble: 5 - ldouble: 5 - - Function: "tgamma_towardzero": --double: 4 -+double: 6 - float: 5 - float128: 5 --idouble: 4 -+idouble: 6 - ifloat: 5 - ifloat128: 5 - ildouble: 5 - ldouble: 5 - - Function: "tgamma_upward": --double: 4 -+double: 5 - float: 6 - float128: 4 --idouble: 4 -+idouble: 5 - ifloat: 6 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: "y0": --double: 1 -+double: 2 - float: 1 - float128: 3 --idouble: 1 -+idouble: 2 - ifloat: 1 - ifloat128: 3 - ildouble: 1 - ldouble: 1 - - Function: "y0_downward": --double: 2 --float: 2 -+double: 3 -+float: 4 - float128: 4 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 4 - ifloat128: 4 - ildouble: 5 - ldouble: 5 - - Function: "y0_towardzero": --double: 2 -+double: 3 - float: 3 - float128: 3 --idouble: 2 -+idouble: 3 - ifloat: 3 - ifloat128: 3 - ildouble: 5 - ldouble: 5 - - Function: "y0_upward": --double: 1 --float: 3 -+double: 3 -+float: 5 - float128: 3 --idouble: 1 --ifloat: 3 -+idouble: 3 -+ifloat: 5 - ifloat128: 3 - ildouble: 3 - ldouble: 3 - - Function: "y1": --double: 2 -+double: 3 - float: 2 - float128: 2 --idouble: 2 -+idouble: 3 - ifloat: 2 - ifloat128: 2 - ildouble: 2 - ldouble: 2 - - Function: "y1_downward": --double: 2 --float: 2 -+double: 3 -+float: 4 - float128: 4 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 4 - ifloat128: 4 - ildouble: 7 - ldouble: 7 - - Function: "y1_towardzero": --double: 2 --float: 2 -+double: 3 -+float: 3 - float128: 2 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 3 - ifloat128: 2 - ildouble: 5 - ldouble: 5 - - Function: "y1_upward": --double: 1 -+double: 7 - float: 3 - float128: 5 --idouble: 1 -+idouble: 7 - ifloat: 3 - ifloat128: 5 - ildouble: 7 - ldouble: 7 - - Function: "yn": --double: 2 -+double: 3 - float: 3 - float128: 5 --idouble: 2 -+idouble: 3 - ifloat: 3 - ifloat128: 5 - ildouble: 4 - ldouble: 4 - - Function: "yn_downward": --double: 2 --float: 2 -+double: 3 -+float: 4 - float128: 5 --idouble: 2 --ifloat: 2 -+idouble: 3 -+ifloat: 4 - ifloat128: 5 - ildouble: 5 - ldouble: 5 - - Function: "yn_towardzero": - double: 3 --float: 3 -+float: 4 - float128: 5 - idouble: 3 --ifloat: 3 -+ifloat: 4 - ifloat128: 5 - ildouble: 5 - ldouble: 5 - - Function: "yn_upward": --double: 3 --float: 3 -+double: 4 -+float: 5 - float128: 5 --idouble: 3 --ifloat: 3 -+idouble: 4 -+ifloat: 5 - ifloat128: 5 - ildouble: 4 - ldouble: 4 -diff --git a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S -index 9c3bbe7e17..9aa17de99c 100644 ---- a/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S -+++ b/sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S -@@ -72,7 +72,7 @@ ENTRY (MEMCPY) - cmp %edx, %eax - - # ifdef USE_AS_MEMMOVE -- jg L(check_forward) -+ ja L(check_forward) - - L(mm_len_0_or_more_backward): - /* Now do checks for lengths. We do [0..16], [16..32], [32..64], [64..128] -@@ -81,7 +81,7 @@ L(mm_len_0_or_more_backward): - jbe L(mm_len_0_16_bytes_backward) - - cmpl $32, %ecx -- jg L(mm_len_32_or_more_backward) -+ ja L(mm_len_32_or_more_backward) - - /* Copy [0..32] and return. */ - movdqu (%eax), %xmm0 -@@ -92,7 +92,7 @@ L(mm_len_0_or_more_backward): - - L(mm_len_32_or_more_backward): - cmpl $64, %ecx -- jg L(mm_len_64_or_more_backward) -+ ja L(mm_len_64_or_more_backward) - - /* Copy [0..64] and return. */ - movdqu (%eax), %xmm0 -@@ -107,7 +107,7 @@ L(mm_len_32_or_more_backward): - - L(mm_len_64_or_more_backward): - cmpl $128, %ecx -- jg L(mm_len_128_or_more_backward) -+ ja L(mm_len_128_or_more_backward) - - /* Copy [0..128] and return. */ - movdqu (%eax), %xmm0 -@@ -132,7 +132,7 @@ L(mm_len_128_or_more_backward): - add %ecx, %eax - cmp %edx, %eax - movl SRC(%esp), %eax -- jle L(forward) -+ jbe L(forward) - PUSH (%esi) - PUSH (%edi) - PUSH (%ebx) -@@ -269,7 +269,7 @@ L(check_forward): - add %edx, %ecx - cmp %eax, %ecx - movl LEN(%esp), %ecx -- jle L(forward) -+ jbe L(forward) - - /* Now do checks for lengths. We do [0..16], [0..32], [0..64], [0..128] - separately. */ -diff --git a/sysdeps/i386/i686/multiarch/strncmp-c.c b/sysdeps/i386/i686/multiarch/strncmp-c.c -index cc059da494..2e3eca9b2b 100644 ---- a/sysdeps/i386/i686/multiarch/strncmp-c.c -+++ b/sysdeps/i386/i686/multiarch/strncmp-c.c -@@ -1,4 +1,4 @@ --#ifdef SHARED -+#if defined (SHARED) && IS_IN (libc) - # define STRNCMP __strncmp_ia32 - # undef libc_hidden_builtin_def - # define libc_hidden_builtin_def(name) \ -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_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_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/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h -index 1e2092a05d..05c94e7a71 100644 ---- a/sysdeps/nptl/bits/thread-shared-types.h -+++ b/sysdeps/nptl/bits/thread-shared-types.h -@@ -124,7 +124,27 @@ struct __pthread_mutex_s - unsigned int __nusers; - #endif - /* KIND must stay at this position in the structure to maintain -- binary compatibility with static initializers. */ -+ 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; - __PTHREAD_COMPAT_PADDING_MID - #if __PTHREAD_MUTEX_NUSERS_AFTER_KIND -diff --git a/sysdeps/nptl/lowlevellock.h b/sysdeps/nptl/lowlevellock.h -index 8326e2805c..bfbda99940 100644 ---- a/sysdeps/nptl/lowlevellock.h -+++ b/sysdeps/nptl/lowlevellock.h -@@ -181,11 +181,14 @@ extern int __lll_timedlock_wait (int *futex, const struct timespec *, - 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);\ -+#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 *) -diff --git a/sysdeps/posix/preadv2.c b/sysdeps/posix/preadv2.c -index d29147608f..4f8557ac83 100644 ---- a/sysdeps/posix/preadv2.c -+++ b/sysdeps/posix/preadv2.c -@@ -33,7 +33,10 @@ preadv2 (int fd, const struct iovec *vector, int count, off_t offset, - return -1; - } - -- return preadv (fd, vector, count, offset); -+ if (offset == -1) -+ return __readv (fd, vector, count); -+ else -+ return preadv (fd, vector, count, offset); - } - - #endif -diff --git a/sysdeps/posix/preadv64v2.c b/sysdeps/posix/preadv64v2.c -index a4844b145c..f89ad08c54 100644 ---- a/sysdeps/posix/preadv64v2.c -+++ b/sysdeps/posix/preadv64v2.c -@@ -30,7 +30,10 @@ preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset, - return -1; - } - -- return preadv64 (fd, vector, count, offset); -+ if (offset == -1) -+ return __readv (fd, vector, count); -+ else -+ return preadv64 (fd, vector, count, offset); - } - - #ifdef __OFF_T_MATCHES_OFF64_T -diff --git a/sysdeps/posix/pwritev2.c b/sysdeps/posix/pwritev2.c -index 3abf37a810..a39304d9d9 100644 ---- a/sysdeps/posix/pwritev2.c -+++ b/sysdeps/posix/pwritev2.c -@@ -33,7 +33,10 @@ pwritev2 (int fd, const struct iovec *vector, int count, off_t offset, - return -1; - } - -- return pwritev (fd, vector, count, offset); -+ if (offset == -1) -+ return __writev (fd, vector, count); -+ else -+ return pwritev (fd, vector, count, offset); - } - - #endif -diff --git a/sysdeps/posix/pwritev64v2.c b/sysdeps/posix/pwritev64v2.c -index 374d2ad8a9..7a3a3239d7 100644 ---- a/sysdeps/posix/pwritev64v2.c -+++ b/sysdeps/posix/pwritev64v2.c -@@ -31,7 +31,10 @@ pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset, - return -1; - } - -- return pwritev64 (fd, vector, count, offset); -+ if (offset == -1) -+ return __writev (fd, vector, count); -+ else -+ return pwritev64 (fd, vector, count, offset); - } - - #ifdef __OFF_T_MATCHES_OFF64_T -diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c -index 36bb5b4f78..b138ab4393 100644 ---- a/sysdeps/posix/spawni.c -+++ b/sysdeps/posix/spawni.c -@@ -310,6 +310,8 @@ __spawni (pid_t * pid, const char *file, - const posix_spawnattr_t * attrp, char *const argv[], - char *const envp[], int xflags) - { -+ /* It uses __execvpex to avoid run ENOEXEC in non compatibility mode (it -+ will be handled by maybe_script_execute). */ - return __spawnix (pid, file, acts, attrp, argv, envp, xflags, -- xflags & SPAWN_XFLAGS_USE_PATH ? __execvpe : __execve); -+ xflags & SPAWN_XFLAGS_USE_PATH ? __execvpex : __execve); - } -diff --git a/sysdeps/powerpc/powerpc32/sysdep.h b/sysdeps/powerpc/powerpc32/sysdep.h -index 8e32a2a131..5f1294ead3 100644 ---- a/sysdeps/powerpc/powerpc32/sysdep.h -+++ b/sysdeps/powerpc/powerpc32/sysdep.h -@@ -90,7 +90,7 @@ GOT_LABEL: ; \ - cfi_endproc; \ - ASM_SIZE_DIRECTIVE(name) - --#if ! IS_IN(rtld) -+#if !IS_IN(rtld) && !defined(__SPE__) - # define ABORT_TRANSACTION_IMPL \ - cmpwi 2,0; \ - beq 1f; \ -diff --git a/sysdeps/powerpc/sysdep.h b/sysdeps/powerpc/sysdep.h -index 03db75fcb7..8a6d236caa 100644 ---- a/sysdeps/powerpc/sysdep.h -+++ b/sysdeps/powerpc/sysdep.h -@@ -174,7 +174,7 @@ - we abort transaction just before syscalls. - - [1] Documentation/powerpc/transactional_memory.txt [Syscalls] */ --#if !IS_IN(rtld) -+#if !IS_IN(rtld) && !defined(__SPE__) - # define ABORT_TRANSACTION \ - ({ \ - if (THREAD_GET_TM_CAPABLE ()) \ -diff --git a/sysdeps/riscv/rvd/s_fmax.c b/sysdeps/riscv/rvd/s_fmax.c -index ef8f1344ce..22e91bfc4b 100644 ---- a/sysdeps/riscv/rvd/s_fmax.c -+++ b/sysdeps/riscv/rvd/s_fmax.c -@@ -17,12 +17,19 @@ - . */ - - #include -+#include - #include - - double - __fmax (double x, double y) - { -- asm ("fmax.d %0, %1, %2" : "=f" (x) : "f" (x), "f" (y)); -- return x; -+ double res; -+ -+ if (__glibc_unlikely ((_FCLASS (x) | _FCLASS (y)) & _FCLASS_SNAN)) -+ return x + y; -+ else -+ asm ("fmax.d %0, %1, %2" : "=f" (res) : "f" (x), "f" (y)); -+ -+ return res; - } - libm_alias_double (__fmax, fmax) -diff --git a/sysdeps/riscv/rvd/s_fmin.c b/sysdeps/riscv/rvd/s_fmin.c -index c6ff24cefb..7b35230cac 100644 ---- a/sysdeps/riscv/rvd/s_fmin.c -+++ b/sysdeps/riscv/rvd/s_fmin.c -@@ -17,12 +17,19 @@ - . */ - - #include -+#include - #include - - double - __fmin (double x, double y) - { -- asm ("fmin.d %0, %1, %2" : "=f" (x) : "f" (x), "f" (y)); -- return x; -+ double res; -+ -+ if (__glibc_unlikely ((_FCLASS (x) | _FCLASS (y)) & _FCLASS_SNAN)) -+ return x + y; -+ else -+ asm ("fmin.d %0, %1, %2" : "=f" (res) : "f" (x), "f" (y)); -+ -+ return res; - } - libm_alias_double (__fmin, fmin) -diff --git a/sysdeps/riscv/rvf/s_fmaxf.c b/sysdeps/riscv/rvf/s_fmaxf.c -index 3293f2f41c..63f7e3d664 100644 ---- a/sysdeps/riscv/rvf/s_fmaxf.c -+++ b/sysdeps/riscv/rvf/s_fmaxf.c -@@ -17,12 +17,19 @@ - . */ - - #include -+#include - #include - - float - __fmaxf (float x, float y) - { -- asm ("fmax.s %0, %1, %2" : "=f" (x) : "f" (x), "f" (y)); -- return x; -+ float res; -+ -+ if (__glibc_unlikely ((_FCLASS (x) | _FCLASS (y)) & _FCLASS_SNAN)) -+ return x + y; -+ else -+ asm ("fmax.s %0, %1, %2" : "=f" (res) : "f" (x), "f" (y)); -+ -+ return res; - } - libm_alias_float (__fmax, fmax) -diff --git a/sysdeps/riscv/rvf/s_fminf.c b/sysdeps/riscv/rvf/s_fminf.c -index e4411f04b2..82cca4e37d 100644 ---- a/sysdeps/riscv/rvf/s_fminf.c -+++ b/sysdeps/riscv/rvf/s_fminf.c -@@ -17,12 +17,19 @@ - . */ - - #include -+#include - #include - - float - __fminf (float x, float y) - { -- asm ("fmin.s %0, %1, %2" : "=f" (x) : "f" (x), "f" (y)); -- return x; -+ float res; -+ -+ if (__glibc_unlikely ((_FCLASS (x) | _FCLASS (y)) & _FCLASS_SNAN)) -+ return x + y; -+ else -+ asm ("fmin.s %0, %1, %2" : "=f" (res) : "f" (x), "f" (y)); -+ -+ return res; - } - libm_alias_float (__fmin, fmin) -diff --git a/sysdeps/riscv/tls-macros.h b/sysdeps/riscv/tls-macros.h -index 5433ed9d16..7f0dd926d0 100644 ---- a/sysdeps/riscv/tls-macros.h -+++ b/sysdeps/riscv/tls-macros.h -@@ -23,19 +23,9 @@ - #include - #include "dl-tls.h" - --#define LOAD_GP \ -- ".option push\n\t" \ -- ".option norelax\n\t" \ -- "la gp, __global_pointer$\n\t" \ -- ".option pop\n\t" -- --#define UNLOAD_GP -- - #define TLS_GD(x) \ - ({ void *__result; \ -- asm (LOAD_GP \ -- "la.tls.gd %0, " #x "\n\t" \ -- UNLOAD_GP \ -+ asm ("la.tls.gd %0, " #x "\n\t" \ - : "=r" (__result)); \ - __tls_get_addr (__result); }) - -@@ -43,19 +33,15 @@ - - #define TLS_IE(x) \ - ({ void *__result; \ -- asm (LOAD_GP \ -- "la.tls.ie %0, " #x "\n\t" \ -+ asm ("la.tls.ie %0, " #x "\n\t" \ - "add %0, %0, tp\n\t" \ -- UNLOAD_GP \ - : "=r" (__result)); \ - __result; }) - - #define TLS_LE(x) \ - ({ void *__result; \ -- asm (LOAD_GP \ -- "lui %0, %%tprel_hi(" #x ")\n\t" \ -+ asm ("lui %0, %%tprel_hi(" #x ")\n\t" \ - "add %0, %0, tp, %%tprel_add(" #x ")\n\t" \ - "addi %0, %0, %%tprel_lo(" #x ")\n\t" \ -- UNLOAD_GP \ - : "=r" (__result)); \ - __result; }) -diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps -index da4224c2d6..11c5f3216d 100644 ---- a/sysdeps/sh/libm-test-ulps -+++ b/sysdeps/sh/libm-test-ulps -@@ -1,13 +1,31 @@ - # Begin of automatic generation - - # Maximal error of functions: --Function: "acos_towardzero": -+Function: "acos": - float: 1 - ifloat: 1 - --Function: "acosh": -+Function: "acos_towardzero": - double: 1 -+float: 1 - idouble: 1 -+ifloat: 1 -+ -+Function: "acosh": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "acosh_towardzero": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "asin": -+float: 1 -+ifloat: 1 - - Function: "asin_towardzero": - double: 1 -@@ -18,16 +36,55 @@ ifloat: 1 - Function: "asinh": - double: 1 - float: 1 -+idouble: 1 -+ifloat: 1 -+ -+Function: "asinh_towardzero": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "atan": -+float: 1 - ifloat: 1 - - Function: "atan2": - float: 1 - ifloat: 1 - --Function: "atanh": -+Function: "atan2_towardzero": -+double: 1 -+float: 2 -+idouble: 1 -+ifloat: 2 -+ -+Function: "atan_towardzero": -+double: 1 - float: 1 -+idouble: 1 - ifloat: 1 - -+Function: "atanh": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "atanh_towardzero": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "cabs": -+double: 1 -+idouble: 1 -+ -+Function: "cabs_towardzero": -+double: 1 -+idouble: 1 -+ - Function: Real part of "cacos": - double: 1 - float: 2 -@@ -35,18 +92,52 @@ idouble: 1 - ifloat: 2 - - Function: Imaginary part of "cacos": --double: 1 -+double: 2 - float: 2 --idouble: 1 -+idouble: 2 -+ifloat: 2 -+ -+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 "cacosh": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: Imaginary part of "cacosh": - double: 1 - float: 2 - idouble: 1 - ifloat: 2 - --Function: Imaginary part of "cacosh": -+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: "carg": -+float: 1 -+ifloat: 1 -+ -+Function: "carg_towardzero": - double: 1 - float: 2 - idouble: 1 -@@ -59,15 +150,27 @@ idouble: 1 - ifloat: 1 - - Function: Imaginary part of "casin": --double: 1 -+double: 2 - float: 2 --idouble: 1 -+idouble: 2 -+ifloat: 2 -+ -+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 "casinh": --double: 1 -+double: 2 - float: 2 --idouble: 1 -+idouble: 2 - ifloat: 2 - - Function: Imaginary part of "casinh": -@@ -76,8 +179,22 @@ float: 1 - idouble: 1 - ifloat: 1 - -+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 "catan": -+double: 1 - float: 1 -+idouble: 1 - ifloat: 1 - - Function: Imaginary part of "catan": -@@ -86,6 +203,18 @@ float: 1 - idouble: 1 - ifloat: 1 - -+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 "catanh": - double: 1 - float: 1 -@@ -93,13 +222,33 @@ idouble: 1 - ifloat: 1 - - Function: Imaginary part of "catanh": -+double: 1 - float: 1 -+idouble: 1 - ifloat: 1 - --Function: "cbrt": -+Function: Real part of "catanh_towardzero": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: Imaginary part of "catanh_towardzero": - double: 1 --float: 1 -+float: 2 - idouble: 1 -+ifloat: 2 -+ -+Function: "cbrt": -+double: 3 -+float: 1 -+idouble: 3 -+ifloat: 1 -+ -+Function: "cbrt_towardzero": -+double: 3 -+float: 1 -+idouble: 3 - ifloat: 1 - - Function: Real part of "ccos": -@@ -114,6 +263,18 @@ float: 1 - idouble: 1 - ifloat: 1 - -+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 "ccosh": - double: 1 - float: 1 -@@ -126,6 +287,18 @@ float: 1 - idouble: 1 - ifloat: 1 - -+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 "cexp": - double: 2 - float: 1 -@@ -138,27 +311,63 @@ float: 2 - idouble: 1 - ifloat: 2 - --Function: Real part of "clog": -+Function: Real part of "cexp_towardzero": - double: 1 --float: 1 -+float: 2 - idouble: 1 --ifloat: 1 -+ifloat: 2 -+ -+Function: Imaginary part of "cexp_towardzero": -+double: 1 -+float: 3 -+idouble: 1 -+ifloat: 3 -+ -+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: Imaginary part of "clog10": -+Function: Real part of "clog10_towardzero": -+double: 5 -+float: 5 -+idouble: 5 -+ifloat: 5 -+ -+Function: Imaginary part of "clog10_towardzero": -+double: 2 -+float: 3 -+idouble: 2 -+ifloat: 3 -+ -+Function: Real part of "clog_towardzero": -+double: 4 -+float: 4 -+idouble: 4 -+ifloat: 4 -+ -+Function: Imaginary part of "clog_towardzero": - double: 1 --float: 1 -+float: 3 - idouble: 1 --ifloat: 1 -+ifloat: 3 - - Function: "cos": - float: 1 -@@ -184,42 +393,90 @@ ifloat: 1 - - Function: Real part of "cpow": - double: 2 --float: 4 -+float: 5 - idouble: 2 --ifloat: 4 -+ifloat: 5 - - Function: Imaginary part of "cpow": - float: 2 - 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 "csin": - double: 1 - float: 1 - idouble: 1 - ifloat: 1 - --Function: Real part of "csinh": --float: 1 --ifloat: 1 -+Function: Real part of "csin_towardzero": -+double: 2 -+float: 3 -+idouble: 2 -+ifloat: 3 - --Function: Imaginary part of "csinh": -+Function: Imaginary part of "csin_towardzero": - double: 1 - float: 1 - idouble: 1 - ifloat: 1 - --Function: Real part of "csqrt": --double: 1 -+Function: Real part of "csinh": - float: 1 --idouble: 1 - ifloat: 1 - --Function: Imaginary part of "csqrt": -+Function: Imaginary part of "csinh": - double: 1 - float: 1 - idouble: 1 - ifloat: 1 - -+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 "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_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 "ctan": - double: 1 - float: 1 -@@ -246,9 +503,9 @@ ifloat: 3 - - Function: Real part of "ctanh": - double: 2 --float: 1 -+float: 2 - idouble: 2 --ifloat: 1 -+ifloat: 2 - - Function: Imaginary part of "ctanh": - double: 2 -@@ -270,25 +527,51 @@ ifloat: 3 - - Function: "erf": - double: 1 -+float: 1 - idouble: 1 -+ifloat: 1 - --Function: "erfc": -+Function: "erf_towardzero": - double: 1 - float: 1 - idouble: 1 - ifloat: 1 - -+Function: "erfc": -+double: 3 -+float: 2 -+idouble: 3 -+ifloat: 2 -+ -+Function: "erfc_towardzero": -+double: 3 -+float: 3 -+idouble: 3 -+ifloat: 3 -+ - Function: "exp10": -+double: 2 -+idouble: 2 -+ -+Function: "exp10_towardzero": -+double: 2 -+float: 1 -+idouble: 2 -+ifloat: 1 -+ -+Function: "exp2": - double: 1 - idouble: 1 - --Function: "exp10_towardzero": -+Function: "exp2_towardzero": - double: 1 - idouble: 1 - - Function: "exp_towardzero": - double: 1 -+float: 1 - idouble: 1 -+ifloat: 1 - - Function: "expm1": - double: 1 -@@ -298,21 +581,31 @@ ifloat: 1 - - Function: "expm1_towardzero": - double: 1 --float: 1 -+float: 2 - idouble: 1 --ifloat: 1 -+ifloat: 2 - - Function: "fma_towardzero": - double: 1 - idouble: 1 - - Function: "gamma": -+double: 4 -+float: 3 -+idouble: 4 -+ifloat: 3 -+ -+Function: "gamma_towardzero": -+double: 5 -+float: 3 -+idouble: 5 -+ifloat: 3 -+ -+Function: "hypot": - double: 1 --float: 1 - idouble: 1 --ifloat: 1 - --Function: "hypot": -+Function: "hypot_towardzero": - double: 1 - idouble: 1 - -@@ -322,44 +615,94 @@ float: 2 - idouble: 2 - ifloat: 2 - -+Function: "j0_towardzero": -+double: 3 -+float: 1 -+idouble: 3 -+ifloat: 1 -+ - Function: "j1": - double: 1 - float: 2 - idouble: 1 - ifloat: 2 - -+Function: "j1_towardzero": -+double: 3 -+float: 2 -+idouble: 3 -+ifloat: 2 -+ - Function: "jn": - double: 4 - float: 4 - idouble: 4 - ifloat: 4 - -+Function: "jn_towardzero": -+double: 5 -+float: 5 -+idouble: 5 -+ifloat: 5 -+ - Function: "lgamma": --double: 1 --float: 1 --idouble: 1 --ifloat: 1 -+double: 4 -+float: 3 -+idouble: 4 -+ifloat: 3 -+ -+Function: "lgamma_towardzero": -+double: 5 -+float: 3 -+idouble: 5 -+ifloat: 3 - - Function: "log": - float: 1 - ifloat: 1 - - Function: "log10": --double: 1 -+double: 2 - float: 2 --idouble: 1 -+idouble: 2 - ifloat: 2 - -+Function: "log10_towardzero": -+double: 2 -+float: 1 -+idouble: 2 -+ifloat: 1 -+ - Function: "log1p": -+double: 1 -+float: 1 -+idouble: 1 -+ifloat: 1 -+ -+Function: "log1p_towardzero": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "log2": -+double: 2 - float: 1 -+idouble: 2 - ifloat: 1 - -+Function: "log2_towardzero": -+double: 2 -+idouble: 2 -+ - Function: "pow": - float: 1 - ifloat: 1 - - Function: "pow_towardzero": -+double: 1 - float: 1 -+idouble: 1 - ifloat: 1 - - Function: "sin": -@@ -376,9 +719,27 @@ Function: "sincos": - float: 1 - ifloat: 1 - --Function: "sinh_towardzero": -+Function: "sincos_towardzero": - double: 1 -+float: 1 - idouble: 1 -+ifloat: 1 -+ -+Function: "sinh": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "sinh_towardzero": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "tan": -+float: 1 -+ifloat: 1 - - Function: "tan_towardzero": - double: 1 -@@ -386,11 +747,29 @@ float: 1 - idouble: 1 - ifloat: 1 - -+Function: "tanh": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ -+Function: "tanh_towardzero": -+double: 2 -+float: 2 -+idouble: 2 -+ifloat: 2 -+ - Function: "tgamma": --double: 4 --float: 3 --idouble: 4 --ifloat: 3 -+double: 5 -+float: 4 -+idouble: 5 -+ifloat: 4 -+ -+Function: "tgamma_towardzero": -+double: 5 -+float: 4 -+idouble: 5 -+ifloat: 4 - - Function: "y0": - double: 2 -@@ -398,16 +777,34 @@ float: 1 - idouble: 2 - ifloat: 1 - -+Function: "y0_towardzero": -+double: 3 -+float: 3 -+idouble: 3 -+ifloat: 3 -+ - Function: "y1": - double: 3 - float: 2 - idouble: 3 - ifloat: 2 - -+Function: "y1_towardzero": -+double: 3 -+float: 2 -+idouble: 3 -+ifloat: 2 -+ - Function: "yn": - double: 3 - float: 2 - idouble: 3 - ifloat: 2 - -+Function: "yn_towardzero": -+double: 3 -+float: 3 -+idouble: 3 -+ifloat: 3 -+ - # end of automatic generation -diff --git a/sysdeps/sparc/sparc32/start.S b/sysdeps/sparc/sparc32/start.S -index 1db7327fc6..46ba8b6afa 100644 ---- a/sysdeps/sparc/sparc32/start.S -+++ b/sysdeps/sparc/sparc32/start.S -@@ -42,7 +42,7 @@ - .global _start - .type _start,#function - _start: --#ifdef SHARED -+#ifdef PIC - SETUP_PIC_REG(l7) - #endif - -@@ -57,7 +57,7 @@ _start: - add %sp, 23*4, %o2 - - /* Load the addresses of the user entry points. */ --#ifndef SHARED -+#ifndef PIC - sethi %hi(main), %o0 - sethi %hi(__libc_csu_init), %o3 - sethi %hi(__libc_csu_fini), %o4 -diff --git a/sysdeps/sparc/sparc64/start.S b/sysdeps/sparc/sparc64/start.S -index e1865f10cb..75ff5093dc 100644 ---- a/sysdeps/sparc/sparc64/start.S -+++ b/sysdeps/sparc/sparc64/start.S -@@ -42,7 +42,7 @@ - .global _start - .type _start,#function - _start: --#ifdef SHARED -+#ifdef PIC - SETUP_PIC_REG(l7) - #endif - -@@ -58,7 +58,7 @@ _start: - add %sp, STACK_BIAS+23*8, %o2 - - /* Load the addresses of the user entry points. */ --#ifndef SHARED -+#ifndef PIC - sethi %hi(main), %o0 - sethi %hi(__libc_csu_init), %o3 - sethi %hi(__libc_csu_fini), %o4 -diff --git a/sysdeps/unix/sysv/linux/aarch64/configure b/sysdeps/unix/sysv/linux/aarch64/configure -index 27d50e1d3c..290670a67a 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/configure -+++ b/sysdeps/unix/sysv/linux/aarch64/configure -@@ -6,10 +6,10 @@ arch_minimum_kernel=3.7.0 - test -n "$libc_cv_slibdir" || - case "$prefix" in - /usr | /usr/) -- libc_cv_slibdir='/lib64' -+ libc_cv_slibdir='/lib' - libc_cv_rtlddir='/lib' - if test "$libdir" = '${exec_prefix}/lib'; then -- libdir='${exec_prefix}/lib64'; -+ libdir='${exec_prefix}/lib'; - # Locale data can be shared between 32-bit and 64-bit libraries. - libc_cv_complocaledir='${exec_prefix}/lib/locale' - fi -diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h -index 4be45b95ff..93e373c3ad 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h -@@ -78,18 +78,10 @@ enum __ptrace_request - PTRACE_DETACH = 17, - #define PT_DETACH PTRACE_DETACH - -- PTRACE_GET_THREAD_AREA = 22, -- - /* Continue and stop at the next entry to or return from syscall. */ - PTRACE_SYSCALL = 24, - #define PT_SYSCALL PTRACE_SYSCALL - -- /* Get all hardware breakpoint registers. */ -- PTRACE_GETHBPREGS = 29, -- -- /* Set all hardware breakpoint registers. */ -- PTRACE_SETHBPREGS = 30, -- - /* Set ptrace filter options. */ - PTRACE_SETOPTIONS = 0x4200, - #define PT_SETOPTIONS PTRACE_SETOPTIONS -@@ -140,8 +132,12 @@ enum __ptrace_request - #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ -- PTRACE_SECCOMP_GET_FILTER = 0x420c -+ PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -+ -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - }; - - -diff --git a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h -index fbcb9384bd..bc54a1e5e2 100644 ---- a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h -@@ -192,8 +192,12 @@ enum __ptrace_request - #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ -- PTRACE_SECCOMP_GET_FILTER = 0x420c -+ PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -+ -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - }; - - -diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h -index 7715e680ca..d15ba95c9d 100644 ---- a/sysdeps/unix/sysv/linux/bits/mman-shared.h -+++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h -@@ -61,7 +61,7 @@ int pkey_set (int __key, unsigned int __access_rights) __THROW; - - /* Return the access rights for the current thread for KEY, which must - have been allocated using pkey_alloc. */ --int pkey_get (int _key) __THROW; -+int pkey_get (int __key) __THROW; - - /* Free an allocated protection key, which must have been allocated - using pkey_alloc. */ -diff --git a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h -index 960b101f94..03a779140c 100644 ---- a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h -+++ b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h -@@ -66,6 +66,13 @@ enum __ptrace_peeksiginfo_flags - PTRACE_PEEKSIGINFO_SHARED = (1 << 0) - }; - -+/* Argument and results of PTRACE_SECCOMP_GET_METADATA. */ -+struct __ptrace_seccomp_metadata -+{ -+ __uint64_t filter_off; /* Input: which filter. */ -+ __uint64_t flags; /* Output: filter's flags. */ -+}; -+ - /* 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/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/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h -index 53663ed1a2..8698bc1200 100644 ---- a/sysdeps/unix/sysv/linux/bits/uio-ext.h -+++ b/sysdeps/unix/sysv/linux/bits/uio-ext.h -@@ -46,6 +46,7 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec, - #define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC. */ - #define RWF_SYNC 0x00000004 /* per-IO O_SYNC. */ - #define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */ -+#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */ - - __END_DECLS - -diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c -index 84c51d0ecd..7a814ea92f 100644 ---- a/sysdeps/unix/sysv/linux/getlogin_r.c -+++ b/sysdeps/unix/sysv/linux/getlogin_r.c -@@ -54,6 +54,15 @@ __getlogin_r_loginuid (char *name, size_t namesize) - endp == uidbuf || *endp != '\0')) - return -1; - -+ /* If there is no login uid, linux sets /proc/self/loginid to the sentinel -+ value of, (uid_t) -1, so check if that value is set and return early to -+ avoid making unneeded nss lookups. */ -+ if (uid == (uid_t) -1) -+ { -+ __set_errno (ENXIO); -+ return ENXIO; -+ } -+ - size_t buflen = 1024; - char *buf = alloca (buflen); - bool use_malloc = false; -diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile -index 4080b8c966..da716e2c1b 100644 ---- a/sysdeps/unix/sysv/linux/i386/Makefile -+++ b/sysdeps/unix/sysv/linux/i386/Makefile -@@ -3,6 +3,9 @@ default-abi := 32 - - ifeq ($(subdir),misc) - sysdep_routines += ioperm iopl vm86 -+ -+tests += tst-bz21269 -+$(objpfx)tst-bz21269: $(shared-thread-library) - endif - - ifeq ($(subdir),elf) -diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c -index a5eb9e0d3e..177ff60ee6 100644 ---- a/sysdeps/unix/sysv/linux/i386/sigaction.c -+++ b/sysdeps/unix/sysv/linux/i386/sigaction.c -@@ -42,7 +42,6 @@ extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; - #endif - extern void restore (void) asm ("__restore") attribute_hidden; - -- - /* If ACT is not NULL, change the action for SIG to *ACT. - If OACT is not NULL, put the old action for SIG in *OACT. */ - int -@@ -65,6 +64,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) - kact.sa_restorer = ((act->sa_flags & SA_SIGINFO) - ? &restore_rt : &restore); - } -+ else -+ kact.sa_restorer = NULL; - } - - /* XXX The size argument hopefully will have to be changed to the -diff --git a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c -new file mode 100644 -index 0000000000..6ee3fc62be ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c -@@ -0,0 +1,235 @@ -+/* Test for i386 sigaction sa_restorer handling (BZ#21269) -+ 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 -+ . */ -+ -+/* This is based on Linux test tools/testing/selftests/x86/ldt_gdt.c, -+ more specifically in do_multicpu_tests function. The main changes -+ are: -+ -+ - C11 atomics instead of plain access. -+ - Remove x86_64 support which simplifies the syscall handling -+ and fallbacks. -+ - Replicate only the test required to trigger the issue for the -+ BZ#21269. */ -+ -+#include -+ -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+static int -+xset_thread_area (struct user_desc *u_info) -+{ -+ long ret = syscall (SYS_set_thread_area, u_info); -+ TEST_VERIFY_EXIT (ret == 0); -+ return ret; -+} -+ -+static void -+xmodify_ldt (int func, const void *ptr, unsigned long bytecount) -+{ -+ TEST_VERIFY_EXIT (syscall (SYS_modify_ldt, 1, ptr, bytecount) == 0); -+} -+ -+static int -+futex (int *uaddr, int futex_op, int val, void *timeout, int *uaddr2, -+ int val3) -+{ -+ return syscall (SYS_futex, uaddr, futex_op, val, timeout, uaddr2, val3); -+} -+ -+static void -+xsethandler (int sig, void (*handler)(int, siginfo_t *, void *), int flags) -+{ -+ struct sigaction sa = { 0 }; -+ sa.sa_sigaction = handler; -+ sa.sa_flags = SA_SIGINFO | flags; -+ TEST_VERIFY_EXIT (sigemptyset (&sa.sa_mask) == 0); -+ TEST_VERIFY_EXIT (sigaction (sig, &sa, 0) == 0); -+} -+ -+static jmp_buf jmpbuf; -+ -+static void -+sigsegv_handler (int sig, siginfo_t *info, void *ctx_void) -+{ -+ siglongjmp (jmpbuf, 1); -+} -+ -+/* Points to an array of 1024 ints, each holding its own index. */ -+static const unsigned int *counter_page; -+static struct user_desc *low_user_desc; -+static struct user_desc *low_user_desc_clear; /* Used to delete GDT entry. */ -+static int gdt_entry_num; -+ -+static void -+setup_counter_page (void) -+{ -+ long page_size = sysconf (_SC_PAGE_SIZE); -+ TEST_VERIFY_EXIT (page_size > 0); -+ unsigned int *page = xmmap (NULL, page_size, PROT_READ | PROT_WRITE, -+ MAP_ANONYMOUS | MAP_PRIVATE | MAP_32BIT, -1); -+ for (int i = 0; i < (page_size / sizeof (unsigned int)); i++) -+ page[i] = i; -+ counter_page = page; -+} -+ -+static void -+setup_low_user_desc (void) -+{ -+ low_user_desc = xmmap (NULL, 2 * sizeof (struct user_desc), -+ PROT_READ | PROT_WRITE, -+ MAP_ANONYMOUS | MAP_PRIVATE | MAP_32BIT, -1); -+ -+ low_user_desc->entry_number = -1; -+ low_user_desc->base_addr = (unsigned long) &counter_page[1]; -+ low_user_desc->limit = 0xffff; -+ low_user_desc->seg_32bit = 1; -+ low_user_desc->contents = 0; -+ low_user_desc->read_exec_only = 0; -+ low_user_desc->limit_in_pages = 1; -+ low_user_desc->seg_not_present = 0; -+ low_user_desc->useable = 0; -+ -+ xset_thread_area (low_user_desc); -+ -+ low_user_desc_clear = low_user_desc + 1; -+ low_user_desc_clear->entry_number = gdt_entry_num; -+ low_user_desc_clear->read_exec_only = 1; -+ low_user_desc_clear->seg_not_present = 1; -+} -+ -+/* Possible values of futex: -+ 0: thread is idle. -+ 1: thread armed. -+ 2: thread should clear LDT entry 0. -+ 3: thread should exit. */ -+static atomic_uint ftx; -+ -+static void * -+threadproc (void *ctx) -+{ -+ while (1) -+ { -+ futex ((int *) &ftx, FUTEX_WAIT, 1, NULL, NULL, 0); -+ while (atomic_load (&ftx) != 2) -+ { -+ if (atomic_load (&ftx) >= 3) -+ return NULL; -+ } -+ -+ /* clear LDT entry 0. */ -+ const struct user_desc desc = { 0 }; -+ xmodify_ldt (1, &desc, sizeof (desc)); -+ -+ /* If ftx == 2, set it to zero, If ftx == 100, quit. */ -+ if (atomic_fetch_add (&ftx, -2) != 2) -+ return NULL; -+ } -+} -+ -+ -+/* As described in testcase, for historical reasons x86_32 Linux (and compat -+ on x86_64) interprets SA_RESTORER clear with nonzero sa_restorer as a -+ request for stack switching if the SS segment is 'funny' (this is default -+ scenario for vDSO system). This means that anything that tries to mix -+ signal handling with segmentation should explicit clear the sa_restorer. -+ -+ This testcase check if sigaction in fact does it by changing the local -+ descriptor table (LDT) through the modify_ldt syscall and triggering -+ a synchronous segfault on iret fault by trying to install an invalid -+ segment. With a correct zeroed sa_restorer it should not trigger an -+ 'real' SEGSEGV and allows the siglongjmp in signal handler. */ -+ -+static int -+do_test (void) -+{ -+ setup_counter_page (); -+ setup_low_user_desc (); -+ -+ pthread_t thread; -+ unsigned short orig_ss; -+ -+ xsethandler (SIGSEGV, sigsegv_handler, 0); -+ /* 32-bit kernels send SIGILL instead of SIGSEGV on IRET faults. */ -+ xsethandler (SIGILL, sigsegv_handler, 0); -+ /* Some kernels send SIGBUS instead. */ -+ xsethandler (SIGBUS, sigsegv_handler, 0); -+ -+ thread = xpthread_create (0, threadproc, 0); -+ -+ asm volatile ("mov %%ss, %0" : "=rm" (orig_ss)); -+ -+ for (int i = 0; i < 5; i++) -+ { -+ if (sigsetjmp (jmpbuf, 1) != 0) -+ continue; -+ -+ /* Make sure the thread is ready after the last test. */ -+ while (atomic_load (&ftx) != 0) -+ ; -+ -+ struct user_desc desc = { -+ .entry_number = 0, -+ .base_addr = 0, -+ .limit = 0xffff, -+ .seg_32bit = 1, -+ .contents = 0, -+ .read_exec_only = 0, -+ .limit_in_pages = 1, -+ .seg_not_present = 0, -+ .useable = 0 -+ }; -+ -+ xmodify_ldt (0x11, &desc, sizeof (desc)); -+ -+ /* Arm the thread. */ -+ ftx = 1; -+ futex ((int*) &ftx, FUTEX_WAKE, 0, NULL, NULL, 0); -+ -+ asm volatile ("mov %0, %%ss" : : "r" (0x7)); -+ -+ /* Fire up thread modify_ldt call. */ -+ atomic_store (&ftx, 2); -+ -+ while (atomic_load (&ftx) != 0) -+ ; -+ -+ /* On success, modify_ldt will segfault us synchronously and we will -+ escape via siglongjmp. */ -+ support_record_failure (); -+ } -+ -+ atomic_store (&ftx, 100); -+ futex ((int*) &ftx, FUTEX_WAKE, 0, NULL, NULL, 0); -+ -+ xpthread_join (thread); -+ -+ return 0; -+} -+ -+#include -diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h -index 1c73b9dee6..e00b1212fc 100644 ---- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h -@@ -145,8 +145,12 @@ enum __ptrace_request - #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ -- PTRACE_SECCOMP_GET_FILTER = 0x420c -+ PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -+ -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - }; - - -diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c -index e3d08982d9..782fc5e175 100644 ---- a/sysdeps/unix/sysv/linux/if_index.c -+++ b/sysdeps/unix/sysv/linux/if_index.c -@@ -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 32381f54e4..ac0e1e5738 100644 ---- a/sysdeps/unix/sysv/linux/ifaddrs.c -+++ b/sysdeps/unix/sysv/linux/ifaddrs.c -@@ -370,6 +370,14 @@ getifaddrs_internal (struct ifaddrs **ifap) - if ((pid_t) nlh->nlmsg_pid != nh.pid || nlh->nlmsg_seq != nlp->seq) - continue; - -+ /* If the dump got interrupted, we can't rely on the results -+ so try again. */ -+ if (nlh->nlmsg_flags & NLM_F_DUMP_INTR) -+ { -+ result = -EAGAIN; -+ goto exit_free; -+ } -+ - if (nlh->nlmsg_type == NLMSG_DONE) - break; /* ok */ - -diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c -index b7093feab9..98a23f0dd2 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c -+++ b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c -@@ -45,6 +45,7 @@ - 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) -@@ -82,5 +83,6 @@ __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-trylock.c b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c -index b74a810648..fabb03b2c4 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c -+++ b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c -@@ -30,6 +30,7 @@ - int - __lll_trylock_elision (int *futex, short *adapt_count) - { -+#ifndef __SPE__ - /* Implement POSIX semantics by forbiding nesting elided trylocks. */ - __libc_tabort (_ABORT_NESTED_TRYLOCK); - -@@ -65,5 +66,6 @@ __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 dcfab199d7..14e0680ee9 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c -+++ b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c -@@ -23,6 +23,7 @@ - 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); -@@ -39,5 +40,8 @@ __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..d8f5a4b1c7 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/force-elision.h -+++ b/sysdeps/unix/sysv/linux/powerpc/force-elision.h -@@ -18,9 +18,45 @@ - - /* 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/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h -index 75567b2bad..9fde99c748 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h -@@ -24,6 +24,50 @@ - - __BEGIN_DECLS - -+#if defined _LINUX_PTRACE_H || defined _ASM_POWERPC_PTRACE_H -+/* Do not let Linux headers macros interfere with enum __ptrace_request. */ -+# undef PTRACE_ATTACH -+# undef PTRACE_CONT -+# undef PTRACE_DETACH -+# undef PTRACE_GET_DEBUGREG -+# undef PTRACE_GETEVENTMSG -+# undef PTRACE_GETEVRREGS -+# undef PTRACE_GETFPREGS -+# undef PTRACE_GETREGS -+# undef PTRACE_GETREGS64 -+# undef PTRACE_GETREGSET -+# undef PTRACE_GETSIGINFO -+# undef PTRACE_GETSIGMASK -+# undef PTRACE_GETVRREGS -+# undef PTRACE_GETVSRREGS -+# undef PTRACE_INTERRUPT -+# undef PTRACE_KILL -+# undef PTRACE_LISTEN -+# undef PTRACE_PEEKDATA -+# undef PTRACE_PEEKSIGINFO -+# undef PTRACE_PEEKTEXT -+# undef PTRACE_POKEDATA -+# undef PTRACE_POKETEXT -+# undef PTRACE_SECCOMP_GET_FILTER -+# undef PTRACE_SECCOMP_GET_METADATA -+# undef PTRACE_SEIZE -+# undef PTRACE_SET_DEBUGREG -+# undef PTRACE_SETEVRREGS -+# undef PTRACE_SETFPREGS -+# undef PTRACE_SETOPTIONS -+# undef PTRACE_SETREGS -+# undef PTRACE_SETREGS64 -+# undef PTRACE_SETREGSET -+# undef PTRACE_SETSIGINFO -+# undef PTRACE_SETSIGMASK -+# undef PTRACE_SETVRREGS -+# undef PTRACE_SETVSRREGS -+# undef PTRACE_SINGLEBLOCK -+# undef PTRACE_SINGLESTEP -+# undef PTRACE_SYSCALL -+# undef PTRACE_TRACEME -+#endif -+ - /* Type of the REQUEST argument to `ptrace.' */ - enum __ptrace_request - { -@@ -69,6 +113,22 @@ enum __ptrace_request - PTRACE_SINGLESTEP = 9, - #define PT_STEP PTRACE_SINGLESTEP - -+ /* Get all general purpose registers used by a process. */ -+ PTRACE_GETREGS = 12, -+#define PT_GETREGS PTRACE_GETREGS -+ -+ /* Set all general purpose registers used by a process. */ -+ PTRACE_SETREGS = 13, -+#define PT_SETREGS PTRACE_SETREGS -+ -+ /* Get all floating point registers used by a process. */ -+ PTRACE_GETFPREGS = 14, -+#define PT_GETFPREGS PTRACE_GETFPREGS -+ -+ /* Set all floating point registers used by a process. */ -+ PTRACE_SETFPREGS = 15, -+#define PT_SETFPREGS PTRACE_SETFPREGS -+ - /* Attach to a process that is already running. */ - PTRACE_ATTACH = 16, - #define PT_ATTACH PTRACE_ATTACH -@@ -77,10 +137,56 @@ enum __ptrace_request - PTRACE_DETACH = 17, - #define PT_DETACH PTRACE_DETACH - -+ /* Get all altivec registers used by a process. */ -+ PTRACE_GETVRREGS = 18, -+#define PT_GETVRREGS PTRACE_GETVRREGS -+ -+ /* Set all altivec registers used by a process. */ -+ PTRACE_SETVRREGS = 19, -+#define PT_SETVRREGS PTRACE_SETVRREGS -+ -+ /* Get all SPE registers used by a process. */ -+ PTRACE_GETEVRREGS = 20, -+#define PT_GETEVRREGS PTRACE_GETEVRREGS -+ -+ /* Set all SPE registers used by a process. */ -+ PTRACE_SETEVRREGS = 21, -+#define PT_SETEVRREGS PTRACE_SETEVRREGS -+ -+ /* Same as PTRACE_GETREGS except a 32-bit process will obtain -+ the full 64-bit registers. Implemented by 64-bit kernels only. */ -+ PTRACE_GETREGS64 = 22, -+#define PT_GETREGS64 PTRACE_GETREGS64 -+ -+ /* Same as PTRACE_SETREGS except a 32-bit process will set -+ the full 64-bit registers. Implemented by 64-bit kernels only. */ -+ PTRACE_SETREGS64 = 23, -+#define PT_SETREGS64 PTRACE_SETREGS64 -+ - /* Continue and stop at the next entry to or return from syscall. */ - PTRACE_SYSCALL = 24, - #define PT_SYSCALL PTRACE_SYSCALL - -+ /* Get a debug register of a process. */ -+ PTRACE_GET_DEBUGREG = 25, -+#define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG -+ -+ /* Set a debug register of a process. */ -+ PTRACE_SET_DEBUGREG = 26, -+#define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG -+ -+ /* Get the first 32 VSX registers of a process. */ -+ PTRACE_GETVSRREGS = 27, -+#define PT_GETVSRREGS PTRACE_GETVSRREGS -+ -+ /* Set the first 32 VSX registers of a process. */ -+ PTRACE_SETVSRREGS = 28, -+#define PT_SETVSRREGS PTRACE_SETVSRREGS -+ -+ /* Execute process until next taken branch. */ -+ PTRACE_SINGLEBLOCK = 256, -+#define PT_STEPBLOCK PTRACE_SINGLEBLOCK -+ - /* Set ptrace filter options. */ - PTRACE_SETOPTIONS = 0x4200, - #define PT_SETOPTIONS PTRACE_SETOPTIONS -@@ -131,8 +237,12 @@ enum __ptrace_request - #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ -- PTRACE_SECCOMP_GET_FILTER = 0x420c -+ PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -+ -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - }; - - -diff --git a/sysdeps/unix/sysv/linux/preadv2.c b/sysdeps/unix/sysv/linux/preadv2.c -index 06d29b1322..bb08cbc5fd 100644 ---- a/sysdeps/unix/sysv/linux/preadv2.c -+++ b/sysdeps/unix/sysv/linux/preadv2.c -@@ -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: -@@ -49,7 +49,10 @@ preadv2 (int fd, const struct iovec *vector, int count, off_t offset, - __set_errno (ENOTSUP); - return -1; - } -- return preadv (fd, vector, count, offset); -+ if (offset == -1) -+ return __readv (fd, vector, count); -+ else -+ return preadv (fd, vector, count, offset); - } - - #endif -diff --git a/sysdeps/unix/sysv/linux/preadv64v2.c b/sysdeps/unix/sysv/linux/preadv64v2.c -index 58f7848352..b72a047347 100644 ---- a/sysdeps/unix/sysv/linux/preadv64v2.c -+++ b/sysdeps/unix/sysv/linux/preadv64v2.c -@@ -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: -@@ -47,7 +47,11 @@ preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset, - __set_errno (ENOTSUP); - return -1; - } -- return preadv64 (fd, vector, count, offset); -+ -+ if (offset == -1) -+ return __readv (fd, vector, count); -+ else -+ return preadv64 (fd, vector, count, offset); - } - - #ifdef __OFF_T_MATCHES_OFF64_T -diff --git a/sysdeps/unix/sysv/linux/pwritev2.c b/sysdeps/unix/sysv/linux/pwritev2.c -index d50d9f51f9..26333ebd43 100644 ---- a/sysdeps/unix/sysv/linux/pwritev2.c -+++ b/sysdeps/unix/sysv/linux/pwritev2.c -@@ -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: -@@ -45,7 +45,10 @@ pwritev2 (int fd, const struct iovec *vector, int count, off_t offset, - __set_errno (ENOTSUP); - return -1; - } -- return pwritev (fd, vector, count, offset); -+ if (offset == -1) -+ return __writev (fd, vector, count); -+ else -+ return pwritev (fd, vector, count, offset); - } - - #endif -diff --git a/sysdeps/unix/sysv/linux/pwritev64v2.c b/sysdeps/unix/sysv/linux/pwritev64v2.c -index 40c2387690..17ea905aa6 100644 ---- a/sysdeps/unix/sysv/linux/pwritev64v2.c -+++ b/sysdeps/unix/sysv/linux/pwritev64v2.c -@@ -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: -@@ -47,7 +47,10 @@ pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset, - __set_errno (ENOTSUP); - return -1; - } -- return pwritev64 (fd, vector, count, offset); -+ if (offset == -1) -+ return __writev (fd, vector, count); -+ else -+ return pwritev64 (fd, vector, count, offset); - } - - #ifdef __OFF_T_MATCHES_OFF64_T -diff --git a/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h b/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h -new file mode 100644 -index 0000000000..2a62bcc5bc ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h -@@ -0,0 +1,7 @@ -+/* This is the sigaction structure from the RISC-V Linux 4.15 kernel. */ -+ -+struct kernel_sigaction { -+ __sighandler_t k_sa_handler; -+ unsigned long sa_flags; -+ sigset_t sa_mask; -+}; -diff --git a/sysdeps/unix/sysv/linux/riscv/readelflib.c b/sysdeps/unix/sysv/linux/riscv/readelflib.c -index 6e249ff82f..7e27e0c1d6 100644 ---- a/sysdeps/unix/sysv/linux/riscv/readelflib.c -+++ b/sysdeps/unix/sysv/linux/riscv/readelflib.c -@@ -43,6 +43,7 @@ process_elf_file (const char *file_name, const char *lib, int *flag, - { - ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; - Elf32_Ehdr *elf32_header = (Elf32_Ehdr *) elf_header; -+ Elf64_Ehdr *elf64_header = (Elf64_Ehdr *) elf_header; - int ret; - long flags; - -@@ -59,7 +60,7 @@ process_elf_file (const char *file_name, const char *lib, int *flag, - { - ret = process_elf64_file (file_name, lib, flag, osversion, soname, - file_contents, file_length); -- flags = elf32_header->e_flags; -+ flags = elf64_header->e_flags; - } - - /* RISC-V linkers encode the floating point ABI as part of the ELF headers. */ -diff --git a/sysdeps/unix/sysv/linux/s390/force-elision.h b/sysdeps/unix/sysv/linux/s390/force-elision.h -index d8a1b9972f..71f32367dd 100644 ---- a/sysdeps/unix/sysv/linux/s390/force-elision.h -+++ b/sysdeps/unix/sysv/linux/s390/force-elision.h -@@ -18,9 +18,45 @@ - - /* 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/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h -index cca02489d6..d60a034b11 100644 ---- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h -@@ -52,6 +52,7 @@ __BEGIN_DECLS - # undef PTRACE_GETSIGMASK - # undef PTRACE_SETSIGMASK - # undef PTRACE_SECCOMP_GET_FILTER -+# undef PTRACE_SECCOMP_GET_METADATA - # undef PTRACE_PEEKUSR_AREA - # undef PTRACE_POKEUSR_AREA - # undef PTRACE_GET_LAST_BREAK -@@ -193,6 +194,10 @@ enum __ptrace_request - PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER - -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d, -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA -+ - PTRACE_PEEKUSR_AREA = 0x5000, - #define PTRACE_PEEKUSR_AREA PTRACE_PEEKUSR_AREA - -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/sparc32/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S -index 695f172c63..283aef1b30 100644 ---- a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S -+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S -@@ -95,6 +95,19 @@ END(__setcontext) - - weak_alias (__setcontext, setcontext) - -+/* We add an NOP here to separate between __setcontext/__startcontext. The -+ wanted behavior that happens is: when unwinding from a function called -+ inside a makecontext() context, FDE lookup will use '&__startcontext - 1', -+ then returns NULL for no FDE found, and immediately ends the unwind, in -+ a normal fashion. -+ -+ If this NOP word does not exist, FDE lookup just repeatedly finds -+ __setcontext's FDE in an infinite loop, due to the convention of using -+ 'address - 1' for FDE lookup. Modifiying/deleting the below -+ __startcontext's FDE has no help on this. */ -+ -+ nop -+ - /* This is the helper code which gets called if a function which is - registered with 'makecontext' returns. In this case we have to - install the context listed in the uc_link element of the context -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/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h -index 9193275fac..c037734666 100644 ---- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h -@@ -213,8 +213,12 @@ enum __ptrace_request - #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ -- PTRACE_SECCOMP_GET_FILTER = 0x420c -+ PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -+ -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - }; - - -diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c -index 6b699a46dd..5fa49b229e 100644 ---- a/sysdeps/unix/sysv/linux/spawni.c -+++ b/sysdeps/unix/sysv/linux/spawni.c -@@ -101,7 +101,7 @@ 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) -@@ -404,6 +404,8 @@ __spawni (pid_t * pid, const char *file, - const posix_spawnattr_t * attrp, char *const argv[], - char *const envp[], int xflags) - { -+ /* It uses __execvpex to avoid run ENOEXEC in non compatibility mode (it -+ will be handled by maybe_script_execute). */ - return __spawnix (pid, file, acts, attrp, argv, envp, xflags, -- xflags & SPAWN_XFLAGS_USE_PATH ? __execvpe : __execve); -+ xflags & SPAWN_XFLAGS_USE_PATH ? __execvpex :__execve); - } -diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h -index 85772f348a..3c71a0ebd6 100644 ---- a/sysdeps/unix/sysv/linux/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/sys/ptrace.h -@@ -162,8 +162,12 @@ enum __ptrace_request - #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ -- PTRACE_SECCOMP_GET_FILTER = 0x420c -+ PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -+ -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - }; - - -diff --git a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h -index a1db185073..d391037ca8 100644 ---- a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h -@@ -136,8 +136,12 @@ enum __ptrace_request - #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ -- PTRACE_SECCOMP_GET_FILTER = 0x420c -+ PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -+ -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - }; - - -diff --git a/sysdeps/unix/sysv/linux/x86/force-elision.h b/sysdeps/unix/sysv/linux/x86/force-elision.h -index dd659c908f..61282d6678 100644 ---- a/sysdeps/unix/sysv/linux/x86/force-elision.h -+++ b/sysdeps/unix/sysv/linux/x86/force-elision.h -@@ -18,9 +18,45 @@ - - /* 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/sys/ptrace.h b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h -index 60003422b3..6d4605b6ed 100644 ---- a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h -+++ b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h -@@ -182,8 +182,12 @@ enum __ptrace_request - #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK - - /* Get seccomp BPF filters. */ -- PTRACE_SECCOMP_GET_FILTER = 0x420c -+ PTRACE_SECCOMP_GET_FILTER = 0x420c, - #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER -+ -+ /* Get seccomp BPF filter metadata. */ -+ PTRACE_SECCOMP_GET_METADATA = 0x420d -+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA - }; - - -diff --git a/sysdeps/unix/sysv/linux/x86_64/64/configure b/sysdeps/unix/sysv/linux/x86_64/64/configure -index 9d298faba7..cef1ec842c 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/64/configure -+++ b/sysdeps/unix/sysv/linux/x86_64/64/configure -@@ -4,10 +4,10 @@ - test -n "$libc_cv_slibdir" || - case "$prefix" in - /usr | /usr/) -- libc_cv_slibdir='/lib64' -- libc_cv_rtlddir='/lib64' -+ libc_cv_slibdir='/lib' -+ libc_cv_rtlddir='/lib' - if test "$libdir" = '${exec_prefix}/lib'; then -- libdir='${exec_prefix}/lib64'; -+ libdir='${exec_prefix}/lib'; - # Locale data can be shared between 32-bit and 64-bit libraries. - libc_cv_complocaledir='${exec_prefix}/lib/locale' - fi -diff --git a/sysdeps/unix/sysv/linux/x86_64/ldconfig.h b/sysdeps/unix/sysv/linux/x86_64/ldconfig.h -index c7e9ad674d..cd47995d4a 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/ldconfig.h -+++ b/sysdeps/unix/sysv/linux/x86_64/ldconfig.h -@@ -18,9 +18,9 @@ - #include - - #define SYSDEP_KNOWN_INTERPRETER_NAMES \ -- { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 }, \ -+ { "/lib32/ld-linux.so.2", FLAG_ELF_LIBC6 }, \ - { "/libx32/ld-linux-x32.so.2", FLAG_ELF_LIBC6 }, \ -- { "/lib64/ld-linux-x86-64.so.2", FLAG_ELF_LIBC6 }, -+ { "/lib/ld-linux-x86-64.so.2", 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/x86_64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed -index 44d76e8aa1..7d6cb1e20b 100644 ---- a/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed -+++ b/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed -@@ -1,3 +1,3 @@ - /LD_TRACE_LOADED_OBJECTS=1/a\ - add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out" --s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_ -+s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\232\4\6 \2\4-x86-64\6 \2x32\4-x32\6"_ -diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c -index 0fc3674c4b..ecc82fc6af 100644 ---- a/sysdeps/x86/cpu-features.c -+++ b/sysdeps/x86/cpu-features.c -@@ -30,6 +30,20 @@ extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *) - attribute_hidden; - #endif - -+static void -+get_extended_indices (struct cpu_features *cpu_features) -+{ -+ unsigned int eax, ebx, ecx, edx; -+ __cpuid (0x80000000, eax, ebx, ecx, edx); -+ if (eax >= 0x80000001) -+ __cpuid (0x80000001, -+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].eax, -+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ebx, -+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ecx, -+ cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].edx); -+ -+} -+ - static void - get_common_indeces (struct cpu_features *cpu_features, - unsigned int *family, unsigned int *model, -@@ -205,6 +219,8 @@ init_cpu_features (struct cpu_features *cpu_features) - get_common_indeces (cpu_features, &family, &model, &extended_model, - &stepping); - -+ get_extended_indices (cpu_features); -+ - if (family == 0x06) - { - model += extended_model; -@@ -281,7 +297,13 @@ init_cpu_features (struct cpu_features *cpu_features) - | 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) -@@ -324,16 +346,9 @@ init_cpu_features (struct cpu_features *cpu_features) - get_common_indeces (cpu_features, &family, &model, &extended_model, - &stepping); - -- ecx = cpu_features->cpuid[COMMON_CPUID_INDEX_1].ecx; -+ get_extended_indices (cpu_features); - -- unsigned int eax; -- __cpuid (0x80000000, eax, ebx, ecx, edx); -- if (eax >= 0x80000001) -- __cpuid (0x80000001, -- cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].eax, -- cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ebx, -- cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].ecx, -- cpu_features->cpuid[COMMON_CPUID_INDEX_80000001].edx); -+ ecx = cpu_features->cpuid[COMMON_CPUID_INDEX_1].ecx; - - if (HAS_ARCH_FEATURE (AVX_Usable)) - { -diff --git a/sysdeps/x86/cpu-features.h b/sysdeps/x86/cpu-features.h -index c60c2e4eeb..4588c11095 100644 ---- a/sysdeps/x86/cpu-features.h -+++ b/sysdeps/x86/cpu-features.h -@@ -106,7 +106,7 @@ enum - { - COMMON_CPUID_INDEX_1 = 0, - COMMON_CPUID_INDEX_7, -- COMMON_CPUID_INDEX_80000001, /* for AMD */ -+ COMMON_CPUID_INDEX_80000001, - /* Keep the following line at the end. */ - COMMON_CPUID_INDEX_MAX - }; -@@ -202,7 +202,7 @@ extern const struct cpu_features *__get_cpu_features (void) - # 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_1 -+# 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 -diff --git a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S -index 23c0f7a9ed..effc3ac2de 100644 ---- a/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S -+++ b/sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S -@@ -336,6 +336,7 @@ L(preloop_large): - vmovups (%rsi), %zmm4 - vmovups 0x40(%rsi), %zmm5 - -+ mov %rdi, %r11 - /* Align destination for access with non-temporal stores in the loop. */ - mov %rdi, %r8 - and $-0x80, %rdi -@@ -366,8 +367,8 @@ L(gobble_256bytes_nt_loop): - cmp $256, %rdx - ja L(gobble_256bytes_nt_loop) - sfence -- vmovups %zmm4, (%rax) -- vmovups %zmm5, 0x40(%rax) -+ vmovups %zmm4, (%r11) -+ vmovups %zmm5, 0x40(%r11) - jmp L(check) - - L(preloop_large_bkw): -diff --git a/sysdeps/x86_64/multiarch/strncmp-sse2.S b/sysdeps/x86_64/multiarch/strncmp-sse2.S -index cc5252d826..a5ecb82b13 100644 ---- a/sysdeps/x86_64/multiarch/strncmp-sse2.S -+++ b/sysdeps/x86_64/multiarch/strncmp-sse2.S -@@ -18,10 +18,13 @@ - - #include - --#define STRCMP __strncmp_sse2 -- --#undef libc_hidden_builtin_def --#define libc_hidden_builtin_def(strcmp) -+#if IS_IN (libc) -+# define STRCMP __strncmp_sse2 -+# undef libc_hidden_builtin_def -+# define libc_hidden_builtin_def(strcmp) -+#else -+# define STRCMP strncmp -+#endif - - #define USE_AS_STRNCMP - #include -diff --git a/time/bits/types/struct_timespec.h b/time/bits/types/struct_timespec.h -index 644db9fdb6..5b77c52b4f 100644 ---- a/time/bits/types/struct_timespec.h -+++ b/time/bits/types/struct_timespec.h -@@ -1,5 +1,6 @@ --#ifndef __timespec_defined --#define __timespec_defined 1 -+/* NB: Include guard matches what uses. */ -+#ifndef _STRUCT_TIMESPEC -+#define _STRUCT_TIMESPEC 1 - - #include - -diff --git a/time/time.h b/time/time.h -index 49d30438f3..4b55e34402 100644 ---- a/time/time.h -+++ b/time/time.h -@@ -68,7 +68,7 @@ typedef __pid_t pid_t; - __BEGIN_DECLS - - /* Time used by the program so far (user time + system time). -- The result / CLOCKS_PER_SECOND is program time in seconds. */ -+ The result / CLOCKS_PER_SEC is program time in seconds. */ - extern clock_t clock (void) __THROW; - - /* Return the current time and put it in *TIMER if TIMER is not NULL. */ -- 2.26.2