summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-09-05 22:41:05 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-09-05 22:41:05 +0000
commit2c1d357a5fe5bdc4c9521a9d1af05ba1b5a4c238 (patch)
tree12e23fa555f1432064e8fdeeb063dce798764f50
parent0d983ceeeee6bd20ae296d224ca2fd4bf27a47af (diff)
Merge changes between r23795 and r23927 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@23928 7b3dc134-2b1b-0410-93df-9e9f96275f8d
-rw-r--r--libc/ChangeLog500
-rw-r--r--libc/INSTALL5
-rw-r--r--libc/Makefile19
-rw-r--r--libc/Makerules16
-rw-r--r--libc/NEWS9
-rw-r--r--libc/Versions.def1
-rw-r--r--libc/argp/argp-help.c16
-rw-r--r--libc/argp/argp-parse.c2
-rw-r--r--libc/benchtests/Makefile32
-rw-r--r--libc/benchtests/bench-memccpy.c32
-rw-r--r--libc/benchtests/bench-memchr.c32
-rw-r--r--libc/benchtests/bench-memcmp.c32
-rw-r--r--libc/benchtests/bench-memcpy.c32
-rw-r--r--libc/benchtests/bench-memmem.c36
-rw-r--r--libc/benchtests/bench-memmove.c34
-rw-r--r--libc/benchtests/bench-memset.c32
-rw-r--r--libc/benchtests/bench-rawmemchr.c31
-rw-r--r--libc/benchtests/bench-strcasecmp.c31
-rw-r--r--libc/benchtests/bench-strcasestr.c32
-rw-r--r--libc/benchtests/bench-strcat.c35
-rw-r--r--libc/benchtests/bench-strchr.c34
-rw-r--r--libc/benchtests/bench-strcmp.c32
-rw-r--r--libc/benchtests/bench-strcpy.c30
-rw-r--r--libc/benchtests/bench-strcpy_chk.c28
-rw-r--r--libc/benchtests/bench-string.h15
-rw-r--r--libc/benchtests/bench-strlen.c33
-rw-r--r--libc/benchtests/bench-strncasecmp.c32
-rw-r--r--libc/benchtests/bench-strncat.c36
-rw-r--r--libc/benchtests/bench-strncmp.c44
-rw-r--r--libc/benchtests/bench-strncpy.c30
-rw-r--r--libc/benchtests/bench-strnlen.c33
-rw-r--r--libc/benchtests/bench-strpbrk.c30
-rw-r--r--libc/benchtests/bench-strrchr.c32
-rw-r--r--libc/benchtests/bench-strspn.c33
-rw-r--r--libc/benchtests/bench-strstr.c32
-rw-r--r--libc/benchtests/bench-timing.h3
-rw-r--r--libc/bits/socket.h138
-rw-r--r--libc/config.h.in3
-rw-r--r--libc/config.make.in1
-rwxr-xr-xlibc/configure97
-rw-r--r--libc/configure.in71
-rw-r--r--libc/conform/conformtest.pl4
-rw-r--r--libc/crypt/speeds.c2
-rw-r--r--libc/csu/check_fds.c2
-rw-r--r--libc/csu/init-first.c2
-rw-r--r--libc/debug/Makefile4
-rw-r--r--libc/debug/backtracesyms.c2
-rw-r--r--libc/debug/tst-backtrace5.c11
-rw-r--r--libc/debug/tst-backtrace6.c21
-rw-r--r--libc/dlfcn/Makefile13
-rw-r--r--libc/dlfcn/bug-dl-leaf-lib-cb.c35
-rw-r--r--libc/dlfcn/bug-dl-leaf-lib.c71
-rw-r--r--libc/dlfcn/bug-dl-leaf.c25
-rw-r--r--libc/dlfcn/dlfcn.h6
-rw-r--r--libc/dlfcn/modstatic2.c2
-rw-r--r--libc/dlfcn/tststatic2.c2
-rw-r--r--libc/elf/Makefile2
-rw-r--r--libc/elf/dl-load.c2
-rw-r--r--libc/elf/dl-open.c4
-rw-r--r--libc/elf/elf.h2
-rw-r--r--libc/elf/reldep.c2
-rw-r--r--libc/elf/reldep3.c2
-rw-r--r--libc/elf/sprof.c2
-rw-r--r--libc/extra-lib.mk2
-rw-r--r--libc/hurd/Makefile2
-rw-r--r--libc/hurd/geteuids.c2
-rw-r--r--libc/iconv/gconv_int.h2
-rw-r--r--libc/iconv/iconv_charmap.c2
-rw-r--r--libc/iconv/loop.c2
-rw-r--r--libc/iconv/skeleton.c4
-rw-r--r--libc/iconv/strtab.c2
-rw-r--r--libc/iconvdata/gbbig5.c2
-rw-r--r--libc/iconvdata/iso-2022-jp.c2
-rw-r--r--libc/include/complex.h2
-rw-r--r--libc/include/fenv.h4
-rw-r--r--libc/include/libc-symbols.h4
-rw-r--r--libc/include/netdb.h15
-rw-r--r--libc/include/resolv.h18
-rw-r--r--libc/include/shlib-compat.h8
-rw-r--r--libc/inet/ifreq.c61
-rw-r--r--libc/io/lockf64.c2
-rw-r--r--libc/io/lxstat64.c13
-rw-r--r--libc/libidn/ChangeLog4
-rw-r--r--libc/libidn/stringprep.c2
-rw-r--r--libc/libio/Makefile4
-rw-r--r--libc/libio/libioP.h4
-rw-r--r--libc/locale/categories.def1
-rw-r--r--libc/locale/iso-4217.def24
-rw-r--r--libc/locale/programs/ld-collate.c2
-rw-r--r--libc/locale/programs/linereader.h2
-rw-r--r--libc/localedata/ChangeLog171
-rw-r--r--libc/localedata/SUPPORTED1
-rw-r--r--libc/localedata/locales/aa_ET3
-rw-r--r--libc/localedata/locales/am_ET3
-rw-r--r--libc/localedata/locales/an_ES11
-rw-r--r--libc/localedata/locales/ar_AE2
-rw-r--r--libc/localedata/locales/ar_BH3
-rw-r--r--libc/localedata/locales/ar_DZ3
-rw-r--r--libc/localedata/locales/ar_EG2
-rw-r--r--libc/localedata/locales/ar_IN2
-rw-r--r--libc/localedata/locales/ar_IQ2
-rw-r--r--libc/localedata/locales/ar_JO2
-rw-r--r--libc/localedata/locales/ar_KW2
-rw-r--r--libc/localedata/locales/ar_LB2
-rw-r--r--libc/localedata/locales/ar_LY2
-rw-r--r--libc/localedata/locales/ar_MA2
-rw-r--r--libc/localedata/locales/ar_QA2
-rw-r--r--libc/localedata/locales/ar_SA3
-rw-r--r--libc/localedata/locales/ar_SD5
-rw-r--r--libc/localedata/locales/ar_SY2
-rw-r--r--libc/localedata/locales/ar_TN2
-rw-r--r--libc/localedata/locales/ayc_PE46
-rw-r--r--libc/localedata/locales/az_AZ6
-rw-r--r--libc/localedata/locales/be_BY3
-rw-r--r--libc/localedata/locales/bn_BD3
-rw-r--r--libc/localedata/locales/bn_IN2
-rw-r--r--libc/localedata/locales/br_FR11
-rw-r--r--libc/localedata/locales/bs_BA3
-rw-r--r--libc/localedata/locales/ca_ES3
-rw-r--r--libc/localedata/locales/csb_PL11
-rw-r--r--libc/localedata/locales/da_DK3
-rw-r--r--libc/localedata/locales/de_AT3
-rw-r--r--libc/localedata/locales/de_BE3
-rw-r--r--libc/localedata/locales/de_CH3
-rw-r--r--libc/localedata/locales/de_LU3
-rw-r--r--libc/localedata/locales/dv_MV2
-rw-r--r--libc/localedata/locales/el_GR3
-rw-r--r--libc/localedata/locales/en_AU3
-rw-r--r--libc/localedata/locales/en_BW3
-rw-r--r--libc/localedata/locales/en_CA2
-rw-r--r--libc/localedata/locales/en_DK2
-rw-r--r--libc/localedata/locales/en_GB3
-rw-r--r--libc/localedata/locales/en_HK3
-rw-r--r--libc/localedata/locales/en_IE3
-rw-r--r--libc/localedata/locales/en_IN3
-rw-r--r--libc/localedata/locales/en_NZ3
-rw-r--r--libc/localedata/locales/en_PH3
-rw-r--r--libc/localedata/locales/en_SG3
-rw-r--r--libc/localedata/locales/en_ZW3
-rw-r--r--libc/localedata/locales/es_AR3
-rw-r--r--libc/localedata/locales/es_BO3
-rw-r--r--libc/localedata/locales/es_CL3
-rw-r--r--libc/localedata/locales/es_CO3
-rw-r--r--libc/localedata/locales/es_DO3
-rw-r--r--libc/localedata/locales/es_EC3
-rw-r--r--libc/localedata/locales/es_ES3
-rw-r--r--libc/localedata/locales/es_GT3
-rw-r--r--libc/localedata/locales/es_MX3
-rw-r--r--libc/localedata/locales/es_NI3
-rw-r--r--libc/localedata/locales/es_PA3
-rw-r--r--libc/localedata/locales/es_PE3
-rw-r--r--libc/localedata/locales/es_PY3
-rw-r--r--libc/localedata/locales/es_SV3
-rw-r--r--libc/localedata/locales/es_UY3
-rw-r--r--libc/localedata/locales/es_VE6
-rw-r--r--libc/localedata/locales/eu_ES3
-rw-r--r--libc/localedata/locales/fo_FO3
-rw-r--r--libc/localedata/locales/fr_BE3
-rw-r--r--libc/localedata/locales/fr_CA2
-rw-r--r--libc/localedata/locales/fr_CH3
-rw-r--r--libc/localedata/locales/fr_FR3
-rw-r--r--libc/localedata/locales/fr_LU3
-rw-r--r--libc/localedata/locales/fur_IT11
-rw-r--r--libc/localedata/locales/fy_DE1
-rw-r--r--libc/localedata/locales/ga_IE3
-rw-r--r--libc/localedata/locales/gez_ER3
-rw-r--r--libc/localedata/locales/gez_ET3
-rw-r--r--libc/localedata/locales/gl_ES3
-rw-r--r--libc/localedata/locales/gu_IN3
-rw-r--r--libc/localedata/locales/gv_GB3
-rw-r--r--libc/localedata/locales/he_IL3
-rw-r--r--libc/localedata/locales/hi_IN3
-rw-r--r--libc/localedata/locales/hr_HR3
-rw-r--r--libc/localedata/locales/ht_HT255
-rw-r--r--libc/localedata/locales/hu_HU3
-rw-r--r--libc/localedata/locales/id_ID3
-rw-r--r--libc/localedata/locales/ik_CA3
-rw-r--r--libc/localedata/locales/is_IS3
-rw-r--r--libc/localedata/locales/it_CH3
-rw-r--r--libc/localedata/locales/it_IT3
-rw-r--r--libc/localedata/locales/iu_CA3
-rw-r--r--libc/localedata/locales/ja_JP3
-rw-r--r--libc/localedata/locales/ka_GE3
-rw-r--r--libc/localedata/locales/kk_KZ3
-rw-r--r--libc/localedata/locales/kn_IN3
-rw-r--r--libc/localedata/locales/ko_KR3
-rw-r--r--libc/localedata/locales/ku_TR3
-rw-r--r--libc/localedata/locales/kw_GB3
-rw-r--r--libc/localedata/locales/ky_KG3
-rw-r--r--libc/localedata/locales/lg_UG3
-rw-r--r--libc/localedata/locales/lt_LT3
-rw-r--r--libc/localedata/locales/lv_LV3
-rw-r--r--libc/localedata/locales/mi_NZ11
-rw-r--r--libc/localedata/locales/ml_IN3
-rw-r--r--libc/localedata/locales/mr_IN3
-rw-r--r--libc/localedata/locales/ms_MY3
-rw-r--r--libc/localedata/locales/mt_MT3
-rw-r--r--libc/localedata/locales/nb_NO3
-rw-r--r--libc/localedata/locales/ne_NP3
-rw-r--r--libc/localedata/locales/nl_BE3
-rw-r--r--libc/localedata/locales/nn_NO11
-rw-r--r--libc/localedata/locales/nr_ZA7
-rw-r--r--libc/localedata/locales/nso_ZA7
-rw-r--r--libc/localedata/locales/om_ET3
-rw-r--r--libc/localedata/locales/om_KE3
-rw-r--r--libc/localedata/locales/pa_IN3
-rw-r--r--libc/localedata/locales/pl_PL3
-rw-r--r--libc/localedata/locales/pt_BR3
-rw-r--r--libc/localedata/locales/pt_PT3
-rw-r--r--libc/localedata/locales/quz_PE169
-rw-r--r--libc/localedata/locales/ru_RU3
-rw-r--r--libc/localedata/locales/ru_UA3
-rw-r--r--libc/localedata/locales/sa_IN3
-rw-r--r--libc/localedata/locales/se_NO3
-rw-r--r--libc/localedata/locales/sk_SK3
-rw-r--r--libc/localedata/locales/sl_SI3
-rw-r--r--libc/localedata/locales/so_ET3
-rw-r--r--libc/localedata/locales/so_KE3
-rw-r--r--libc/localedata/locales/so_SO3
-rw-r--r--libc/localedata/locales/sq_AL3
-rw-r--r--libc/localedata/locales/ss_ZA2
-rw-r--r--libc/localedata/locales/sv_SE3
-rw-r--r--libc/localedata/locales/ta_IN3
-rw-r--r--libc/localedata/locales/te_IN2
-rw-r--r--libc/localedata/locales/tg_TJ3
-rw-r--r--libc/localedata/locales/th_TH4
-rw-r--r--libc/localedata/locales/ti_ET3
-rw-r--r--libc/localedata/locales/tl_PH3
-rw-r--r--libc/localedata/locales/tn_ZA8
-rw-r--r--libc/localedata/locales/ts_ZA2
-rw-r--r--libc/localedata/locales/tt_RU3
-rw-r--r--libc/localedata/locales/tt_RU@iqtelif3
-rw-r--r--libc/localedata/locales/ur_PK3
-rw-r--r--libc/localedata/locales/uz_UZ3
-rw-r--r--libc/localedata/locales/ve_ZA2
-rw-r--r--libc/localedata/locales/vi_VN3
-rw-r--r--libc/localedata/locales/wal_ET3
-rw-r--r--libc/localedata/locales/wo_SN3
-rw-r--r--libc/localedata/locales/zh_SG3
-rw-r--r--libc/localedata/tests-mbwc/dat_wcsncat.c2
-rw-r--r--libc/localedata/tests/test6.c2
-rw-r--r--libc/localedata/tst-digits.c2
-rw-r--r--libc/malloc/malloc.c2
-rw-r--r--libc/manual/charset.texi2
-rw-r--r--libc/manual/filesys.texi6
-rw-r--r--libc/manual/install.texi5
-rw-r--r--libc/manual/stdio.texi2
-rw-r--r--libc/manual/string.texi4
-rw-r--r--libc/math/basic-test.c20
-rw-r--r--libc/math/libm-test.inc175
-rw-r--r--libc/math/s_cexp.c14
-rw-r--r--libc/math/s_cexpf.c14
-rw-r--r--libc/math/s_cexpl.c14
-rw-r--r--libc/math/s_cproj.c4
-rw-r--r--libc/math/s_cprojf.c4
-rw-r--r--libc/math/s_cprojl.c4
-rw-r--r--libc/math/s_fdim.c8
-rw-r--r--libc/math/s_fdimf.c8
-rw-r--r--libc/math/s_fdiml.c8
-rw-r--r--libc/nis/nis_print.c2
-rw-r--r--libc/nis/nss_nis/nis-publickey.c2
-rw-r--r--libc/nis/rpcsvc/nis.h2
-rw-r--r--libc/nptl/ChangeLog23
-rw-r--r--libc/nptl/pthread_getschedparam.c2
-rw-r--r--libc/nptl/sysdeps/pthread/pthread.h4
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/internaltypes.h2
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/register-atfork.c2
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S2
-rw-r--r--libc/nptl/tst-cancel4.c2
-rw-r--r--libc/nptl/tst-cleanup2.c8
-rw-r--r--libc/nscd/aicache.c6
-rw-r--r--libc/nss/nss_files/files-key.c4
-rw-r--r--libc/po/ca.po1902
-rw-r--r--libc/po/uk.po7151
-rw-r--r--libc/ports/ChangeLog7
-rw-r--r--libc/ports/ChangeLog.alpha8
-rw-r--r--libc/ports/ChangeLog.am338
-rw-r--r--libc/ports/ChangeLog.arm30
-rw-r--r--libc/ports/ChangeLog.hppa11
-rw-r--r--libc/ports/ChangeLog.ia6427
-rw-r--r--libc/ports/ChangeLog.m68k8
-rw-r--r--libc/ports/ChangeLog.mips26
-rw-r--r--libc/ports/ChangeLog.powerpc4
-rw-r--r--libc/ports/ChangeLog.tile4
-rw-r--r--libc/ports/sysdeps/alpha/alphaev67/stpncpy.S2
-rw-r--r--libc/ports/sysdeps/am33/fpu/fraiseexcpt.c2
-rw-r--r--libc/ports/sysdeps/arm/armv6t2/strlen.S169
-rw-r--r--libc/ports/sysdeps/arm/dl-machine.h2
-rw-r--r--libc/ports/sysdeps/hppa/dl-lookupcfg.h2
-rw-r--r--libc/ports/sysdeps/hppa/fpu/fraiseexcpt.c2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/e_acoshl.S4
-rw-r--r--libc/ports/sysdeps/ia64/fpu/e_atanhl.S2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/e_log.S2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/e_log2l.S2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/e_logf.S6
-rw-r--r--libc/ports/sysdeps/ia64/fpu/e_logl.S4
-rw-r--r--libc/ports/sysdeps/ia64/fpu/fraiseexcpt.c2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/libm_lgammaf.S4
-rw-r--r--libc/ports/sysdeps/ia64/fpu/libm_lgammal.S74
-rw-r--r--libc/ports/sysdeps/ia64/fpu/libm_reduce.S6
-rw-r--r--libc/ports/sysdeps/ia64/fpu/s_erfc.S2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/s_erfcf.S2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/s_erfcl.S2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/s_log1p.S2
-rw-r--r--libc/ports/sysdeps/ia64/fpu/s_log1pl.S4
-rw-r--r--libc/ports/sysdeps/ia64/fpu/w_tgammal.S10
-rw-r--r--libc/ports/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c2
-rw-r--r--libc/ports/sysdeps/mips/fpu/fedisblxcpt.c1
-rw-r--r--libc/ports/sysdeps/mips/fpu/feenablxcpt.c1
-rw-r--r--libc/ports/sysdeps/mips/fpu_control.h5
-rw-r--r--libc/ports/sysdeps/mips/memcpy.S18
-rw-r--r--libc/ports/sysdeps/mips/sys/asm.h2
-rw-r--r--libc/ports/sysdeps/powerpc/powerpc32/405/memcpy.S2
-rw-r--r--libc/ports/sysdeps/tile/jmpbuf-offsets.h2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/arm/clone.S4
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h6
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/hppa/Versions3
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/hppa/clone.S2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h4
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list1
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c2
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h6
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/m68k/mmap64.c5
-rw-r--r--libc/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h4
-rw-r--r--libc/resolv/gai_notify.c2
-rw-r--r--libc/resolv/ns_name.c4
-rw-r--r--libc/resolv/ns_samedomain.c2
-rw-r--r--libc/resolv/res_comp.c2
-rw-r--r--libc/resolv/res_hconf.c2
-rw-r--r--libc/resolv/res_libc.c6
-rw-r--r--libc/resolv/res_mkquery.c1
-rw-r--r--libc/resolv/res_send.c7
-rw-r--r--libc/socket/Makefile2
-rw-r--r--libc/socket/sa_len.c108
-rw-r--r--libc/stdio-common/vfscanf.c2
-rw-r--r--libc/stdlib/Makefile2
-rw-r--r--libc/stdlib/fmtmsg.c4
-rw-r--r--libc/stdlib/random.c2
-rw-r--r--libc/stdlib/stdlib.h2
-rw-r--r--libc/stdlib/strtod_l.c9
-rw-r--r--libc/stdlib/strtof_l.c7
-rw-r--r--libc/stdlib/tst-strtod6.c24
-rw-r--r--libc/streams/stropts.h2
-rw-r--r--libc/string/Makefile4
-rw-r--r--libc/string/test-strcasecmp.c26
-rw-r--r--libc/string/test-strncasecmp.c26
-rw-r--r--libc/sunrpc/Makefile2
-rw-r--r--libc/sunrpc/clnt_tcp.c4
-rw-r--r--libc/sunrpc/clnt_udp.c4
-rw-r--r--libc/sunrpc/clnt_unix.c4
-rw-r--r--libc/sunrpc/rpc/xdr.h2
-rw-r--r--libc/sunrpc/rpc_thread.c2
-rw-r--r--libc/sysdeps/gnu/Makefile2
-rw-r--r--libc/sysdeps/gnu/ldsodefs.h48
-rw-r--r--libc/sysdeps/i386/fpu/fraiseexcpt.c2
-rw-r--r--libc/sysdeps/i386/fpu/libm-test-ulps72
-rw-r--r--libc/sysdeps/i386/i686/multiarch/memcmp-sse4.S2
-rw-r--r--libc/sysdeps/i386/i686/multiarch/memset-sse2-rep.S2
-rw-r--r--libc/sysdeps/i386/i686/multiarch/memset-sse2.S2
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcasecmp.S4
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcat-sse2.S2
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S16
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S16
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcmp.S4
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcpy-sse2.S6
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strncase.S4
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strstr-c.c2
-rw-r--r--libc/sysdeps/i386/stpncpy.S2
-rw-r--r--libc/sysdeps/i386/strpbrk.S2
-rw-r--r--libc/sysdeps/ieee754/flt-32/e_jnf.c4
-rw-r--r--libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c4
-rw-r--r--libc/sysdeps/ieee754/k_standard.c2
-rw-r--r--libc/sysdeps/ieee754/ldbl-128/e_expl.c2
-rw-r--r--libc/sysdeps/ieee754/ldbl-128/strtold_l.c12
-rw-r--r--libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c2
-rw-r--r--libc/sysdeps/ieee754/ldbl-128ibm/ieee754.h19
-rw-r--r--libc/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c4
-rw-r--r--libc/sysdeps/ieee754/ldbl-128ibm/strtold_l.c9
-rw-r--r--libc/sysdeps/ieee754/ldbl-64-128/strtold_l.c12
-rw-r--r--libc/sysdeps/ieee754/ldbl-96/strtold_l.c9
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h2
-rw-r--r--libc/sysdeps/mach/hurd/bits/errno.h10
-rw-r--r--libc/sysdeps/mach/hurd/check_fds.c2
-rw-r--r--libc/sysdeps/mach/hurd/dl-sysdep.c2
-rw-r--r--libc/sysdeps/mach/hurd/errnos.awk8
-rw-r--r--libc/sysdeps/mach/hurd/i386/init-first.c4
-rw-r--r--libc/sysdeps/mach/hurd/profil.c2
-rw-r--r--libc/sysdeps/posix/getaddrinfo.c2
-rw-r--r--libc/sysdeps/powerpc/powerpc32/backtrace.c66
-rw-r--r--libc/sysdeps/powerpc/powerpc32/cell/memcpy.S2
-rw-r--r--libc/sysdeps/powerpc/powerpc32/dl-machine.c7
-rw-r--r--libc/sysdeps/powerpc/powerpc32/fpu/setjmp.S2
-rw-r--r--libc/sysdeps/powerpc/powerpc32/power4/memcmp.S2
-rw-r--r--libc/sysdeps/powerpc/powerpc32/power6/memcpy.S18
-rw-r--r--libc/sysdeps/powerpc/powerpc32/power6/memset.S4
-rw-r--r--libc/sysdeps/powerpc/powerpc32/power7/memcmp.S2
-rw-r--r--libc/sysdeps/powerpc/powerpc32/setjmp.S2
-rw-r--r--libc/sysdeps/powerpc/powerpc32/sysdep.h3
-rw-r--r--libc/sysdeps/powerpc/powerpc64/backtrace.c36
-rw-r--r--libc/sysdeps/powerpc/powerpc64/cell/memcpy.S2
-rw-r--r--libc/sysdeps/powerpc/powerpc64/power6/memcpy.S10
-rw-r--r--libc/sysdeps/powerpc/powerpc64/power6/memset.S4
-rw-r--r--libc/sysdeps/pthread/aio_notify.c2
-rw-r--r--libc/sysdeps/s390/dl-procinfo.h2
-rw-r--r--libc/sysdeps/sparc/fpu/fraiseexcpt.c2
-rw-r--r--libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h342
-rw-r--r--libc/sysdeps/unix/bsd/ptsname.c2
-rw-r--r--libc/sysdeps/unix/ifreq.c79
-rw-r--r--libc/sysdeps/unix/sysv/linux/Makefile4
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/chown.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/ifaddrs.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/ldsodefs.h23
-rw-r--r--libc/sysdeps/unix/sysv/linux/mmap64.c6
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-dirent.h19
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-errno.h124
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-stat.h75
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-termios.h84
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/direntconv.c48
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/errnoconv.c142
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/statconv.c52
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/tcgetattr.c155
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/aix/tcsetattr.c170
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h7
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/init-first.c16
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S2
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S2
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S2
-rw-r--r--libc/sysdeps/unix/sysv/linux/ptsname.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/sa_len.c5
-rw-r--r--libc/sysdeps/unix/sysv/linux/sa_len.c72
-rw-r--r--libc/sysdeps/unix/sysv/linux/socketcall.h2
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/tst-fanotify.c56
-rw-r--r--libc/sysdeps/wordsize-32/divdi3.c2
-rw-r--r--libc/sysdeps/x86/fpu/bits/fenv.h2
-rw-r--r--libc/sysdeps/x86_64/dl-trampoline.S2
-rw-r--r--libc/sysdeps/x86_64/fpu/fraiseexcpt.c2
-rw-r--r--libc/sysdeps/x86_64/fpu/libm-test-ulps75
-rw-r--r--libc/sysdeps/x86_64/multiarch/Makefile6
-rw-r--r--libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c7
-rw-r--r--libc/sysdeps/x86_64/multiarch/rawmemchr.S103
-rw-r--r--libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S210
-rw-r--r--libc/sysdeps/x86_64/multiarch/strcmp-sse42.S2
-rw-r--r--libc/sysdeps/x86_64/multiarch/strcmp.S7
-rw-r--r--libc/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S4
450 files changed, 12084 insertions, 3775 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog
index 18fd09a55..1f291278b 100644
--- a/libc/ChangeLog
+++ b/libc/ChangeLog
@@ -1,3 +1,503 @@
+2013-09-04 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/conformtest.pl (newtoken): Treat tokens not allowed as
+ errors.
+ (top level): Treat second token from macro or constant entries for
+ allowed headers as allowed.
+ * include/complex.h: Condition internal declarations on
+ [!_ISOMAC].
+ * include/fenv.h: Condition include of <stdbool.h> and internal
+ declarations on [!_ISOMAC].
+
+2013-09-04 Chris Leonard <cjl@sugarlabs,.org>
+
+ [BZ #15923]
+ * locale/iso-4217.def: Update iso-1427.def and related occurrences.
+
+2013-09-04 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.in (--enable-versioning): Remove configure option.
+ (libc_cv_asm_symver_directive): Remove configure test.
+ (libc_cv_ld_version_script_option): Likewise.
+ (VERSIONING): Remove variable and AC_SUBST.
+ (DO_VERSIONING): Remove AC_DEFINE.
+ * configure: Regenerated.
+ * config.h.in (DO_VERSIONING): Remove macro.
+ * Makerules [$(versioning) = yes]: Change conditionals to
+ [$(build-shared) = yes].
+ * config.make.in (versioning): Remove variable.
+ * dlfcn/Makefile [$(versioning) = yes]: Change conditionals to
+ [$(build-shared) = yes].
+ * dlfcn/modstatic2.c (test) [DO_VERSIONING]: Remove conditional.
+ * dlfcn/tststatic2.c (main) [DO_VERSIONING]: Likewise.
+ * elf/Makefile [$(versioning) = yes]: Change conditionals to
+ [$(build-shared) = yes].
+ * extra-lib.mk [$(versioning) = yes]: Likewise.
+ * hurd/Makefile [$(versioning) = yes]: Likewise.
+ * hurd/geteuids.c [SHARED && DO_VERSIONING]: Change conditional to
+ [SHARED].
+ * include/libc-symbols.h [DO_VERSIONING]: Change conditional to
+ [SHARED].
+ [SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
+ [SHARED && !NO_HIDDEN].
+ * include/shlib-compat.h [DO_VERSIONING]: Change conditional to
+ [SHARED].
+ [SHARED && DO_VERSIONING]: Likewise..
+ * libio/Makefile [$(versioning) = yes]: Change conditionals to
+ [$(build-shared) = yes].
+ * manual/install.texi (--disable-versioning): Remove
+ documentation.
+ * INSTALL: Regenerated.
+ * resolv/res_libc.c [SHARED && DO_VERSIONING]: Change conditional
+ to [SHARED].
+ * sunrpc/Makefile [$(versioning) = yes]: Change conditional to
+ [$(build-shared) = yes].
+ * sysdeps/gnu/Makefile [$(versioning) = yes]: Likewise.
+ * sysdeps/i386/i686/multiarch/strstr-c.c
+ [SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
+ [SHARED && !NO_HIDDEN].
+ * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
+ [SHARED && DO_VERSIONING]: Change conditional to [SHARED].
+ * sysdeps/powerpc/powerpc32/dl-machine.c
+ [SHARED && !(DO_VERSIONING - 0)]: Remove conditional error.
+ * sysdeps/powerpc/powerpc32/sysdep.h
+ [SHARED && DO_VERSIONING && PIC && !NO_HIDDEN]: Change conditional
+ to [SHARED && PIC && !NO_HIDDEN].
+ * sysdeps/wordsize-32/divdi3.c [SHARED && DO_VERSIONING]: Change
+ conditional to [SHARED].
+
+2013-09-04 Will Newton <will.newton@linaro.org>
+
+ * benchtests/bench-timing.h (TIMING_PRINT_MEAN): New macro.
+ * benchtests/bench-string.h: Include bench-timing.h instead
+ of including hp-timing.h directly. (INNER_LOOP_ITERS): New
+ define. (HP_TIMING_BEST): Delete macro. (test_init): Remove
+ call to HP_TIMING_DIFF_INIT.
+ * benchtests/bench-memccpy.c: Use bench-timing.h macros
+ instead of hp-timing.h macros.
+ * benchtests/bench-memchr.c: Likewise.
+ * benchtests/bench-memcmp.c: Likewise.
+ * benchtests/bench-memcpy.c: Likewise.
+ * benchtests/bench-memmem.c: Likewise.
+ * benchtests/bench-memmove.c: Likewise.
+ * benchtests/bench-memset.c: Likewise.
+ * benchtests/bench-rawmemchr.c: Likewise.
+ * benchtests/bench-strcasecmp.c: Likewise.
+ * benchtests/bench-strcasestr.c: Likewise.
+ * benchtests/bench-strcat.c: Likewise.
+ * benchtests/bench-strchr.c: Likewise.
+ * benchtests/bench-strcmp.c: Likewise.
+ * benchtests/bench-strcpy.c: Likewise.
+ * benchtests/bench-strcpy_chk.c: Likewise.
+ * benchtests/bench-strlen.c: Likewise.
+ * benchtests/bench-strncasecmp.c: Likewise.
+ * benchtests/bench-strncat.c: Likewise.
+ * benchtests/bench-strncmp.c: Likewise.
+ * benchtests/bench-strncpy.c: Likewise.
+ * benchtests/bench-strnlen.c: Likewise.
+ * benchtests/bench-strpbrk.c: Likewise.
+ * benchtests/bench-strrchr.c: Likewise.
+ * benchtests/bench-strspn.c: Likewise.
+ * benchtests/bench-strstr.c: Likewise.
+
+2013-09-04 Will Newton <will.newton@linaro.org>
+
+ * benchtests/Makefile: Use LDLIBS instead of LDFLAGS.
+
+2013-09-03 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15427]
+ * sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Use
+ 2**-30 instead of 2**-70 as threshold for returning -log(|x|).
+ * math/libm-test.inc (lgamma_test_data): Add more tests.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-09-03 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: New file.
+ * sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list):
+ Add ifunc.
+ * sysdeps/x86_64/multiarch/Makefile (sysdep_routines):
+ Add strcmp-sse2-unaligned
+ * sysdeps/x86_64/multiarch/strcmp.S (strcmp): Add ifunc.
+
+2013-09-02 Mike Frysinger <vapier@gentoo.org>
+
+ * Versions.def (libc): Add GLIBC_2.19.
+
+2013-09-02 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/unix/sysv/linux/tst-fanotify.c: New test.
+ * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-fanotify.
+
+2013-09-02 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #14155]
+ * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_jnf): Use double for
+ intermediate calculations in recurrence.
+ (__ieee754_ynf): Likewise.
+ * math/libm-test.inc (jn_test_data): Do not allow spurious
+ underflow exception. Add more tests.
+ (yn_test_data): Add more tests.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-09-02 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/powerpc/powerpc32/power6/memcpy.S: Fix typo.
+
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * csu/init-first.c: Fix then/than typos.
+ * locale/programs/ld-collate.c: Likewise.
+ * locale/programs/linereader.h: Likewise.
+ * manual/charset.texi: Likewise.
+ * manual/filesys.texi: Likewise.
+ * manual/stdio.texi: Likewise.
+ * manual/string.texi: Likewise.
+ * stdlib/fmtmsg.c: Likewise.
+ * sysdeps/i386/stpncpy.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/memcpy.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/memset.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/memcpy.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/memset.S: Likewise.
+
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * elf/dl-open.c: Fix typos.
+ * iconvdata/gbbig5.c: Likewise.
+ * iconvdata/iso-2022-jp.c: Likewise.
+ * iconv/gconv_int.h: Likewise.
+ * iconv/loop.c: Likewise.
+ * nis/rpcsvc/nis.h: Likewise.
+ * resolv/ns_name.c: Likewise.
+ * stdio-common/vfscanf.c: Likewise.
+ * streams/stropts.h: Likewise.
+ * sunrpc/rpc_thread.c: Likewise.
+ * sysdeps/i386/strpbrk.S: Likewise.
+ * sysdeps/ieee754/k_standard.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_expl.c: Likewise.
+ * sysdeps/mach/hurd/dl-sysdep.c: Likewise.
+ * sysdeps/mach/hurd/profil.c: Likewise.
+ * sysdeps/s390/dl-procinfo.h: Likewise.
+ * sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c: Likewise.
+ * sysdeps/x86_64/dl-trampoline.S: Likewise.
+ * sysdeps/x86_64/multiarch/strcmp-sse42.S: Likewise.
+
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/x86_64/multiarch/rawmemchr.S: Delete.
+ * sysdeps/x86_64/multiarch/ifunc-impl-list.c: Remove rawmemchr ifunc.
+
+2013-08-29 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/unix/sysv/linux/powerpc/aix/aix-dirent.h: Remove
+ aix specific files.
+ * sysdeps/unix/sysv/linux/powerpc/aix/aix-errno.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/aix/aix-stat.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/aix/aix-termios.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/aix/direntconv.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/aix/errnoconv.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/aix/statconv.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/aix/tcgetattr.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/aix/tcsetattr.c: Likewise.
+
+2013-08-29 Thomas Schwinge <thomas@codesourcery.com>
+ Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/mach/hurd/errnos.awk (BEGIN): Emit ESUCCESS.
+ * sysdeps/mach/hurd/bits/errno.h: Regenerate.
+
+2013-08-29 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/i386/init-first.c (init1): Use
+ __executable_start symbol instead of _start.
+
+2013-08-29 Thomas Schwinge <thomas@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/ldsodefs.h (VALID_ELF_HEADER)
+ (VALID_ELF_OSABI, VALID_ELF_ABIVERSION, MORE_ELF_HEADER_DATA):
+ Move macros to...
+ * sysdeps/gnu/ldsodefs.h: ... this new file.
+
+ * sysdeps/unix/sysv/linux/ldsodefs.h (VALID_ELF_OSABI)
+ (VALID_ELF_ABIVERSION, MORE_ELF_HEADER_DATA): Use ELFOSABI_GNU
+ instead of ELFOSABI_LINUX.
+
+ [BZ #15522] strtod ("nan(N)") returning a sNaN in some cases
+ * stdlib/strtof_l.c (SET_MANTISSA): Rewrite.
+ * stdlib/strtod_l.c (SET_MANTISSA): Likewise.
+ * sysdeps/ieee754/ldbl-64-128/strtold_l.c (SET_MANTISSA):
+ Likewise.
+ * sysdeps/ieee754/ldbl-96/strtold_l.c (SET_MANTISSA): Likewise.
+ * sysdeps/ieee754/ldbl-128/strtold_l.c (SET_MANTISSA): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/strtold_l.c (SET_MANTISSA):
+ Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/ieee754.h
+ (ibm_extended_long_double): Add ieee_nan member.
+ * stdlib/tst-strtod6.c (test): New function, renamed from do_test.
+ (do_test): New function.
+
+ * math/basic-test.c (TEST_CONVERT): New macro, renamed from
+ TEST_TRUNC.
+ (convert_dfsf_test, convert_tfsf_test, convert_tfdf_test): New
+ functions, renamed from truncdfsf_test, trunctfsf_test,
+ trunctfdf_test.
+ (convert_sfdf_test, convert_sftf_test, convert_dftf_test): New
+ functions.
+ (do_test): Run all these.
+
+2013-08-29 Ondřej Bílka <neleai@seznam.cz>
+
+ * argp/argp-help.c: Fix typos.
+ * argp/argp-parse.c: Likewise.
+ * debug/backtracesyms.c: Likewise.
+ * elf/elf.h: Likewise.
+ * malloc/malloc.c: Likewise.
+ * nis/nis_print.c: Likewise.
+ * resolv/res_comp.c: Likewise.
+ * stdlib/stdlib.h: Likewise.
+ * sunrpc/clnt_tcp.c: Likewise.
+ * sunrpc/clnt_udp.c: Likewise.
+ * sunrpc/clnt_unix.c: Likewise.
+ * sysdeps/unix/bsd/ptsname.c: Likewise.
+ * sysdeps/unix/sysv/linux/ifaddrs.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/libc-start.c: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S:
+ Likewise.
+ * sysdeps/unix/sysv/linux/ptsname.c: Likewise.
+
+2013-08-28 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * nscd/aicache.c (addhstaiX): Use __glibc_unlikely.
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise.
+
+2013-08-27 Mike Frysinger <vapier@gentoo.org>
+
+ [BZ #15897]
+ * dlfcn/Makefile (tests): Add bug-dl-leaf.
+ (modules-names): Add bug-dl-leaf-lib and bug-dl-leaf-lib-cb.
+ ($(objpfx)bug-dl-leaf): New rule.
+ ($(objpfx)bug-dl-leaf.so): Likewise.
+ ($(objpfx)bug-dl-leaf.out): Likewise.
+ ($(objpfx)bug-dl-leaf-lib.so): Likewise.
+ ($(objpfx)bug-dl-leaf-lib-cb.so): Likewise.
+ * dlfcn/bug-dl-leaf.c: New test.
+ * dlfcn/bug-dl-leaf-lib.c: Likewise.
+ * dlfcn/bug-dl-leaf-lib-cb.c: Likewise.
+ * dlfcn/dlfcn.h (dlopen): Change __THROW to __THROWNL.
+ (dlclose): Likewise.
+ (dlmopen): Likewise.
+
+2013-08-27 Roland McGrath <roland@hack.frob.com>
+
+ * include/netdb.h [!_ISOMAC]:
+ Don't include <tls.h>.
+ (h_errno, __libc_h_errno): Move declaration and macros out of
+ [_LIBC_REENTRANT].
+
+ * include/resolv.h [_RESOLV_H_]:
+ Don't include <tls.h>.
+ (__resp, _res): Move declaration and macro out of [_LIBC_REENTRANT].
+ * resolv/res_libc.c: Don't include <tls.h>.
+ (_res): Use __attribute__ ((nocommon)) in place of
+ __attribute__ ((section (".bss"))).
+
+ * Makefile ($(common-objpfx)linkobj/libc_pic.a):
+ If [sunrpc not in $(subdirs)], define to use libc_pic.a directly.
+
+ * resolv/res_send.c (send_dg): Don't try to use ioctl unless [FIONREAD].
+
+ * resolv/res_hconf.c [!NOT_IN_libc] (ifaddrs): Declare
+ only under [SIOCGIFCONF && SIOCGIFNETMASK].
+
+ * resolv/res_mkquery.c: Include <sys/time.h>.
+
+ * inet/ifreq.c: Moved to ...
+ * sysdeps/unix/ifreq.c: ... here.
+ * inet/ifreq.c: New file, true stub version.
+
+ * socket/sa_len.c: New file.
+ * socket/Makefile (aux): Add it.
+ * sysdeps/unix/sysv/linux/Makefile
+ [$(subdir) = socket] (sysdep_routines): Don't add sa_len here.
+ * sysdeps/unix/sysv/linux/sa_len.c: Just #define HAVE_NET*_H
+ and #include <socket/sa_len.c>.
+ * sysdeps/unix/sysv/linux/s390/sa_len.c: Just #define
+ HAVE_NETIUCV_IUCV_H and #include <sysdeps/unix/sysv/linux/sa_len.c>.
+
+ * sysdeps/unix/bsd/bsd4.4/bits/socket.h: Moved to ...
+ * bits/socket.h: ... here.
+
+ * sysdeps/unix/bsd/bsd4.4/bits/socket.h (enum __socket_type):
+ Add SOCK_CLOEXEC, SOCK_NONBLOCK with values from FreeBSD.
+ (SOCK_MAX, SOCK_TYPE_MASK): New macros.
+
+2013-08-27 Andreas Schwab <schwab@suse.de>
+
+ [BZ #15736]
+ * locale/categories.def (LC_CTYPE): Add "nonascii-case" element.
+ * string/Makefile (test-strcasecmp-ENV, test-strncasecmp-ENV)
+ (test-strcasecmp-ifunc-ENV, test-strncasecmp-ifunc-ENV): Define.
+ * string/test-strcasecmp.c (test_main): Run tests in several
+ locales.
+ * string/test-strncasecmp.c (test_main): Likewise.
+
+ * sysdeps/i386/i686/multiarch/strcmp-sse4.S (__strcasecmp_sse4_2)
+ (__strncasecmp_sse4_2) [PIC]: Restore %ebx before falling through
+ to __strcasecmp_nonascii and __strncasecmp_nonascii.
+ * sysdeps/i386/i686/multiarch/strcmp-ssse3.S (__strcasecmp_ssse3)
+ (__strncasecmp_ssse3) [PIC]: Likewise.
+
+2013-08-26 Roland McGrath <roland@hack.frob.com>
+
+ * io/lxstat64.c: Just call __xstat64, for parity with stub __lxstat.
+
+ * nss/nss_files/files-key.c: Include <rpc/des_crypt.h>
+ instead of explicitly declaring xdecrypt.
+ * nis/nss_nis/nis-publickey.c: Likewise.
+
+2013-08-26 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #15890]
+ * nscd/aicache.c: Include res_hconf.h.
+ (addhstaiX): Initialize res_hconf.
+
+2013-08-26 Andreas Schwab <schwab@suse.de>
+
+ * stdlib/Makefile (LDFLAGS-tst-tls-atexit): Remove.
+ ($(objpfx)tst-tls-atexit): Add dependencies here instead.
+
+2013-08-26 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * nscd/aicache.c (addhstaiX): Fix indentation.
+
+2013-08-25 Mike Frysinger <vapier@gentoo.org>
+
+ * configure.ac: Quote $build_pt_chown test.
+ * configure: Regenerated.
+
+2013-08-23 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15532]
+ * math/s_cexp.c (__cexp): Return NaN + i0 for NaN + i0 argument.
+ * math/s_cexpf.c (__cexpf): Likewise.
+ * math/s_cexpl.c (__cexpl): Likewise.
+ * math/libm-test.inc (cexp_test_data): Correct expected return
+ value for NaN + i0. Add another test.
+
+2013-08-22 David S. Miller <davem@davemloft.net>
+
+ * po/ca.po: Update Catalan translation from translation project.
+ * po/uk.po: Add Ukrainian translations from translation project.
+
+2013-08-21 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15797]
+ * math/s_fdim.c (__fdim): Check for infinite arguments if result
+ is infinite, not alongside NaN test.
+ * math/s_fdimf.c (__fdimf): Likewise.
+ * math/s_fdiml.c (__fdiml): Likewise.
+ * math/libm-test.inc (fdim_test_data): Add more tests. Test that
+ errno is unchanged.
+
+2013-08-21 Ondřej Bílka <neleai@seznam.cz>
+
+ * argp/argp-help.c: Fix typos.
+ * crypt/speeds.c: Likewise.
+ * csu/check_fds.c: Likewise.
+ * elf/dl-load.c: Likewise.
+ * elf/dl-open.c: Likewise.
+ * elf/reldep3.c: Likewise.
+ * elf/reldep.c: Likewise.
+ * elf/sprof.c: Likewise.
+ * iconv/iconv_charmap.c: Likewise.
+ * iconv/skeleton.c: Likewise.
+ * iconv/strtab.c: Likewise.
+ * io/lockf64.c: Likewise.
+ * libio/libioP.h: Likewise.
+ * resolv/gai_notify.c: Likewise.
+ * resolv/ns_name.c: Likewise.
+ * resolv/ns_samedomain.c: Likewise.
+ * resolv/res_send.c: Likewise.
+ * stdlib/random.c: Likewise.
+ * sunrpc/rpc/xdr.h: Likewise.
+ * sysdeps/i386/fpu/fraiseexcpt.c: Likewise.
+ * sysdeps/i386/i686/multiarch/memcmp-sse4.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memset-sse2-rep.S: Likewise.
+ * sysdeps/i386/i686/multiarch/memset-sse2.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcat-sse2.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcmp-sse4.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcmp-ssse3.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcpy-sse2.S: Likewise.
+ * sysdeps/mach/hurd/check_fds.c: Likewise.
+ * sysdeps/powerpc/powerpc32/cell/memcpy.S: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/memcmp.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/memcmp.S: Likewise.
+ * sysdeps/powerpc/powerpc32/setjmp.S: Likewise.
+ * sysdeps/powerpc/powerpc64/cell/memcpy.S: Likewise.
+ * sysdeps/pthread/aio_notify.c: Likewise.
+ * sysdeps/sparc/fpu/fraiseexcpt.c: Likewise.
+ * sysdeps/unix/sysv/linux/socketcall.h: Likewise.
+ * sysdeps/x86_64/fpu/fraiseexcpt.c: Likewise.
+ * sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: Likewise.
+ * sysdeps/x86/fpu/bits/fenv.h: Likewise.
+
+2013-08-21 Liubov Dmitrieva <liubov.dmitrieva@intel.com>
+
+ * sysdeps/i386/i686/multiarch/strcmp.S: Skip SSE4_2
+ version if bit_Slow_SSE4_2 is set.
+ * sysdeps/i386/i686/multiarch/strncase.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
+
+2013-07-23 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ [BZ #15867]
+ * sysdeps/powerpc/powerpc32/backtrace.c (__backtrace): Handle signal
+ trampoline stack frame information.
+ * sysdeps/powerpc/powerpc64/backtrace.c (__backtrace): Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
+ (__vdso_sigtramp_rt64): New variable: PPC64 signal trampoline.
+ (__vdso_sigtramp32): New variable: PPC32 signal trampoline.
+ (__vdso_sigtramp_rt32): New variable: PPC32 signal trampoline.
+ * sysdeps/unix/sysv/linux/powerpc/init-first.c
+ (_libc_vdso_platform_setup): Initialize the signal trampolines.
+ * debug/tst-backtrace5.c (fn): Add an option set modify sigaction
+ sa_flags value.
+ * debug/tst-backtrace6.c: New file: check backtrace for signal frames,
+ interrupting a syscall and set with option SA_SIGINFO.
+
+2013-08-20 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15531]
+ * math/s_cproj.c (__cproj): Only return an infinity if one part of
+ argument is infinite.
+ * math/s_cprojf.c (__cprojf): Likewise.
+ * math/s_cprojl.c (__cprojl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_cprojl.c (__cprojl): Likewise.
+ * math/libm-test.inc (cproj_test_data): Add more tests.
+
+ * sysdeps/unix/sysv/linux/mmap64.c: Include <string.h>.
+
+ * sysdeps/unix/sysv/linux/mmap64.c (__mmap64)
+ [MMAP2_PAGE_SHIFT == -1]: Use __getpagesize to determine page
+ size. Use __ffs to determine corresponding shift.
+
+2013-08-20 Joseph Myers <joseph@codesourcery.com>
+ Roland McGrath <roland@hack.frob.com>
+
+ * Makefile (INSTALL): Remove trailing blank lines from output of
+ makeinfo.
+
2013-08-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/sys/procfs.h (struct elf_prstatus):
diff --git a/libc/INSTALL b/libc/INSTALL
index 9a1592bd5..efbdd7bac 100644
--- a/libc/INSTALL
+++ b/libc/INSTALL
@@ -123,11 +123,6 @@ will be used, and CFLAGS sets optimization options for the compiler.
Don't build libraries with profiling information. You may want to
use this option if you don't plan to do profiling.
-`--disable-versioning'
- Don't compile the shared libraries with symbol version information.
- Doing this will make the resulting library incompatible with old
- binaries, so it's not recommended.
-
`--enable-static-nss'
Compile static versions of the NSS (Name Service Switch) libraries.
This is not recommended because it defeats the purpose of NSS; a
diff --git a/libc/Makefile b/libc/Makefile
index 51d10b97b..ff821e677 100644
--- a/libc/Makefile
+++ b/libc/Makefile
@@ -147,16 +147,22 @@ $(common-objpfx)linkobj/libc.so: $(elfobjdir)/soinit.os \
$(shlib-lds)
$(build-shlib)
+ifeq (,$(filter sunrpc,$(subdirs)))
+$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a
+ $(make-target-directory)
+ ln -f $< $@
+else
$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a \
$(common-objpfx)sunrpc/librpc_compat_pic.a
- $(..)./scripts/mkinstalldirs $(common-objpfx)linkobj
+ $(make-target-directory)
(cd $(common-objpfx)linkobj; \
$(AR) x ../libc_pic.a; \
rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \
$(AR) x ../sunrpc/librpc_compat_pic.a; \
$(AR) cr libc_pic.a *.os; \
rm *.os)
-endif
+endif # $(subdirs) contains sunrpc
+endif # $(build-shared)
# This is a handy script for running any dynamically linked program against
@@ -423,8 +429,13 @@ endif
INSTALL: manual/install.texi manual/macros.texi \
$(common-objpfx)manual/pkgvers.texi
makeinfo --no-validate --plaintext --no-number-sections \
- -I$(common-objpfx)manual $< -o $@
- -chmod a-w $@
+ -I$(common-objpfx)manual $< -o $@-tmp
+ $(AWK) 'NF == 0 { ++n; next } \
+ NF != 0 { while (n-- > 0) print ""; n = 0; print }' \
+ < $@-tmp > $@-tmp2
+ rm -f $@-tmp
+ -chmod a-w $@-tmp2
+ mv -f $@-tmp2 $@
$(common-objpfx)manual/%: FORCE
$(MAKE) $(PARALLELMFLAGS) -C manual $@
FORCE:
diff --git a/libc/Makerules b/libc/Makerules
index 7d6b14a33..be6f4b886 100644
--- a/libc/Makerules
+++ b/libc/Makerules
@@ -93,7 +93,7 @@ before-compile := $(filter $(common-objpfx)mach% $(common-objpfx)hurd%,\
$(before-compile))
# Even before that, we need abi-versions.h which is generated right here.
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
ifndef avoid-generated
before-compile := $(common-objpfx)abi-versions.h $(before-compile)
$(common-objpfx)abi-versions.h: $(..)scripts/abi-versions.awk \
@@ -106,7 +106,7 @@ $(common-objpfx)%.latest: $(common-objpfx)abi-versions.h
$(common-objpfx)abi-versions.h > $@T
mv -f $@T $@
endif # avoid-generated
-endif # $(versioning) = yes
+endif # $(build-shared) = yes
ifndef avoid-generated
before-compile := $(common-objpfx)libc-abis.h $(before-compile)
@@ -283,7 +283,7 @@ endif
# Generate version maps, but wait until sysdep-subdirs is known
ifeq ($(sysd-sorted-done),t)
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
-include $(common-objpfx)sysd-versions
$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
common-generated += $(version-maps)
@@ -324,7 +324,7 @@ $(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \
) > $@T
mv -f $@T $@
endif # avoid-generated
-endif # $(versioning) = yes
+endif # $(build-shared) = yes
endif # sysd-sorted-done
# Generate .dT files as we compile.
@@ -419,9 +419,9 @@ elide-routines.og += $(shared-only-routines)
ifeq (yes,$(build-shared))
-# Reference map file only when versioning is selected and a map file name
+# Reference map file only when shared libraries are built and a map file name
# is given.
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
map-file = $(firstword $($(@F:.so=-map)) \
$(addprefix $(common-objpfx), \
$(filter $(@F:.so=.map),$(version-maps))))
@@ -594,7 +594,7 @@ $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
$(elfobjdir)/interp.os $(elfobjdir)/ld.so \
$(shlib-lds)
$(build-shlib)
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
$(common-objpfx)libc.so: $(common-objpfx)libc.map
endif
common-generated += libc.so libc_pic.os
@@ -1189,7 +1189,7 @@ endif
CPPFLAGS-nonlib = -DNOT_IN_libc=1
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
# Generate normalized lists of symbols, versions, and data sizes.
# This is handy for checking against existing library binaries.
diff --git a/libc/NEWS b/libc/NEWS
index 9f44db061..eceea11b9 100644
--- a/libc/NEWS
+++ b/libc/NEWS
@@ -9,12 +9,19 @@ Version 2.19
* The following bugs are resolved with this release:
- 14699, 15749
+ 14155, 14699, 15427, 15522, 15531, 15532, 15736, 15749, 15797, 15867,
+ 15886, 15887, 15890, 15897, 15905, 15909, 15921.
* CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
to the d_name member of struct dirent, or omit the terminating NUL
character. (Bugzilla #14699).
+* New locales: quz_PE.
+
+* Add country_car field to LC_ADDRESS, many locales.
+
+* Update iso-1427.def and related occurrences.
+
Version 2.18
diff --git a/libc/Versions.def b/libc/Versions.def
index 0854e6eb3..bca4ff44e 100644
--- a/libc/Versions.def
+++ b/libc/Versions.def
@@ -35,6 +35,7 @@ libc {
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
+ GLIBC_2.19
HURD_CTHREADS_0.3
%ifdef EXPORT_UNWIND_FIND_FDE
GCC_3.0
diff --git a/libc/argp/argp-help.c b/libc/argp/argp-help.c
index 0001f62fe..37a0e4596 100644
--- a/libc/argp/argp-help.c
+++ b/libc/argp/argp-help.c
@@ -161,7 +161,7 @@ static const struct uparam_name uparam_names[] =
};
#define nuparam_names (sizeof (uparam_names) / sizeof (uparam_names[0]))
-/* Read user options from the environment, and fill in UPARAMS appropiately. */
+/* Read user options from the environment, and fill in UPARAMS appropriately. */
static void
fill_in_uparams (const struct argp_state *state)
{
@@ -276,11 +276,11 @@ fill_in_uparams (const struct argp_state *state)
-xARG, -yARG, --long1=ARG, --long2=ARG Documentation...
Where ARG will be omitted if there's no argument, for this option, or
- will be surrounded by "[" and "]" appropiately if the argument is
- optional. The documentation string is word-wrapped appropiately, and if
+ will be surrounded by "[" and "]" appropriately if the argument is
+ optional. The documentation string is word-wrapped appropriately, and if
the list of options is long enough, it will be started on a separate line.
If there are no short options for a given option, the first long option is
- indented slighly in a way that's supposed to make most long options appear
+ indented slightly in a way that's supposed to make most long options appear
to be in a separate column.
For example, the following output (from ps):
@@ -358,7 +358,7 @@ struct hol_entry
/* A pointers into the HOL's short_options field, to the first short option
letter for this entry. The order of the characters following this point
corresponds to the order of options pointed to by OPT, and there are at
- most NUM. A short option recorded in a option following OPT is only
+ most NUM. A short option recorded in an option following OPT is only
valid if it occurs in the right place in SHORT_OPTIONS (otherwise it's
probably been shadowed by some other entry). */
char *short_options;
@@ -737,12 +737,12 @@ hol_entry_cmp (const struct hol_entry *entry1,
if (entry1->cluster != entry2->cluster)
{
/* The entries are not within the same cluster, so we can't compare them
- directly, we have to use the appropiate clustering level too. */
+ directly, we have to use the appropriate clustering level too. */
if (! entry1->cluster)
/* ENTRY1 is at the `base level', not in a cluster, so we have to
compare it's group number with that of the base cluster in which
ENTRY2 resides. Note that if they're in the same group, the
- clustered option always comes laster. */
+ clustered option always comes last. */
return group_cmp (group1, hol_cluster_base (entry2->cluster)->group, -1);
else if (! entry2->cluster)
/* Likewise, but ENTRY2's not in a cluster. */
@@ -999,7 +999,7 @@ filter_doc (const char *doc, int key, const struct argp *argp,
return doc;
}
-/* Prints STR as a header line, with the margin lines set appropiately, and
+/* Prints STR as a header line, with the margin lines set appropriately, and
notes the fact that groups should be separated with a blank line. ARGP is
the argp that should dictate any user doc filtering to take place. Note
that the previous wrap margin isn't restored, but the left margin is reset
diff --git a/libc/argp/argp-parse.c b/libc/argp/argp-parse.c
index f68ebab0d..3051be147 100644
--- a/libc/argp/argp-parse.c
+++ b/libc/argp/argp-parse.c
@@ -410,7 +410,7 @@ convert_options (const struct argp *argp,
return group;
}
-/* Find the merged set of getopt options, with keys appropiately prefixed. */
+/* Find the merged set of getopt options, with keys appropriately prefixed. */
static void
parser_convert (struct parser *parser, const struct argp *argp, int flags)
{
diff --git a/libc/benchtests/Makefile b/libc/benchtests/Makefile
index ba313d2cf..4d4b909bc 100644
--- a/libc/benchtests/Makefile
+++ b/libc/benchtests/Makefile
@@ -36,67 +36,67 @@ benchset := $(string-bench-all)
acos-ARGLIST = double
acos-RET = double
-LDFLAGS-bench-acos = -lm
+LDLIBS-bench-acos = -lm
acosh-ARGLIST = double
acosh-RET = double
-LDFLAGS-bench-acosh = -lm
+LDLIBS-bench-acosh = -lm
asin-ARGLIST = double
asin-RET = double
-LDFLAGS-bench-asin = -lm
+LDLIBS-bench-asin = -lm
asinh-ARGLIST = double
asinh-RET = double
-LDFLAGS-bench-asinh = -lm
+LDLIBS-bench-asinh = -lm
atan-ARGLIST = double
atan-RET = double
-LDFLAGS-bench-atan = -lm
+LDLIBS-bench-atan = -lm
atanh-ARGLIST = double
atanh-RET = double
-LDFLAGS-bench-atanh = -lm
+LDLIBS-bench-atanh = -lm
cos-ARGLIST = double
cos-RET = double
-LDFLAGS-bench-cos = -lm
+LDLIBS-bench-cos = -lm
cosh-ARGLIST = double
cosh-RET = double
-LDFLAGS-bench-cosh = -lm
+LDLIBS-bench-cosh = -lm
exp-ARGLIST = double
exp-RET = double
-LDFLAGS-bench-exp = -lm
+LDLIBS-bench-exp = -lm
log-ARGLIST = double
log-RET = double
-LDFLAGS-bench-log = -lm
+LDLIBS-bench-log = -lm
pow-ARGLIST = double:double
pow-RET = double
-LDFLAGS-bench-pow = -lm
+LDLIBS-bench-pow = -lm
rint-ARGLIST = double
rint-RET = double
-LDFLAGS-bench-rint = -lm
+LDLIBS-bench-rint = -lm
sin-ARGLIST = double
sin-RET = double
-LDFLAGS-bench-sin = -lm
+LDLIBS-bench-sin = -lm
sinh-ARGLIST = double
sinh-RET = double
-LDFLAGS-bench-sinh = -lm
+LDLIBS-bench-sinh = -lm
tan-ARGLIST = double
tan-RET = double
-LDFLAGS-bench-tan = -lm
+LDLIBS-bench-tan = -lm
tanh-ARGLIST = double
tanh-RET = double
-LDFLAGS-bench-tanh = -lm
+LDLIBS-bench-tanh = -lm
diff --git a/libc/benchtests/bench-memccpy.c b/libc/benchtests/bench-memccpy.c
index 612513c68..2c47e7937 100644
--- a/libc/benchtests/bench-memccpy.c
+++ b/libc/benchtests/bench-memccpy.c
@@ -59,6 +59,9 @@ do_one_test (impl_t *impl, void *dst, const void *src, int c, size_t len,
size_t n)
{
void *expect = len > n ? NULL : (char *) dst + len;
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (CALL (impl, dst, src, c, n) != expect)
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -74,23 +77,16 @@ do_one_test (impl_t *impl, void *dst, const void *src, int c, size_t len,
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute__ ((unused));
- hp_timing_t stop __attribute__ ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, c, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, dst, src, c, n);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -121,14 +117,12 @@ do_test (size_t align1, size_t align2, int c, size_t len, size_t n,
for (i = len; i + align1 < page_size && i < len + 64; ++i)
s1[i] = 32 + 32 * i % (max_char - 32);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, n %4zd, char %d, alignment %2zd/%2zd:", len, n, c, align1, align2);
+ printf ("Length %4zd, n %4zd, char %d, alignment %2zd/%2zd:", len, n, c, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, c, len, n);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-memchr.c b/libc/benchtests/bench-memchr.c
index 5470ce6c5..db099ad54 100644
--- a/libc/benchtests/bench-memchr.c
+++ b/libc/benchtests/bench-memchr.c
@@ -39,6 +39,9 @@ static void
do_one_test (impl_t *impl, const char *s, int c, size_t n, char *exp_res)
{
char *res = CALL (impl, s, c, n);
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (res != exp_res)
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -47,23 +50,16 @@ do_one_test (impl_t *impl, const char *s, int c, size_t n, char *exp_res)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, c, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s, c, n);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -96,14 +92,12 @@ do_test (size_t align, size_t pos, size_t len, int seek_char)
buf1[align + len] = seek_char;
}
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd:", pos, align);
+ printf ("Length %4zd, alignment %2zd:", pos, align);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char *) (buf1 + align), seek_char, len, result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-memcmp.c b/libc/benchtests/bench-memcmp.c
index 053bb5056..544130b01 100644
--- a/libc/benchtests/bench-memcmp.c
+++ b/libc/benchtests/bench-memcmp.c
@@ -78,23 +78,19 @@ static void
do_one_test (impl_t *impl, const CHAR *s1, const CHAR *s2, size_t len,
int exp_result)
{
- if (HP_TIMING_AVAIL)
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2, len);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s1, s2, len);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -124,14 +120,12 @@ do_test (size_t align1, size_t align2, size_t len, int exp_result)
s2[len] = align2;
s2[len - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, len, exp_result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-memcpy.c b/libc/benchtests/bench-memcpy.c
index 1b126711f..8cd9c23b4 100644
--- a/libc/benchtests/bench-memcpy.c
+++ b/libc/benchtests/bench-memcpy.c
@@ -52,6 +52,9 @@ static void
do_one_test (impl_t *impl, char *dst, const char *src,
size_t len)
{
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (CALL (impl, dst, src, len) != MEMCPY_RESULT (dst, len))
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -68,23 +71,16 @@ do_one_test (impl_t *impl, char *dst, const char *src,
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, len);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, dst, src, len);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -107,14 +103,12 @@ do_test (size_t align1, size_t align2, size_t len)
for (i = 0, j = 1; i < len; i++, j += 23)
s1[i] = j;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-memmem.c b/libc/benchtests/bench-memmem.c
index ca758a84f..b8f8a8b2a 100644
--- a/libc/benchtests/bench-memmem.c
+++ b/libc/benchtests/bench-memmem.c
@@ -60,23 +60,19 @@ static void
do_one_test (impl_t *impl, const void *haystack, size_t haystack_len,
const void *needle, size_t needle_len, const void *expected)
{
- if (HP_TIMING_AVAIL)
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
+ CALL (impl, haystack, haystack_len, needle, needle_len);
+ }
+ TIMING_NOW (stop);
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, haystack, haystack_len, needle, needle_len);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
+ TIMING_DIFF (cur, start, stop);
- printf ("\t%zd", (size_t) best_time);
- }
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -87,16 +83,14 @@ do_test (const char *str, size_t len, size_t idx)
memcpy (tmpbuf, buf1 + idx, len);
memcpy (buf1 + idx, str, len);
- if (HP_TIMING_AVAIL)
- printf ("String %s, offset %zd:", str, idx);
+ printf ("String %s, offset %zd:", str, idx);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, buf1, BUF1PAGES * page_size, str, len, buf1 + idx);
memcpy (buf1 + idx, tmpbuf, len);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
static void
@@ -120,15 +114,13 @@ do_random_tests (void)
buf1[idx + off] = ch;
}
- if (HP_TIMING_AVAIL)
- printf ("String %.*s, offset %zd:", (int) len, buf1 + idx, idx);
+ printf ("String %.*s, offset %zd:", (int) len, buf1 + idx, idx);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, buf1, BUF1PAGES * page_size, buf1 + idx, len,
buf1 + idx);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
memcpy (buf1 + idx, tmpbuf, len);
}
diff --git a/libc/benchtests/bench-memmove.c b/libc/benchtests/bench-memmove.c
index 8925606af..332d6af26 100644
--- a/libc/benchtests/bench-memmove.c
+++ b/libc/benchtests/bench-memmove.c
@@ -67,6 +67,9 @@ static void
do_one_test (impl_t *impl, char *dst, char *src, const char *orig_src,
size_t len)
{
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
memcpy (src, orig_src, len);
#ifdef TEST_BCOPY
CALL (impl, src, dst, len);
@@ -91,27 +94,20 @@ do_one_test (impl_t *impl, char *dst, char *src, const char *orig_src,
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
#ifdef TEST_BCOPY
- CALL (impl, src, dst, len);
+ CALL (impl, src, dst, len);
#else
- CALL (impl, dst, src, len);
+ CALL (impl, dst, src, len);
#endif
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -134,14 +130,12 @@ do_test (size_t align1, size_t align2, size_t len)
for (i = 0, j = 1; i < len; i++, j += 23)
s1[i] = j;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, (char *) (buf2 + align1), s1, len);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-memset.c b/libc/benchtests/bench-memset.c
index ea29cf37f..e45807c0e 100644
--- a/libc/benchtests/bench-memset.c
+++ b/libc/benchtests/bench-memset.c
@@ -75,6 +75,8 @@ simple_memset (char *s, int c, size_t n)
static void
do_one_test (impl_t *impl, char *s, int c __attribute ((unused)), size_t n)
{
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
char tstbuf[n];
#ifdef TEST_BZERO
simple_bzero (tstbuf, n);
@@ -92,28 +94,20 @@ do_one_test (impl_t *impl, char *s, int c __attribute ((unused)), size_t n)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
#ifdef TEST_BZERO
- CALL (impl, s, n);
+ CALL (impl, s, n);
#else
- CALL (impl, s, c, n);
+ CALL (impl, s, c, n);
#endif
+ }
+ TIMING_NOW (stop);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
+ TIMING_DIFF (cur, start, stop);
- printf ("\t%zd", (size_t) best_time);
- }
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -123,14 +117,12 @@ do_test (size_t align, int c, size_t len)
if (align + len > page_size)
return;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd, c %2d:", len, align, c);
+ printf ("Length %4zd, alignment %2zd, c %2d:", len, align, c);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char *) buf1 + align, c, len);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-rawmemchr.c b/libc/benchtests/bench-rawmemchr.c
index a6b29d7ae..df6a310e2 100644
--- a/libc/benchtests/bench-rawmemchr.c
+++ b/libc/benchtests/bench-rawmemchr.c
@@ -40,6 +40,8 @@ simple_rawmemchr (const char *s, int c)
static void
do_one_test (impl_t *impl, const char *s, int c, char *exp_res)
{
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
char *res = CALL (impl, s, c);
if (res != exp_res)
{
@@ -49,23 +51,16 @@ do_one_test (impl_t *impl, const char *s, int c, char *exp_res)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, c);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s, c);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -92,14 +87,12 @@ do_test (size_t align, size_t pos, size_t len, int seek_char)
buf1[align + len] = -seek_char;
result = (char *) (buf1 + align + pos);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd:", pos, align);
+ printf ("Length %4zd, alignment %2zd:", pos, align);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char *) (buf1 + align), seek_char, result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strcasecmp.c b/libc/benchtests/bench-strcasecmp.c
index 27250bb44..1458df1e9 100644
--- a/libc/benchtests/bench-strcasecmp.c
+++ b/libc/benchtests/bench-strcasecmp.c
@@ -62,6 +62,8 @@ stupid_strcasecmp (const char *s1, const char *s2)
static void
do_one_test (impl_t *impl, const char *s1, const char *s2, int exp_result)
{
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
int result = CALL (impl, s1, s2);
if ((exp_result == 0 && result != 0)
|| (exp_result < 0 && result >= 0)
@@ -73,23 +75,16 @@ do_one_test (impl_t *impl, const char *s1, const char *s2, int exp_result)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s1, s2);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -128,14 +123,12 @@ do_test (size_t align1, size_t align2, size_t len, int max_char,
else
s2[len - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, exp_result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strcasestr.c b/libc/benchtests/bench-strcasestr.c
index 289b49074..68b7e95ad 100644
--- a/libc/benchtests/bench-strcasestr.c
+++ b/libc/benchtests/bench-strcasestr.c
@@ -60,23 +60,19 @@ IMPL (strcasestr, 1)
static void
do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
{
- if (HP_TIMING_AVAIL)
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~(hp_timing_t) 0;
- size_t i;
+ CALL (impl, s1, s2);
+ }
+ TIMING_NOW (stop);
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
+ TIMING_DIFF (cur, start, stop);
- printf ("\t%zd", (size_t) best_time);
- }
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
@@ -116,15 +112,13 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2,
}
s1[len1] = '\0';
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
- len1, len2, align1, align2, fail ? "fail" : "found");
+ printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
+ len1, len2, align1, align2, fail ? "fail" : "found");
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
static int
diff --git a/libc/benchtests/bench-strcat.c b/libc/benchtests/bench-strcat.c
index b70a27210..6602009eb 100644
--- a/libc/benchtests/bench-strcat.c
+++ b/libc/benchtests/bench-strcat.c
@@ -39,7 +39,9 @@ simple_strcat (char *dst, const char *src)
static void
do_one_test (impl_t *impl, char *dst, const char *src)
{
- size_t k = strlen (dst);
+ size_t k = strlen (dst), i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (CALL (impl, dst, src) != dst)
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -56,24 +58,17 @@ do_one_test (impl_t *impl, char *dst, const char *src)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- dst[k] = '\0';
- HP_TIMING_NOW (start);
- CALL (impl, dst, src);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ dst[k] = '\0';
+ CALL (impl, dst, src);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -100,8 +95,7 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2, int max_char)
for (i = 0; i < len2; i++)
s2[i] = 32 + 23 * i % (max_char - 32);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len1, len2, align1, align2);
+ printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len1, len2, align1, align2);
FOR_EACH_IMPL (impl, 0)
{
@@ -109,8 +103,7 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2, int max_char)
do_one_test (impl, s2, s1);
}
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strchr.c b/libc/benchtests/bench-strchr.c
index 710b59203..d432ba53b 100644
--- a/libc/benchtests/bench-strchr.c
+++ b/libc/benchtests/bench-strchr.c
@@ -89,23 +89,19 @@ IMPL (STRCHR, 1)
static void
do_one_test (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
{
- if (HP_TIMING_AVAIL)
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, c);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s, c);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -141,15 +137,13 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
else
result = NULLRET (buf + align + len);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment in bytes %2zd:",
- pos, align * sizeof (CHAR));
+ printf ("Length %4zd, alignment in bytes %2zd:",
+ pos, align * sizeof (CHAR));
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, buf + align, seek_char, result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strcmp.c b/libc/benchtests/bench-strcmp.c
index 63a3cd499..c1e0b263a 100644
--- a/libc/benchtests/bench-strcmp.c
+++ b/libc/benchtests/bench-strcmp.c
@@ -138,23 +138,19 @@ do_one_test (impl_t *impl,
const CHAR *s1, const CHAR *s2,
int exp_result)
{
- if (HP_TIMING_AVAIL)
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s1, s2);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -190,14 +186,12 @@ do_test (size_t align1, size_t align2, size_t len, int max_char,
s2[len + 1] = 24 + exp_result;
s2[len - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, exp_result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strcpy.c b/libc/benchtests/bench-strcpy.c
index 4e024d406..88db83b88 100644
--- a/libc/benchtests/bench-strcpy.c
+++ b/libc/benchtests/bench-strcpy.c
@@ -74,6 +74,9 @@ static void
do_one_test (impl_t *impl, CHAR *dst, const CHAR *src,
size_t len __attribute__((unused)))
{
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (CALL (impl, dst, src) != STRCPY_RESULT (dst, len))
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -91,23 +94,16 @@ do_one_test (impl_t *impl, CHAR *dst, const CHAR *src,
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));;
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
CALL (impl, dst, src);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -133,14 +129,12 @@ do_test (size_t align1, size_t align2, size_t len, int max_char)
s1[i] = 32 + 23 * i % (max_char - 32);
s1[len] = 0;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignments in bytes %2zd/%2zd:", len, align1 * sizeof(CHAR), align2 * sizeof(CHAR));
+ printf ("Length %4zd, alignments in bytes %2zd/%2zd:", len, align1 * sizeof(CHAR), align2 * sizeof(CHAR));
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strcpy_chk.c b/libc/benchtests/bench-strcpy_chk.c
index 29e57285b..3c2a0b3fb 100644
--- a/libc/benchtests/bench-strcpy_chk.c
+++ b/libc/benchtests/bench-strcpy_chk.c
@@ -75,6 +75,9 @@ do_one_test (impl_t *impl, char *dst, const char *src,
size_t len, size_t dlen)
{
char *res;
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (dlen <= len)
{
if (impl->test == 1)
@@ -110,23 +113,16 @@ do_one_test (impl_t *impl, char *dst, const char *src,
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));;
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
+ CALL (impl, dst, src, dlen);
+ }
+ TIMING_NOW (stop);
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, dlen);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
+ TIMING_DIFF (cur, start, stop);
- printf ("\t%zd", (size_t) best_time);
- }
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -150,13 +146,13 @@ do_test (size_t align1, size_t align2, size_t len, size_t dlen, int max_char)
s1[i] = 32 + 23 * i % (max_char - 32);
s1[len] = 0;
- if (HP_TIMING_AVAIL && dlen > len)
+ if (dlen > len)
printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len, dlen);
- if (HP_TIMING_AVAIL && dlen > len)
+ if (dlen > len)
putchar ('\n');
}
diff --git a/libc/benchtests/bench-string.h b/libc/benchtests/bench-string.h
index 2fe8d9fae..53e796a90 100644
--- a/libc/benchtests/bench-string.h
+++ b/libc/benchtests/bench-string.h
@@ -52,7 +52,7 @@ extern impl_t __start_impls[], __stop_impls[];
# include <ifunc-impl-list.h>
# define GL(x) _##x
# define GLRO(x) _##x
-# include <hp-timing.h>
+# include "bench-timing.h"
# define TEST_FUNCTION test_main ()
@@ -61,6 +61,8 @@ extern impl_t __start_impls[], __stop_impls[];
# define OPT_RANDOM 10001
# define OPT_SEED 10002
+# define INNER_LOOP_ITERS 64
+
unsigned char *buf1, *buf2;
int ret, do_srandom;
unsigned int seed;
@@ -158,16 +160,6 @@ static impl_t *impl_array;
if (!notall || impl->test)
# endif /* ! (defined TEST_IFUNC && defined TEST_NAME) */
-# define HP_TIMING_BEST(best_time, start, end) \
- do \
- { \
- hp_timing_t tmptime; \
- HP_TIMING_DIFF (tmptime, start + _dl_hp_timing_overhead, end); \
- if (best_time > tmptime) \
- best_time = tmptime; \
- } \
- while (0)
-
# ifndef BUF1PAGES
# define BUF1PAGES 1
# endif
@@ -198,7 +190,6 @@ test_init (void)
error (EXIT_FAILURE, errno, "mmap failed");
if (mprotect (buf2 + page_size, page_size, PROT_NONE))
error (EXIT_FAILURE, errno, "mprotect failed");
- HP_TIMING_DIFF_INIT ();
if (do_srandom)
{
printf ("Setting seed to 0x%x\n", seed);
diff --git a/libc/benchtests/bench-strlen.c b/libc/benchtests/bench-strlen.c
index 63b1e9368..44c9c2b4a 100644
--- a/libc/benchtests/bench-strlen.c
+++ b/libc/benchtests/bench-strlen.c
@@ -62,7 +62,9 @@ IMPL (STRLEN, 1)
static void
do_one_test (impl_t *impl, const CHAR *s, size_t exp_len)
{
- size_t len = CALL (impl, s);
+ size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (len != exp_len)
{
error (0, 0, "Wrong result in function %s %zd %zd", impl->name,
@@ -71,23 +73,16 @@ do_one_test (impl_t *impl, const CHAR *s, size_t exp_len)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -105,14 +100,12 @@ do_test (size_t align, size_t len)
buf[align + i] = 1 + 11111 * i % MAX_CHAR;
buf[align + len] = 0;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd:", len, align);
+ printf ("Length %4zd, alignment %2zd:", len, align);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (CHAR *) (buf + align), len);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strncasecmp.c b/libc/benchtests/bench-strncasecmp.c
index 5fa9220cb..9badd051b 100644
--- a/libc/benchtests/bench-strncasecmp.c
+++ b/libc/benchtests/bench-strncasecmp.c
@@ -73,23 +73,19 @@ static void
do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
int exp_result)
{
- if (HP_TIMING_AVAIL)
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s1, s2, n);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -128,14 +124,12 @@ do_test (size_t align1, size_t align2, size_t n, size_t len, int max_char,
else
s2[len - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, n, exp_result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strncat.c b/libc/benchtests/bench-strncat.c
index 904daa7b7..2a1781759 100644
--- a/libc/benchtests/bench-strncat.c
+++ b/libc/benchtests/bench-strncat.c
@@ -43,7 +43,9 @@ stupid_strncat (char *dst, const char *src, size_t n)
static void
do_one_test (impl_t *impl, char *dst, const char *src, size_t n)
{
- size_t k = strlen (dst);
+ size_t k = strlen (dst), i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (CALL (impl, dst, src, n) != dst)
{
error (0, 0, "Wrong result in function %s %p != %p", impl->name,
@@ -67,24 +69,18 @@ do_one_test (impl_t *impl, char *dst, const char *src, size_t n)
ret = 1;
return;
}
- if (HP_TIMING_AVAIL)
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
+ dst[k] = '\0';
+ CALL (impl, dst, src, n);
+ }
+ TIMING_NOW (stop);
- for (i = 0; i < 32; ++i)
- {
- dst[k] = '\0';
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
+ TIMING_DIFF (cur, start, stop);
- printf ("\t%zd", (size_t) best_time);
- }
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -114,9 +110,8 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2,
for (i = 0; i < len2; i++)
s2[i] = 32 + 23 * i % (max_char - 32);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd, alignment %2zd/%2zd, N %4zd:",
- len1, len2, align1, align2, n);
+ printf ("Length %4zd/%4zd, alignment %2zd/%2zd, N %4zd:",
+ len1, len2, align1, align2, n);
FOR_EACH_IMPL (impl, 0)
{
@@ -124,8 +119,7 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2,
do_one_test (impl, s2, s1, n);
}
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strncmp.c b/libc/benchtests/bench-strncmp.c
index b3af0f98e..25df3dbc2 100644
--- a/libc/benchtests/bench-strncmp.c
+++ b/libc/benchtests/bench-strncmp.c
@@ -54,23 +54,19 @@ static void
do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
int exp_result)
{
- if (HP_TIMING_AVAIL)
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s1, s2, n);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -84,14 +80,12 @@ do_test_limit (size_t align1, size_t align2, size_t len, size_t n, int max_char,
{
s1 = (char*)(buf1 + page_size);
s2 = (char*)(buf2 + page_size);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd:", len, n);
+ printf ("Length %4zd/%4zd:", len, n);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, n, 0);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
return;
}
@@ -122,14 +116,12 @@ do_test_limit (size_t align1, size_t align2, size_t len, size_t n, int max_char,
s1[len] = 64;
}
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
+ printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, n, exp_result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
static void
@@ -167,14 +159,12 @@ do_test (size_t align1, size_t align2, size_t len, size_t n, int max_char,
if (len >= n)
s2[n - 1] -= exp_result;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
+ printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char*)s1, (char*)s2, n, exp_result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strncpy.c b/libc/benchtests/bench-strncpy.c
index 4065c0aae..645925bff 100644
--- a/libc/benchtests/bench-strncpy.c
+++ b/libc/benchtests/bench-strncpy.c
@@ -62,6 +62,9 @@ typedef char *(*proto_t) (char *, const char *, size_t);
static void
do_one_test (impl_t *impl, char *dst, const char *src, size_t len, size_t n)
{
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (CALL (impl, dst, src, n) != STRNCPY_RESULT (dst, len, n))
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -90,23 +93,16 @@ do_one_test (impl_t *impl, char *dst, const char *src, size_t len, size_t n)
}
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute__ ((unused));
- hp_timing_t stop __attribute__ ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
+ CALL (impl, dst, src, n);
+ }
+ TIMING_NOW (stop);
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, dst, src, n);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
+ TIMING_DIFF (cur, start, stop);
- printf ("\t%zd", (size_t) best_time);
- }
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -132,14 +128,12 @@ do_test (size_t align1, size_t align2, size_t len, size_t n, int max_char)
for (i = len + 1; i + align1 < page_size && i < len + 64; ++i)
s1[i] = 32 + 32 * i % (max_char - 32);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, n %4zd, alignment %2zd/%2zd:", len, n, align1, align2);
+ printf ("Length %4zd, n %4zd, alignment %2zd/%2zd:", len, n, align1, align2);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len, n);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strnlen.c b/libc/benchtests/bench-strnlen.c
index 4233f279b..793f9bea5 100644
--- a/libc/benchtests/bench-strnlen.c
+++ b/libc/benchtests/bench-strnlen.c
@@ -38,7 +38,9 @@ simple_strnlen (const char *s, size_t maxlen)
static void
do_one_test (impl_t *impl, const char *s, size_t maxlen, size_t exp_len)
{
- size_t len = CALL (impl, s, maxlen);
+ size_t len = CALL (impl, s, maxlen), i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (len != exp_len)
{
error (0, 0, "Wrong result in function %s %zd %zd", impl->name,
@@ -47,23 +49,16 @@ do_one_test (impl_t *impl, const char *s, size_t maxlen, size_t exp_len)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, maxlen);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s, maxlen);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -79,14 +74,12 @@ do_test (size_t align, size_t len, size_t maxlen, int max_char)
buf1[align + i] = 1 + 7 * i % max_char;
buf1[align + len] = 0;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd:", len, align);
+ printf ("Length %4zd, alignment %2zd:", len, align);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (char *) (buf1 + align), maxlen, MIN (len, maxlen));
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strpbrk.c b/libc/benchtests/bench-strpbrk.c
index 0163de89b..fe966be1c 100644
--- a/libc/benchtests/bench-strpbrk.c
+++ b/libc/benchtests/bench-strpbrk.c
@@ -62,6 +62,9 @@ static void
do_one_test (impl_t *impl, const char *s, const char *rej, RES_TYPE exp_res)
{
RES_TYPE res = CALL (impl, s, rej);
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (res != exp_res)
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -70,23 +73,16 @@ do_one_test (impl_t *impl, const char *s, const char *rej, RES_TYPE exp_res)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
+ CALL (impl, s, rej);
+ }
+ TIMING_NOW (stop);
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, rej);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
+ TIMING_DIFF (cur, start, stop);
- printf ("\t%zd", (size_t) best_time);
- }
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -136,14 +132,12 @@ do_test (size_t align, size_t pos, size_t len)
}
result = STRPBRK_RESULT (s, pos);
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd, rej len %2zd:", pos, align, len);
+ printf ("Length %4zd, alignment %2zd, rej len %2zd:", pos, align, len);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s, rej, result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strrchr.c b/libc/benchtests/bench-strrchr.c
index 400ac80e2..6a7aa8429 100644
--- a/libc/benchtests/bench-strrchr.c
+++ b/libc/benchtests/bench-strrchr.c
@@ -63,6 +63,9 @@ static void
do_one_test (impl_t *impl, const CHAR *s, int c, CHAR *exp_res)
{
CHAR *res = CALL (impl, s, c);
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (res != exp_res)
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -71,23 +74,16 @@ do_one_test (impl_t *impl, const CHAR *s, int c, CHAR *exp_res)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, c);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s, c);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -126,14 +122,12 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
else
result = NULL;
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment in bytes %2zd:", pos, align * sizeof(CHAR));
+ printf ("Length %4zd, alignment in bytes %2zd:", pos, align * sizeof(CHAR));
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, (CHAR *) (buf + align), seek_char, result);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strspn.c b/libc/benchtests/bench-strspn.c
index 7cf26f470..634bca193 100644
--- a/libc/benchtests/bench-strspn.c
+++ b/libc/benchtests/bench-strspn.c
@@ -65,7 +65,9 @@ stupid_strspn (const char *s, const char *acc)
static void
do_one_test (impl_t *impl, const char *s, const char *acc, size_t exp_res)
{
- size_t res = CALL (impl, s, acc);
+ size_t res = CALL (impl, s, acc), i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
if (res != exp_res)
{
error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -74,23 +76,16 @@ do_one_test (impl_t *impl, const char *s, const char *acc, size_t exp_res)
return;
}
- if (HP_TIMING_AVAIL)
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~ (hp_timing_t) 0;
- size_t i;
-
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s, acc);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
-
- printf ("\t%zd", (size_t) best_time);
+ CALL (impl, s, acc);
}
+ TIMING_NOW (stop);
+
+ TIMING_DIFF (cur, start, stop);
+
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
static void
@@ -128,14 +123,12 @@ do_test (size_t align, size_t pos, size_t len)
s[i] = '\0';
}
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd, alignment %2zd, acc len %2zd:", pos, align, len);
+ printf ("Length %4zd, alignment %2zd, acc len %2zd:", pos, align, len);
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s, acc, pos);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
int
diff --git a/libc/benchtests/bench-strstr.c b/libc/benchtests/bench-strstr.c
index 91a8dfed6..528a5c008 100644
--- a/libc/benchtests/bench-strstr.c
+++ b/libc/benchtests/bench-strstr.c
@@ -58,23 +58,19 @@ IMPL (strstr, 1)
static void
do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
{
- if (HP_TIMING_AVAIL)
+ size_t i, iters = INNER_LOOP_ITERS;
+ timing_t start, stop, cur;
+
+ TIMING_NOW (start);
+ for (i = 0; i < iters; ++i)
{
- hp_timing_t start __attribute ((unused));
- hp_timing_t stop __attribute ((unused));
- hp_timing_t best_time = ~(hp_timing_t) 0;
- size_t i;
+ CALL (impl, s1, s2);
+ }
+ TIMING_NOW (stop);
- for (i = 0; i < 32; ++i)
- {
- HP_TIMING_NOW (start);
- CALL (impl, s1, s2);
- HP_TIMING_NOW (stop);
- HP_TIMING_BEST (best_time, start, stop);
- }
+ TIMING_DIFF (cur, start, stop);
- printf ("\t%zd", (size_t) best_time);
- }
+ TIMING_PRINT_MEAN ((double) cur, (double) iters);
}
@@ -113,15 +109,13 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2,
}
s1[len1] = '\0';
- if (HP_TIMING_AVAIL)
- printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
- len1, len2, align1, align2, fail ? "fail" : "found");
+ printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
+ len1, len2, align1, align2, fail ? "fail" : "found");
FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
- if (HP_TIMING_AVAIL)
- putchar ('\n');
+ putchar ('\n');
}
static int
diff --git a/libc/benchtests/bench-timing.h b/libc/benchtests/bench-timing.h
index 264d4b8ba..009813bb8 100644
--- a/libc/benchtests/bench-timing.h
+++ b/libc/benchtests/bench-timing.h
@@ -70,3 +70,6 @@ typedef uint64_t timing_t;
(min) / (d_iters), 1e9 * (d_total_i) / (d_total_s))
#endif
+
+#define TIMING_PRINT_MEAN(d_total_s, d_iters) \
+ printf ("\t%g", (d_total_s) / (d_iters))
diff --git a/libc/bits/socket.h b/libc/bits/socket.h
index 7564e2ba0..78c54a0f9 100644
--- a/libc/bits/socket.h
+++ b/libc/bits/socket.h
@@ -1,11 +1,11 @@
-/* System-specific socket constants and types. Generic/4.3 BSD version.
+/* System-specific socket constants and types. 4.4 BSD version.
Copyright (C) 1991-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,22 +13,23 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
#ifndef __BITS_SOCKET_H
#define __BITS_SOCKET_H 1
-#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
+#ifndef _SYS_SOCKET_H
# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
#endif
-#include <limits.h>
-#include <bits/types.h>
-
#define __need_size_t
+#define __need_NULL
#include <stddef.h>
+#include <limits.h> /* XXX Is this allowed? */
+#include <bits/types.h>
+
/* Type for length arguments in socket calls. */
#ifndef __socklen_t_defined
typedef __socklen_t socklen_t;
@@ -49,9 +50,25 @@ enum __socket_type
#define SOCK_RAW SOCK_RAW
SOCK_RDM = 4, /* Reliably-delivered messages. */
#define SOCK_RDM SOCK_RDM
- SOCK_SEQPACKET = 5 /* Sequenced, reliable, connection-based,
+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
datagrams of fixed maximum length. */
#define SOCK_SEQPACKET SOCK_SEQPACKET
+
+#define SOCK_MAX (SOCK_SEQPACKET + 1)
+ /* Mask which covers at least up to SOCK_MASK-1.
+ The remaining bits are used as flags. */
+#define SOCK_TYPE_MASK 0xf
+
+ /* Flags to be ORed into the type parameter of socket and socketpair and
+ used for the flags parameter of accept4. */
+
+ SOCK_CLOEXEC = 0x10000000, /* Atomically set close-on-exec flag for the
+ new descriptor(s). */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+
+ SOCK_NONBLOCK = 0x20000000 /* Atomically mark descriptor(s) as
+ non-blocking. */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
};
/* Protocol families. */
@@ -120,6 +137,8 @@ enum __socket_type
#define AF_INET6 PF_INET6
#define AF_MAX PF_MAX
+/* Maximum queue length specifiable by listen. */
+#define SOMAXCONN 128 /* 5 on the origional 4.4 BSD. */
/* Get the definition of the macro to define the common sockaddr members. */
#include <bits/sockaddr.h>
@@ -167,8 +186,10 @@ enum
#define MSG_CTRUNC MSG_CTRUNC
MSG_WAITALL = 0x40, /* Wait for full request or error. */
#define MSG_WAITALL MSG_WAITALL
- MSG_DONTWAIT = 0x80 /* This message should be nonblocking. */
+ MSG_DONTWAIT = 0x80, /* This message should be nonblocking. */
#define MSG_DONTWAIT MSG_DONTWAIT
+ MSG_NOSIGNAL = 0x0400 /* Do not generate SIGPIPE on EPIPE. */
+#define MSG_NOSIGNAL MSG_NOSIGNAL
};
@@ -176,18 +197,105 @@ enum
`sendmsg' and received by `recvmsg'. */
struct msghdr
{
- __ptr_t msg_name; /* Address to send to/receive from. */
+ void *msg_name; /* Address to send to/receive from. */
socklen_t msg_namelen; /* Length of address data. */
struct iovec *msg_iov; /* Vector of data to send/receive into. */
int msg_iovlen; /* Number of elements in the vector. */
- __ptr_t msg_accrights; /* Access rights information. */
- socklen_t msg_accrightslen; /* Length of access rights information. */
+ void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
+ socklen_t msg_controllen; /* Ancillary data buffer length. */
int msg_flags; /* Flags in received message. */
};
+/* Structure used for storage of ancillary data object information. */
+struct cmsghdr
+ {
+ socklen_t cmsg_len; /* Length of data in cmsg_data plus length
+ of cmsghdr structure. */
+ int cmsg_level; /* Originating protocol. */
+ int cmsg_type; /* Protocol specific type. */
+#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
+ __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
+#endif
+ };
+
+/* Ancillary data object manipulation macros. */
+#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
+# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
+#else
+# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
+#endif
+
+#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
+
+#define CMSG_FIRSTHDR(mhdr) \
+ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
+ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
+
+#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
+ & (size_t) ~(sizeof (size_t) - 1))
+#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
+ + CMSG_ALIGN (sizeof (struct cmsghdr)))
+#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
+
+extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
+ struct cmsghdr *__cmsg) __THROW;
+#ifdef __USE_EXTERN_INLINES
+# ifndef _EXTERN_INLINE
+# define _EXTERN_INLINE __extern_inline
+# endif
+_EXTERN_INLINE struct cmsghdr *
+__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
+{
+ if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
+ /* The kernel header does this so there may be a reason. */
+ return NULL;
+
+ __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
+ + CMSG_ALIGN (__cmsg->cmsg_len));
+ if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
+ + __mhdr->msg_controllen)
+ || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
+ > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
+ /* No more entries. */
+ return NULL;
+ return __cmsg;
+}
+#endif /* Use `extern inline'. */
+
+/* Socket level message types. */
+enum
+ {
+ SCM_RIGHTS = 0x01, /* Access rights (array of int). */
+#define SCM_RIGHTS SCM_RIGHTS
+ SCM_TIMESTAMP = 0x02, /* Timestamp (struct timeval). */
+#define SCM_TIMESTAMP SCM_TIMESTAMP
+ SCM_CREDS = 0x03 /* Process creds (struct cmsgcred). */
+#define SCM_CREDS SCM_CREDS
+ };
+
+/* Unfortunately, BSD practice dictates this structure be of fixed size.
+ If there are more than CMGROUP_MAX groups, the list is truncated.
+ (On GNU systems, the `cmcred_euid' field is just the first in the
+ list of effective UIDs.) */
+#define CMGROUP_MAX 16
+
+/* Structure delivered by SCM_CREDS. This describes the identity of the
+ sender of the data simultaneously received on the socket. By BSD
+ convention, this is included only when a sender on a AF_LOCAL socket
+ sends cmsg data of this type and size; the sender's structure is
+ ignored, and the system fills in the various IDs of the sender process. */
+struct cmsgcred
+ {
+ __pid_t cmcred_pid;
+ __uid_t cmcred_uid;
+ __uid_t cmcred_euid;
+ __gid_t cmcred_gid;
+ int cmcred_ngroups;
+ __gid_t cmcred_groups[CMGROUP_MAX];
+ };
/* Protocol number used to manipulate socket-level options
with `getsockopt' and `setsockopt'. */
diff --git a/libc/config.h.in b/libc/config.h.in
index a85f13125..30568e3af 100644
--- a/libc/config.h.in
+++ b/libc/config.h.in
@@ -57,9 +57,6 @@
directive. */
#undef HAVE_ASM_POPSECTION_DIRECTIVE
-/* Define if versioning of the library is wanted. */
-#undef DO_VERSIONING
-
/* Defined to the oldest ABI we support, like 2.1. */
#undef GLIBC_OLDEST_ABI
diff --git a/libc/config.make.in b/libc/config.make.in
index 7b04568a2..b5308d85b 100644
--- a/libc/config.make.in
+++ b/libc/config.make.in
@@ -67,7 +67,6 @@ output-format = @libc_cv_output_format@
static-libgcc = @libc_cv_gcc_static_libgcc@
-versioning = @VERSIONING@
oldest-abi = @oldest_abi@
exceptions = @exceptions@
multi-arch = @multi_arch@
diff --git a/libc/configure b/libc/configure
index 5332b5982..3eb345cb5 100755
--- a/libc/configure
+++ b/libc/configure
@@ -613,7 +613,6 @@ libc_cv_z_combreloc
ASFLAGS_config
libc_cv_Bgroup
libc_cv_cc_with_libunwind
-VERSIONING
BISON
INSTALL_INFO
PERL
@@ -739,7 +738,6 @@ with_default_link
enable_sanity_checks
enable_shared
enable_profile
-enable_versioning
enable_oldest_abi
enable_hardcoded_path_in_tests
enable_stackguard_randomization
@@ -1392,8 +1390,6 @@ Optional Features:
in special situations) [default=yes]
--enable-shared build shared library [default=yes if GNU ld]
--enable-profile build profiled library [default=no]
- --disable-versioning do not include versioning information in the library
- objects [default=yes if supported]
--enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2]
[default=glibc default]
--enable-hardcoded-path-in-tests
@@ -3432,13 +3428,6 @@ else
profile=no
fi
-# Check whether --enable-versioning was given.
-if test "${enable_versioning+set}" = set; then :
- enableval=$enable_versioning; enable_versioning=$enableval
-else
- enable_versioning=yes
-fi
-
# Check whether --enable-oldest-abi was given.
if test "${enable_oldest_abi+set}" = set; then :
@@ -3722,7 +3711,7 @@ else
fi
-if test $build_pt_chown = yes; then
+if test "$build_pt_chown" = yes; then
$as_echo "#define HAVE_PT_CHOWN 1" >>confdefs.h
fi
@@ -5631,90 +5620,6 @@ if test $libc_cv_asm_unique_object = yes; then
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .symver assembler directive" >&5
-$as_echo_n "checking for .symver assembler directive... " >&6; }
-if ${libc_cv_asm_symver_directive+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat > conftest.s <<EOF
-${libc_cv_dot_text}
-_sym:
-.symver _sym,sym@VERS
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
- libc_cv_asm_symver_directive=yes
-else
- libc_cv_asm_symver_directive=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_symver_directive" >&5
-$as_echo "$libc_cv_asm_symver_directive" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld --version-script" >&5
-$as_echo_n "checking for ld --version-script... " >&6; }
-if ${libc_cv_ld_version_script_option+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test $libc_cv_asm_symver_directive = yes; then
- cat > conftest.s <<EOF
-${libc_cv_dot_text}
-_sym:
-.symver _sym,sym@VERS
-EOF
- cat > conftest.map <<EOF
-VERS_1 {
- global: sym;
-};
-
-VERS_2 {
- global: sym;
-} VERS_1;
-EOF
- if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
- if { ac_try='${CC-cc} $CFLAGS $LDFLAGS -shared
- -o conftest.so conftest.o
- -nostartfiles -nostdlib
- -Wl,--version-script,conftest.map
- 1>&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; };
- then
- libc_cv_ld_version_script_option=yes
- else
- libc_cv_ld_version_script_option=no
- fi
- else
- libc_cv_ld_version_script_option=no
- fi
-else
- libc_cv_ld_version_script_option=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ld_version_script_option" >&5
-$as_echo "$libc_cv_ld_version_script_option" >&6; }
-if test $shared != no &&
- test $libc_cv_asm_symver_directive = yes &&
- test $libc_cv_ld_version_script_option = yes &&
- test $enable_versioning = yes; then
- VERSIONING=yes
- $as_echo "#define DO_VERSIONING 1" >>confdefs.h
-
-else
- VERSIONING=no
-fi
-
-
-if test $shared != no && test $VERSIONING = no; then
- echo "\
-*** WARNING: You should not compile GNU libc without versioning. Not using
-*** versioning will introduce incompatibilities so that old binaries
-*** will not run anymore.
-*** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
-fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .previous assembler directive" >&5
$as_echo_n "checking for .previous assembler directive... " >&6; }
if ${libc_cv_asm_previous_directive+:} false; then :
diff --git a/libc/configure.in b/libc/configure.in
index a12d70bb3..b8a797e67 100644
--- a/libc/configure.in
+++ b/libc/configure.in
@@ -150,11 +150,6 @@ AC_ARG_ENABLE([profile],
[build profiled library @<:@default=no@:>@]),
[profile=$enableval],
[profile=no])
-AC_ARG_ENABLE([versioning],
- AC_HELP_STRING([--disable-versioning],
- [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
- [enable_versioning=$enableval],
- [enable_versioning=yes])
AC_ARG_ENABLE([oldest-abi],
AC_HELP_STRING([--enable-oldest-abi=ABI],
@@ -359,7 +354,7 @@ AC_ARG_ENABLE([pt_chown],
[build_pt_chown=$enableval],
[build_pt_chown=no])
AC_SUBST(build_pt_chown)
-if test $build_pt_chown = yes; then
+if test "$build_pt_chown" = yes; then
AC_DEFINE(HAVE_PT_CHOWN)
fi
@@ -1204,70 +1199,6 @@ if test $libc_cv_asm_unique_object = yes; then
AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT)
fi
-AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
-[cat > conftest.s <<EOF
-${libc_cv_dot_text}
-_sym:
-.symver _sym,sym@VERS
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
- libc_cv_asm_symver_directive=yes
-else
- libc_cv_asm_symver_directive=no
-fi
-rm -f conftest*])
-AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
-if test $libc_cv_asm_symver_directive = yes; then
- cat > conftest.s <<EOF
-${libc_cv_dot_text}
-_sym:
-.symver _sym,sym@VERS
-EOF
- cat > conftest.map <<EOF
-VERS_1 {
- global: sym;
-};
-
-VERS_2 {
- global: sym;
-} VERS_1;
-EOF
- if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
- if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
- -o conftest.so conftest.o
- -nostartfiles -nostdlib
- -Wl,--version-script,conftest.map
- 1>&AS_MESSAGE_LOG_FD]);
- then
- libc_cv_ld_version_script_option=yes
- else
- libc_cv_ld_version_script_option=no
- fi
- else
- libc_cv_ld_version_script_option=no
- fi
-else
- libc_cv_ld_version_script_option=no
-fi
-rm -f conftest*])
-if test $shared != no &&
- test $libc_cv_asm_symver_directive = yes &&
- test $libc_cv_ld_version_script_option = yes &&
- test $enable_versioning = yes; then
- VERSIONING=yes
- AC_DEFINE(DO_VERSIONING)
-else
- VERSIONING=no
-fi
-AC_SUBST(VERSIONING)
-
-if test $shared != no && test $VERSIONING = no; then
- echo "\
-*** WARNING: You should not compile GNU libc without versioning. Not using
-*** versioning will introduce incompatibilities so that old binaries
-*** will not run anymore.
-*** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
-fi
AC_CACHE_CHECK(for .previous assembler directive,
libc_cv_asm_previous_directive, [dnl
cat > conftest.s <<EOF
diff --git a/libc/conform/conformtest.pl b/libc/conform/conformtest.pl
index ec2e9c308..8b97d0dfc 100644
--- a/libc/conform/conformtest.pl
+++ b/libc/conform/conformtest.pl
@@ -236,6 +236,8 @@ sub newtoken {
for ($idx = 0; $idx <= $#allow; ++$idx) {
return if (poorfnmatch ($allow[$idx], $token));
}
+
+ $errors{$token} = 1;
}
@@ -786,7 +788,7 @@ while ($#headers >= 0) {
if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
push @allow, $7;
} elsif (/^(macro|constant|macro-constant|macro-int-constant) +([a-zA-Z0-9_]*) *(?:{([^}]*)} *)?(?:([>=<!]+) ([A-Za-z0-9_-]*))?/) {
- push @allow, $1;
+ push @allow, $2;
} elsif (/^(type|tag) *({([^}]*)|([a-zA-Z0-9_]*))/) {
my($type) = "$3$4";
diff --git a/libc/crypt/speeds.c b/libc/crypt/speeds.c
index 0d55ae83b..810ecb0b2 100644
--- a/libc/crypt/speeds.c
+++ b/libc/crypt/speeds.c
@@ -16,7 +16,7 @@
* patch from chip@chinacat.unicom.com (Chip Rosenthal):
* you may enable it if your system does not include
* a setitimer() function. You'll have to ensure the
- * existence a environment variable: HZ giving how many
+ * existence an environment variable: HZ giving how many
* ticks goes per second.
* If not existing in your default environment 50, 60
* or even 100 may be the right value. Perhaps you should
diff --git a/libc/csu/check_fds.c b/libc/csu/check_fds.c
index 3616e6c60..9b83828a8 100644
--- a/libc/csu/check_fds.c
+++ b/libc/csu/check_fds.c
@@ -60,7 +60,7 @@ check_one_fd (int fd, int mode)
/* Something is wrong with this descriptor, it's probably not
opened. Open /dev/null so that the SUID program we are
- about to start does not accidently use this descriptor. */
+ about to start does not accidentally use this descriptor. */
int nullfd = open_not_cancel (name, mode, 0);
/* We are very paranoid here. With all means we try to ensure
diff --git a/libc/csu/init-first.c b/libc/csu/init-first.c
index 89d8d9634..f0ebc94b8 100644
--- a/libc/csu/init-first.c
+++ b/libc/csu/init-first.c
@@ -29,7 +29,7 @@
#include <ldsodefs.h>
-/* Set nonzero if we have to be prepared for more then one libc being
+/* Set nonzero if we have to be prepared for more than one libc being
used in the process. Safe assumption if initializer never runs. */
int __libc_multiple_libcs attribute_hidden = 1;
diff --git a/libc/debug/Makefile b/libc/debug/Makefile
index cd8289a15..626d18f2c 100644
--- a/libc/debug/Makefile
+++ b/libc/debug/Makefile
@@ -139,17 +139,19 @@ CFLAGS-tst-backtrace2.c += -funwind-tables
CFLAGS-tst-backtrace3.c += -funwind-tables
CFLAGS-tst-backtrace4.c += -funwind-tables
CFLAGS-tst-backtrace5.c += -funwind-tables
+CFLAGS-tst-backtrace6.c += -funwind-tables
LDFLAGS-tst-backtrace2 = -rdynamic
LDFLAGS-tst-backtrace3 = -rdynamic
LDFLAGS-tst-backtrace4 = -rdynamic
LDFLAGS-tst-backtrace5 = -rdynamic
+LDFLAGS-tst-backtrace6 = -rdynamic
tests = tst-longjmp_chk test-strcpy_chk test-stpcpy_chk tst-longjmp_chk2
tests-$(OPTION_EGLIBC_LOCALE_CODE) \
+= tst-chk1 tst-chk2 tst-chk3 tst-lfschk1 tst-lfschk2 tst-lfschk3
tests-$(OPTION_EGLIBC_BACKTRACE) \
+= backtrace-tst tst-backtrace2 tst-backtrace3 tst-backtrace4 \
- tst-backtrace5
+ tst-backtrace5 tst-backtrace6
ifeq (yy,$(OPTION_EGLIBC_LOCALE_CODE)$(OPTION_EGLIBC_CXX_TESTS))
tests += tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6
endif
diff --git a/libc/debug/backtracesyms.c b/libc/debug/backtracesyms.c
index 3be3dcbe0..7a45ea72f 100644
--- a/libc/debug/backtracesyms.c
+++ b/libc/debug/backtracesyms.c
@@ -28,7 +28,7 @@
#if __ELF_NATIVE_CLASS == 32
# define WORD_WIDTH 8
#else
-/* We assyme 64bits. */
+/* We assume 64bits. */
# define WORD_WIDTH 16
#endif
diff --git a/libc/debug/tst-backtrace5.c b/libc/debug/tst-backtrace5.c
index ca47437d9..51180c1c8 100644
--- a/libc/debug/tst-backtrace5.c
+++ b/libc/debug/tst-backtrace5.c
@@ -28,6 +28,10 @@
#include "tst-backtrace.h"
+#ifndef SIGACTION_FLAGS
+# define SIGACTION_FLAGS 0
+#endif
+
static int do_test (void);
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
@@ -91,7 +95,7 @@ handle_signal (int signum)
}
NO_INLINE int
-fn (int c)
+fn (int c, int flags)
{
pid_t parent_pid, child_pid;
int pipefd[2];
@@ -100,12 +104,13 @@ fn (int c)
if (c > 0)
{
- fn (c - 1);
+ fn (c - 1, flags);
return x;
}
memset (&act, 0, sizeof (act));
act.sa_handler = handle_signal;
+ act.sa_flags = flags;
sigemptyset (&act.sa_mask);
sigaction (SIGUSR1, &act, NULL);
parent_pid = getpid ();
@@ -131,6 +136,6 @@ fn (int c)
NO_INLINE static int
do_test (void)
{
- fn (2);
+ fn (2, SIGACTION_FLAGS);
return ret;
}
diff --git a/libc/debug/tst-backtrace6.c b/libc/debug/tst-backtrace6.c
new file mode 100644
index 000000000..cd8dbcd1d
--- /dev/null
+++ b/libc/debug/tst-backtrace6.c
@@ -0,0 +1,21 @@
+/* Test backtrace and backtrace_symbols for signal frames, where a
+ system call was interrupted by a signal.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SIGACTION_FLAGS SA_SIGINFO
+#include <debug/tst-backtrace5.c>
diff --git a/libc/dlfcn/Makefile b/libc/dlfcn/Makefile
index 35b7e50f9..d5e13d8cb 100644
--- a/libc/dlfcn/Makefile
+++ b/libc/dlfcn/Makefile
@@ -29,7 +29,7 @@ extra-libs-others := libdl
include ../Makeconfig
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
libdl-routines += dlopenold
libdl-shared-only-routines := dlopenold dlfcn
endif
@@ -37,14 +37,14 @@ endif
ifeq (yes,$(build-shared))
tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \
bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \
- tstatexit
+ tstatexit bug-dl-leaf
tests-$(OPTION_EGLIBC_CXX_TESTS) += bug-atexit3
-endif
modules-names = glreflib1 glreflib2 glreflib3 failtestmod defaultmod1 \
defaultmod2 errmsg1mod modatexit modcxaatexit \
bug-dlsym1-lib1 bug-dlsym1-lib2 bug-atexit1-lib \
- bug-atexit2-lib bug-atexit3-lib
+ bug-atexit2-lib bug-atexit3-lib bug-dl-leaf-lib \
+ bug-dl-leaf-lib-cb
failtestmod.so-no-z-defs = yes
glreflib2.so-no-z-defs = yes
@@ -136,3 +136,8 @@ $(objpfx)bug-atexit2.out: $(objpfx)bug-atexit2-lib.so
LDLIBS-bug-atexit3-lib.so = -lstdc++ -lgcc_eh
$(objpfx)bug-atexit3: $(libdl)
$(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so
+
+$(objpfx)bug-dl-leaf: $(objpfx)bug-dl-leaf-lib.so
+$(objpfx)bug-dl-leaf.out: $(objpfx)bug-dl-leaf-lib-cb.so
+$(objpfx)bug-dl-leaf-lib.so: $(libdl)
+$(objpfx)bug-dl-leaf-lib-cb.so: $(objpfx)bug-dl-leaf-lib.so
diff --git a/libc/dlfcn/bug-dl-leaf-lib-cb.c b/libc/dlfcn/bug-dl-leaf-lib-cb.c
new file mode 100644
index 000000000..e028c047a
--- /dev/null
+++ b/libc/dlfcn/bug-dl-leaf-lib-cb.c
@@ -0,0 +1,35 @@
+/* Make sure dlopen/dlclose are not marked as leaf functions.
+ See bug-dl-leaf-lib.c for details.
+
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Mike Frysinger <vapier@gentoo.org>
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+extern void check_val_init (void);
+extern void check_val_fini (void);
+
+__attribute__ ((__constructor__))
+void construct (void)
+{
+ check_val_init ();
+}
+
+__attribute__ ((__destructor__))
+void destruct (void)
+{
+ check_val_fini ();
+}
diff --git a/libc/dlfcn/bug-dl-leaf-lib.c b/libc/dlfcn/bug-dl-leaf-lib.c
new file mode 100644
index 000000000..e5955422d
--- /dev/null
+++ b/libc/dlfcn/bug-dl-leaf-lib.c
@@ -0,0 +1,71 @@
+/* Make sure dlopen/dlclose are not marked as leaf functions.
+
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Mike Frysinger <vapier@gentoo.org>
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The bug-dl-leaf.c file will call our lib_main directly. We do this to
+ keep things simple -- no need to use --export-dynamic with the linker
+ or build the main ELF as a PIE.
+
+ The lib_main func will modify some of its state while dlopening and
+ dlclosing the bug-dl-leaf-lib-cb.so library. The constructors and
+ destructors in that library will call back into this library to also
+ muck with state (the check_val_xxx funcs).
+
+ If dlclose/dlopen are marked as "leaf" functions, then with newer
+ versions of gcc, the state modification won't work correctly. */
+
+#include <assert.h>
+#include <dlfcn.h>
+
+static int val = 1;
+static int called = 0;
+
+void check_val_init (void)
+{
+ called = 1;
+ assert (val == 2);
+}
+
+void check_val_fini (void)
+{
+ called = 2;
+ assert (val == 4);
+}
+
+int lib_main (void)
+{
+ int ret;
+ void *hdl;
+
+ /* Make sure the constructor sees the updated val. */
+ val = 2;
+ hdl = dlopen ("bug-dl-leaf-lib-cb.so", RTLD_GLOBAL | RTLD_LAZY);
+ val = 3;
+ assert (hdl);
+ assert (called == 1);
+
+ /* Make sure the destructor sees the updated val. */
+ val = 4;
+ ret = dlclose (hdl);
+ val = 5;
+ assert (ret == 0);
+ assert (called == 2);
+
+ return !val;
+}
diff --git a/libc/dlfcn/bug-dl-leaf.c b/libc/dlfcn/bug-dl-leaf.c
new file mode 100644
index 000000000..c3fbe757f
--- /dev/null
+++ b/libc/dlfcn/bug-dl-leaf.c
@@ -0,0 +1,25 @@
+/* Make sure dlopen/dlclose are not marked as leaf functions.
+ See bug-dl-leaf-lib.c for details.
+
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Mike Frysinger <vapier@gentoo.org>
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define TEST_FUNCTION lib_main ()
+extern int lib_main (void);
+
+#include "../test-skeleton.c"
diff --git a/libc/dlfcn/dlfcn.h b/libc/dlfcn/dlfcn.h
index 241b55416..1ed47b1d1 100644
--- a/libc/dlfcn/dlfcn.h
+++ b/libc/dlfcn/dlfcn.h
@@ -53,11 +53,11 @@ __BEGIN_DECLS
/* Open the shared object FILE and map it in; return a handle that can be
passed to `dlsym' to get symbol values from it. */
-extern void *dlopen (const char *__file, int __mode) __THROW;
+extern void *dlopen (const char *__file, int __mode) __THROWNL;
/* Unmap and close a shared object opened by `dlopen'.
The handle cannot be used again after calling `dlclose'. */
-extern int dlclose (void *__handle) __THROW __nonnull ((1));
+extern int dlclose (void *__handle) __THROWNL __nonnull ((1));
/* Find the run-time address in the shared object HANDLE refers to
of the symbol called NAME. */
@@ -66,7 +66,7 @@ extern void *dlsym (void *__restrict __handle,
#ifdef __USE_GNU
/* Like `dlopen', but request object to be allocated in a new namespace. */
-extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __THROW;
+extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __THROWNL;
/* Find the run-time address in the shared object HANDLE refers to
of the symbol called NAME with VERSION. */
diff --git a/libc/dlfcn/modstatic2.c b/libc/dlfcn/modstatic2.c
index 0703de851..9b5aae8b9 100644
--- a/libc/dlfcn/modstatic2.c
+++ b/libc/dlfcn/modstatic2.c
@@ -117,13 +117,11 @@ test (FILE *out, int a)
exit (1);
}
-#ifdef DO_VERSIONING
if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
{
fprintf (out, "dlvsym: %s\n", dlerror ());
exit (1);
}
-#endif
void *(*dlsymfn) (void *, const char *);
dlsymfn = dlsym (handle2, "dlsym");
diff --git a/libc/dlfcn/tststatic2.c b/libc/dlfcn/tststatic2.c
index 85c0fb2ff..5d273a69b 100644
--- a/libc/dlfcn/tststatic2.c
+++ b/libc/dlfcn/tststatic2.c
@@ -115,13 +115,11 @@ main (void)
exit (1);
}
-#ifdef DO_VERSIONING
if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
{
printf ("dlvsym: %s\n", dlerror ());
exit (1);
}
-#endif
void *(*dlsymfn) (void *, const char *);
dlsymfn = dlsym (handle2, "dlsym");
diff --git a/libc/elf/Makefile b/libc/elf/Makefile
index 3b58649de..aaa9534b2 100644
--- a/libc/elf/Makefile
+++ b/libc/elf/Makefile
@@ -59,7 +59,7 @@ before-compile = $(objpfx)trusted-dirs.h
generated := trusted-dirs.h trusted-dirs.st for-renamed/renamed.so
generated-dirs := for-renamed
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
ld-map = $(common-objpfx)ld.map
endif
diff --git a/libc/elf/dl-load.c b/libc/elf/dl-load.c
index 62e03d187..e2f4a54cf 100644
--- a/libc/elf/dl-load.c
+++ b/libc/elf/dl-load.c
@@ -324,7 +324,7 @@ _dl_dst_substitute (struct link_map *l, const char *name, 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 accross
+ 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. */
char *wp = result;
diff --git a/libc/elf/dl-open.c b/libc/elf/dl-open.c
index 356a98ff1..a5e9f0d9a 100644
--- a/libc/elf/dl-open.c
+++ b/libc/elf/dl-open.c
@@ -158,7 +158,7 @@ add_to_global (struct link_map *new)
return 0;
}
-/* Search link maps in all namespaces for the DSO that containes the object at
+/* Search link maps in all namespaces for the DSO that contains the object at
address ADDR. Returns the pointer to the link map of the matching DSO, or
NULL if a match is not found. */
struct link_map *
@@ -396,7 +396,7 @@ dl_open_worker (void *a)
/* If this here is the shared object which we want to profile
make sure the profile is started. We can find out whether
this is necessary or not by observing the `_dl_profile_map'
- variable. If it was NULL but is not NULL afterwars we must
+ variable. If it was NULL but is not NULL afterwards we must
start the profiling. */
struct link_map *old_profile_map = GL(dl_profile_map);
diff --git a/libc/elf/elf.h b/libc/elf/elf.h
index f372271ed..fe55c928c 100644
--- a/libc/elf/elf.h
+++ b/libc/elf/elf.h
@@ -811,7 +811,7 @@ typedef struct
#define DF_1_EDITED 0x00200000 /* Object is modified after built. */
#define DF_1_NORELOC 0x00400000
#define DF_1_SYMINTPOSE 0x00800000 /* Object has individual interposers. */
-#define DF_1_GLOBAUDIT 0x01000000 /* Global auditin required. */
+#define DF_1_GLOBAUDIT 0x01000000 /* Global auditing required. */
#define DF_1_SINGLETON 0x02000000 /* Singleton symbols are used. */
/* Flags for the feature selection in DT_FEATURE_1. */
diff --git a/libc/elf/reldep.c b/libc/elf/reldep.c
index 44b239b6c..adabc0d5d 100644
--- a/libc/elf/reldep.c
+++ b/libc/elf/reldep.c
@@ -54,7 +54,7 @@ main (void)
}
/* Now close the first object. If must still be around since we have
- a implicit dependency. */
+ an implicit dependency. */
if (dlclose (h1) != 0)
{
printf ("closing h1 failed: %s\n", dlerror ());
diff --git a/libc/elf/reldep3.c b/libc/elf/reldep3.c
index b051c41db..05013d350 100644
--- a/libc/elf/reldep3.c
+++ b/libc/elf/reldep3.c
@@ -54,7 +54,7 @@ main (void)
}
/* Now close the first object. If must still be around since we have
- a implicit dependency. */
+ an implicit dependency. */
if (dlclose (h1) != 0)
{
printf ("closing h1 failed: %s\n", dlerror ());
diff --git a/libc/elf/sprof.c b/libc/elf/sprof.c
index 60f310f47..ecb7bdb2d 100644
--- a/libc/elf/sprof.c
+++ b/libc/elf/sprof.c
@@ -1364,7 +1364,7 @@ generate_call_graph (struct profdata *profdata)
runp = runp->next;
}
- /* Info abount the function itself. */
+ /* Info about the function itself. */
n = printf ("[%Zu]", cnt);
printf ("%*s%5.1f%8.2f%8.2f%9" PRIdMAX " %s [%Zd]\n",
(int) (7 - n), " ",
diff --git a/libc/extra-lib.mk b/libc/extra-lib.mk
index c61c7632c..ad973c1df 100644
--- a/libc/extra-lib.mk
+++ b/libc/extra-lib.mk
@@ -92,7 +92,7 @@ $(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \
$(build-extra-lib)
endif
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
# Add the version script to the dependencies of the shared library.
$(objpfx)$(lib).so: $(firstword $($(lib)-map) \
$(addprefix $(common-objpfx), \
diff --git a/libc/hurd/Makefile b/libc/hurd/Makefile
index f7c7c69d2..438725361 100644
--- a/libc/hurd/Makefile
+++ b/libc/hurd/Makefile
@@ -71,7 +71,7 @@ inlines = $(inline-headers:%.h=%-inlines)
routines += hurdmalloc
# Binary compatibility for libc.so.0.2[GLIBC_2.0].
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
routines += compat-20
endif
diff --git a/libc/hurd/geteuids.c b/libc/hurd/geteuids.c
index 7c546b7e7..92ddfae98 100644
--- a/libc/hurd/geteuids.c
+++ b/libc/hurd/geteuids.c
@@ -63,6 +63,6 @@ geteuids (int n, uid_t *uidset)
/* XXX Remove this alias when we bump the libc soname. */
-#if defined SHARED && DO_VERSIONING
+#ifdef SHARED
weak_alias (geteuids, __getuids)
#endif
diff --git a/libc/iconv/gconv_int.h b/libc/iconv/gconv_int.h
index 80c15335e..06faeaafc 100644
--- a/libc/iconv/gconv_int.h
+++ b/libc/iconv/gconv_int.h
@@ -49,7 +49,7 @@ struct gconv_alias
};
-/* How many character should be conveted in one call? */
+/* How many character should be converted in one call? */
#define GCONV_NCHAR_GOAL 8160
diff --git a/libc/iconv/iconv_charmap.c b/libc/iconv/iconv_charmap.c
index 56f156e11..09024a97c 100644
--- a/libc/iconv/iconv_charmap.c
+++ b/libc/iconv/iconv_charmap.c
@@ -454,7 +454,7 @@ process_block (struct convtable *tbl, char *addr, size_t len, FILE *output)
while (! is_term (cur, byte))
if (cur->val[byte].sub == NULL)
{
- /* This is a invalid sequence. Skip the first byte if we are
+ /* This is an invalid sequence. Skip the first byte if we are
ignoring errors. Otherwise punt. */
if (! omit_invalid)
{
diff --git a/libc/iconv/loop.c b/libc/iconv/loop.c
index 46bfdbb47..ad0181f74 100644
--- a/libc/iconv/loop.c
+++ b/libc/iconv/loop.c
@@ -38,7 +38,7 @@
BODY this is supposed to expand to the body of the loop.
The user must provide this.
- EXTRA_LOOP_DECLS extra arguments passed from converion loop call.
+ EXTRA_LOOP_DECLS extra arguments passed from conversion loop call.
INIT_PARAMS code to define and initialize variables from params.
UPDATE_PARAMS code to store result in params.
diff --git a/libc/iconv/skeleton.c b/libc/iconv/skeleton.c
index 45beb06d3..6997e0568 100644
--- a/libc/iconv/skeleton.c
+++ b/libc/iconv/skeleton.c
@@ -514,7 +514,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
size_t *lirreversiblep = irreversible ? &lirreversible : NULL;
/* The following assumes that encodings, which have a variable length
- what might unalign a buffer even though it is a aligned in the
+ what might unalign a buffer even though it is an aligned in the
beginning, either don't have the minimal number of bytes as a divisor
of the maximum length or have a minimum length of 1. This is true
for all known and supported encodings.
@@ -659,7 +659,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
data->__outbuf = outbuf;
/* Remember how many non-identical characters we
- converted in a irreversible way. */
+ converted in an irreversible way. */
*irreversible += lirreversible;
break;
diff --git a/libc/iconv/strtab.c b/libc/iconv/strtab.c
index c62553e2e..17286401a 100644
--- a/libc/iconv/strtab.c
+++ b/libc/iconv/strtab.c
@@ -180,7 +180,7 @@ newstring (struct Strtab *st, const char *str, size_t len)
/* XXX This function should definitely be rewritten to use a balancing
- tree algorith (AVL, red-black trees). For now a simple, correct
+ tree algorithm (AVL, red-black trees). For now a simple, correct
implementation is enough. */
static struct Strent **
searchstring (struct Strent **sep, struct Strent *newstr)
diff --git a/libc/iconvdata/gbbig5.c b/libc/iconvdata/gbbig5.c
index c08a2c1e6..bb75fa7b7 100644
--- a/libc/iconvdata/gbbig5.c
+++ b/libc/iconvdata/gbbig5.c
@@ -22,7 +22,7 @@
#include <stdint.h>
/*
- * This module does convertions between gb2312 and big5 encodings.
+ * This module does conversions between gb2312 and big5 encodings.
* It is necessary because gb2312 encoding use simplified chinese,
* while big5 use traditional one. Often times both the simplified
* version of a chinese character and its traditional counterpart
diff --git a/libc/iconvdata/iso-2022-jp.c b/libc/iconvdata/iso-2022-jp.c
index ce6612138..7fb513fea 100644
--- a/libc/iconvdata/iso-2022-jp.c
+++ b/libc/iconvdata/iso-2022-jp.c
@@ -271,7 +271,7 @@ gconv_end (struct __gconv_step *data)
if (__builtin_expect (ch, 0) == ESC) \
{ \
/* We now must be prepared to read two to three more \
- chracters. If we have a match in the first character but \
+ characters. If we have a match in the first character but \
then the input buffer ends we terminate with an error since \
we must not risk missing an escape sequence just because it \
is not entirely in the current input buffer. */ \
diff --git a/libc/include/complex.h b/libc/include/complex.h
index e173f1f6a..082e71fb1 100644
--- a/libc/include/complex.h
+++ b/libc/include/complex.h
@@ -1,11 +1,13 @@
#ifndef _COMPLEX_H
# include <math/complex.h>
+# ifndef _ISOMAC
/* Return the complex inverse hyperbolic sine of finite nonzero Z,
with the imaginary part of the result subtracted from pi/2 if ADJ
is nonzero. */
extern complex float __kernel_casinhf (complex float z, int adj);
extern complex double __kernel_casinh (complex double z, int adj);
extern complex long double __kernel_casinhl (complex long double z, int adj);
+# endif
#endif
diff --git a/libc/include/fenv.h b/libc/include/fenv.h
index 9f90d1709..925d4b50c 100644
--- a/libc/include/fenv.h
+++ b/libc/include/fenv.h
@@ -1,8 +1,8 @@
#ifndef _FENV_H
#include <math/fenv.h>
-#include <stdbool.h>
#ifndef _ISOMAC
+# include <stdbool.h>
/* Now define the internal interfaces. */
extern int __feclearexcept (int __excepts);
@@ -22,7 +22,6 @@ libm_hidden_proto (feholdexcept)
libm_hidden_proto (feupdateenv)
libm_hidden_proto (fetestexcept)
libm_hidden_proto (feclearexcept)
-#endif
/* Rounding mode context. This allows functions to set/restore rounding mode
only when the desired rounding mode is different from the current rounding
@@ -32,5 +31,6 @@ struct rm_ctx
fenv_t env;
bool updated_status;
};
+#endif
#endif
diff --git a/libc/include/libc-symbols.h b/libc/include/libc-symbols.h
index a3b6274ba..5f603a286 100644
--- a/libc/include/libc-symbols.h
+++ b/libc/include/libc-symbols.h
@@ -322,7 +322,7 @@ for linking")
past the last element in SET. */
#define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set)
-#if DO_VERSIONING
+#ifdef SHARED
# define symbol_version(real, name, version) \
_symbol_version(real, name, version)
# define default_symbol_version(real, name, version) \
@@ -466,7 +466,7 @@ for linking")
versioned_symbol (libc, __real_foo, foo, GLIBC_2_1);
libc_hidden_ver (__real_foo, foo) */
-#if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
+#if defined SHARED && !defined NO_HIDDEN
# ifndef __ASSEMBLER__
# define __hidden_proto_hiddenattr(attrs...) \
__attribute__ ((visibility ("hidden"), ##attrs))
diff --git a/libc/include/netdb.h b/libc/include/netdb.h
index cbf2645ac..1019e6f54 100644
--- a/libc/include/netdb.h
+++ b/libc/include/netdb.h
@@ -6,17 +6,12 @@
/* Macros for accessing h_errno from inside libc. */
# if !defined NOT_IN_libc || defined IN_LIB
# undef h_errno
-# ifdef _LIBC_REENTRANT
-# include <tls.h>
-# ifndef NOT_IN_libc
-# define h_errno __libc_h_errno
-# else
-# define h_errno h_errno /* For #ifndef h_errno tests. */
-# endif
-extern __thread int h_errno attribute_tls_model_ie;
+# ifndef NOT_IN_libc
+# define h_errno __libc_h_errno
# else
-extern int h_errno;
-# endif /* _LIBC_REENTRANT */
+# define h_errno h_errno /* For #ifndef h_errno tests. */
+# endif
+extern __thread int h_errno attribute_tls_model_ie;
# endif /* !NOT_IN_libc || IN_LIB */
# define __set_h_errno(x) (h_errno = (x))
diff --git a/libc/include/resolv.h b/libc/include/resolv.h
index 30ea8776b..87b359833 100644
--- a/libc/include/resolv.h
+++ b/libc/include/resolv.h
@@ -13,20 +13,12 @@
#ifdef _RESOLV_H_
-# ifdef _LIBC_REENTRANT
-# include <tls.h>
-# undef _res
-# ifndef NOT_IN_libc
-# define __resp __libc_resp
-# endif
-# define _res (*__resp)
-extern __thread struct __res_state *__resp attribute_tls_model_ie;
-# else
-# ifndef __BIND_NOSTATIC
-# undef _res
-extern struct __res_state _res;
-# endif
+# ifndef NOT_IN_libc
+# define __resp __libc_resp
# endif
+extern __thread struct __res_state *__resp attribute_tls_model_ie;
+# undef _res
+# define _res (*__resp)
/* Now define the internal interfaces. */
extern int __res_vinit (res_state, int);
diff --git a/libc/include/shlib-compat.h b/libc/include/shlib-compat.h
index 979b5929e..955c6aeea 100644
--- a/libc/include/shlib-compat.h
+++ b/libc/include/shlib-compat.h
@@ -19,13 +19,9 @@
#ifndef _SHLIB_COMPAT_H
#define _SHLIB_COMPAT_H 1
-#if defined DO_VERSIONING
-/* Since there is just one set of .d files generated, we need to
- include this unconditionally to have the dependency noticed properly. */
-#include <abi-versions.h> /* header generated by abi-versions.awk */
-#endif
+#ifdef SHARED
-#if defined SHARED && defined DO_VERSIONING
+# include <abi-versions.h>
/* The file abi-versions.h (generated by scripts/abi-versions.awk) defines
symbols like `ABI_libm_GLIBC_2_0' for each version set in the source
diff --git a/libc/inet/ifreq.c b/libc/inet/ifreq.c
index 2db6d0c30..d94d339c6 100644
--- a/libc/inet/ifreq.c
+++ b/libc/inet/ifreq.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 1999-2013 Free Software Foundation, Inc.
+/* Collect network interface list. Stub version.
+ Copyright (C) 2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj@suse.de>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -18,62 +18,9 @@
#include "ifreq.h"
-
void
__ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
{
- int fd = sockfd;
- struct ifconf ifc;
- int rq_len;
- int nifs;
-# define RQ_IFS 4
-
- if (fd < 0)
- fd = __opensock ();
- if (fd < 0)
- {
- *num_ifs = 0;
- *ifreqs = NULL;
- return;
- }
-
- ifc.ifc_buf = NULL;
- rq_len = RQ_IFS * sizeof (struct ifreq) / 2; /* Doubled in the loop. */
- do
- {
- ifc.ifc_len = rq_len *= 2;
- void *newp = realloc (ifc.ifc_buf, ifc.ifc_len);
- if (newp == NULL || __ioctl (fd, SIOCGIFCONF, &ifc) < 0)
- {
- free (ifc.ifc_buf);
-
- if (fd != sockfd)
- __close (fd);
- *num_ifs = 0;
- *ifreqs = NULL;
- return;
- }
- ifc.ifc_buf = newp;
- }
- while (rq_len < sizeof (struct ifreq) + ifc.ifc_len);
-
- if (fd != sockfd)
- __close (fd);
-
-#ifdef _HAVE_SA_LEN
- struct ifreq *ifr = *ifreqs;
- nifs = 0;
- while ((char *) ifr < ifc.ifc_buf + ifc.ifc_len)
- {
- ++nifs;
- ifr = __if_nextreq (ifr);
- if (ifr == NULL)
- break;
- }
-#else
- nifs = ifc.ifc_len / sizeof (struct ifreq);
-#endif
-
- *num_ifs = nifs;
- *ifreqs = realloc (ifc.ifc_buf, nifs * sizeof (struct ifreq));
+ *num_ifs = 0;
+ *ifreqs = NULL;
}
diff --git a/libc/io/lockf64.c b/libc/io/lockf64.c
index ba4c06a55..bc6d026d1 100644
--- a/libc/io/lockf64.c
+++ b/libc/io/lockf64.c
@@ -21,7 +21,7 @@
#include <errno.h>
#include <string.h>
-/* lockf.c defines lockf64 as an lias if __OFF_T_MATCHES_OFF64_T. */
+/* lockf.c defines lockf64 as an alias if __OFF_T_MATCHES_OFF64_T. */
#ifndef __OFF_T_MATCHES_OFF64_T
/* lockf is a simplified interface to fcntl's locking facilities. */
diff --git a/libc/io/lxstat64.c b/libc/io/lxstat64.c
index f64b84b47..2d5049b00 100644
--- a/libc/io/lxstat64.c
+++ b/libc/io/lxstat64.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991-2013 Free Software Foundation, Inc.
+/* lxstat64 -- get file metadata, not following symlinks. Stub version.
+ Copyright (C) 1991-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,14 +25,6 @@
int
__lxstat64 (int vers, const char *file, struct stat64 *buf)
{
- if (vers != _STAT_VER || file == NULL || buf == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- __set_errno (ENOSYS);
- return -1;
+ return __xstat64 (vers, file, buf);
}
hidden_def (__lxstat64)
-stub_warning (__lxstat64)
diff --git a/libc/libidn/ChangeLog b/libc/libidn/ChangeLog
index 1ebe81f7b..46ebd1fa9 100644
--- a/libc/libidn/ChangeLog
+++ b/libc/libidn/ChangeLog
@@ -1,3 +1,7 @@
+2013-08-29 Ondřej Bílka <neleai@seznam.cz>
+
+ * stringprep.c: Fix typos.
+
2013-06-11 Ondřej Bílka <neleai@seznam.cz>
* gunicomp.h: Fix trailing whitespaces.
diff --git a/libc/libidn/stringprep.c b/libc/libidn/stringprep.c
index d109a71fe..72a502e5a 100644
--- a/libc/libidn/stringprep.c
+++ b/libc/libidn/stringprep.c
@@ -563,7 +563,7 @@ stringprep_profile (const char *in,
* @STRINGPREP_CONTAINS_PROHIBITED: String contain code points
* prohibited by the profile.
* @STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with
- * conflicting bidirection category.
+ * conflicting bidirectional category.
* @STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character
* in string not of proper bidirectional category.
* @STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code
diff --git a/libc/libio/Makefile b/libc/libio/Makefile
index 5737b1045..82436bc1c 100644
--- a/libc/libio/Makefile
+++ b/libc/libio/Makefile
@@ -92,7 +92,7 @@ test-srcs = test-freopen
all: # Make this the default target; it will be defined in Rules.
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
routines += oldiofopen oldiofdopen oldiofclose oldiopopen oldpclose \
oldtmpfile oldiofgetpos oldiofgetpos64 oldiofsetpos \
oldiofsetpos64
@@ -187,7 +187,7 @@ generated = tst-fopenloc.mtrace tst-fopenloc.check
aux := fileops genops stdfiles stdio strops
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
aux += oldfileops oldstdfiles
endif
diff --git a/libc/libio/libioP.h b/libc/libio/libioP.h
index ca8500913..bc1c21390 100644
--- a/libc/libio/libioP.h
+++ b/libc/libio/libioP.h
@@ -77,7 +77,7 @@ extern "C" {
* These are all the same, just used differently.
* An _IO_FILE (or FILE) object is allows followed by a pointer to
* a jump table (of pointers to functions). The pointer is accessed
- * with the _IO_JUMPS macro. The jump table has a eccentric format,
+ * with the _IO_JUMPS macro. The jump table has an eccentric format,
* so as to be compatible with the layout of a C++ virtual function table.
* (as implemented by g++). When a pointer to a streambuf object is
* coerced to an (_IO_FILE*), then _IO_JUMPS on the result just
@@ -228,7 +228,7 @@ typedef int (*_IO_doallocate_t) (_IO_FILE *);
There is no correspondence in the ANSI/ISO C++ standard library.
The hooks basically correspond to the Unix system functions
(read, write, close, lseek, and stat) except that a _IO_FILE*
- parameter is used instead of a integer file descriptor; the default
+ parameter is used instead of an integer file descriptor; the default
implementation used for normal files just calls those functions.
The advantage of overriding these functions instead of the higher-level
ones (underflow, overflow etc) is that you can leave all the buffering
diff --git a/libc/locale/categories.def b/libc/locale/categories.def
index 9a89d2d2c..8c2537842 100644
--- a/libc/locale/categories.def
+++ b/libc/locale/categories.def
@@ -133,6 +133,7 @@ DEFINE_CATEGORY
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word)
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string)
DEFINE_ELEMENT (_NL_CTYPE_MAP_TO_NONASCII, "map-to-nonascii", std, word)
+ DEFINE_ELEMENT (_NL_CTYPE_NONASCII_CASE, "nonascii-case", std, word)
), _nl_postload_ctype)
diff --git a/libc/locale/iso-4217.def b/libc/locale/iso-4217.def
index ee0133959..bcc170bfb 100644
--- a/libc/locale/iso-4217.def
+++ b/libc/locale/iso-4217.def
@@ -17,7 +17,7 @@ DEFINE_INT_CURR("AOA") /* Angolan Kwanza */
DEFINE_INT_CURR("ARS") /* Argentine Peso */
DEFINE_INT_CURR("AUD") /* Australian Dollar */
DEFINE_INT_CURR("AWG") /* Aruba Guilder */
-DEFINE_INT_CURR("AZM") /* Azerbaijan Manat */
+DEFINE_INT_CURR("AZN") /* Azerbaijan Manat */
DEFINE_INT_CURR("BAM") /* Bosnian and Herzegovina Convertible Mark */
DEFINE_INT_CURR("BBD") /* Barbados Dollar */
DEFINE_INT_CURR("BDT") /* Bangladesh Taka */
@@ -27,7 +27,7 @@ DEFINE_INT_CURR("BIF") /* Burundi Franc */
DEFINE_INT_CURR("BMD") /* Burmudian Dollar */
DEFINE_INT_CURR("BND") /* Brunei Dollar */
DEFINE_INT_CURR("BOB") /* Bolivian Boliviano */
-DEFINE_INT_CURR("BRL") /* Brazil Cruzeiro */
+DEFINE_INT_CURR("BRL") /* Brazil Real */
DEFINE_INT_CURR("BSD") /* Bahamas Dollar */
DEFINE_INT_CURR("BTN") /* Bhutan Ngultrum */
DEFINE_INT_CURR("BWP") /* Botswana Pula */
@@ -57,7 +57,7 @@ DEFINE_INT_CURR("FJD") /* Fiji Dollar */
DEFINE_INT_CURR("FKP") /* Falkland Islands Pound (Malvinas) */
DEFINE_INT_CURR("GBP") /* British Pound */
DEFINE_INT_CURR("GEL") /* Georgia Lari */
-DEFINE_INT_CURR("GHC") /* Ghana Cedi */
+DEFINE_INT_CURR("GHS") /* Ghana Cedi */
DEFINE_INT_CURR("GIP") /* Gibraltar Pound */
DEFINE_INT_CURR("GMD") /* Gambian Dalasi */
DEFINE_INT_CURR("GNF") /* Guinea Franc */
@@ -70,12 +70,10 @@ DEFINE_INT_CURR("HTG") /* Haiti Gourde */
DEFINE_INT_CURR("HUF") /* Hungarian Forint */
DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */
DEFINE_INT_CURR("ILS") /* Israeli Shekel */
-DEFINE_INT_CURR("IMP") /* Isle of Man Pounds */
DEFINE_INT_CURR("INR") /* Indian Rupee (Bhutan) */
DEFINE_INT_CURR("IQD") /* Iraqi Dinar */
DEFINE_INT_CURR("IRR") /* Iranian Rial */
DEFINE_INT_CURR("ISK") /* Iceland Krona */
-DEFINE_INT_CURR("JEP") /* Jersey Pound */
DEFINE_INT_CURR("JMD") /* Jamaican Dollar */
DEFINE_INT_CURR("JOD") /* Jordanian Dinar */
DEFINE_INT_CURR("JPY") /* Japanese Yen */
@@ -106,11 +104,11 @@ DEFINE_INT_CURR("MOP") /* Macau Pataca */
DEFINE_INT_CURR("MRO") /* Mauritania Ouguiya */
DEFINE_INT_CURR("MTL") /* Maltese Lira */
DEFINE_INT_CURR("MUR") /* Mauritius Rupee */
-DEFINE_INT_CURR("MVR") /* Maldives Rupee */
+DEFINE_INT_CURR("MVR") /* Maldives Rufiyaa */
DEFINE_INT_CURR("MWK") /* Malawi Kwacha */
DEFINE_INT_CURR("MXN") /* Mexican Peso */
DEFINE_INT_CURR("MYR") /* Malaysian Ringgit */
-DEFINE_INT_CURR("MZM") /* Mozambique Metical */
+DEFINE_INT_CURR("MZN") /* Mozambique Metical */
DEFINE_INT_CURR("NAD") /* Namibia Dollar */
DEFINE_INT_CURR("NGN") /* Nigeria Naira */
DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */
@@ -126,7 +124,6 @@ DEFINE_INT_CURR("PKR") /* Pakistan Rupee */
DEFINE_INT_CURR("PLN") /* Polish Zloty */
DEFINE_INT_CURR("PYG") /* Paraguay Guarani */
DEFINE_INT_CURR("QAR") /* Qatar Rial */
-DEFINE_INT_CURR("ROL") /* Romanian Leu */
DEFINE_INT_CURR("RON") /* Romanian New Leu */
DEFINE_INT_CURR("RSD") /* Serbian Dinars */
DEFINE_INT_CURR("RUB") /* Russian Ruble */
@@ -134,16 +131,13 @@ DEFINE_INT_CURR("RWF") /* Rwanda Franc */
DEFINE_INT_CURR("SAR") /* Saudi Arabia Riyal */
DEFINE_INT_CURR("SBD") /* Solomon Islands Dollar */
DEFINE_INT_CURR("SCR") /* Seychelles Rupee */
-DEFINE_INT_CURR("SDD") /* Sudanese Dinars */
+DEFINE_INT_CURR("SDG") /* Sudanese Pound */
DEFINE_INT_CURR("SEK") /* Swedish Krona */
DEFINE_INT_CURR("SGD") /* Singapore Dollar */
DEFINE_INT_CURR("SHP") /* St. Helena Pound */
-DEFINE_INT_CURR("SIT") /* Slovenian Tolar */
-DEFINE_INT_CURR("SKK") /* Slovakian Koruna */
DEFINE_INT_CURR("SLL") /* Sierra Leone Leone */
DEFINE_INT_CURR("SOS") /* Somalia Schilling */
-DEFINE_INT_CURR("SPL") /* Seborga Luigini */
-DEFINE_INT_CURR("SRG") /* Suriname Guilder */
+DEFINE_INT_CURR("SRD") /* Suriname Dollar */
DEFINE_INT_CURR("STD") /* Sao Tome and Principe Dobra */
DEFINE_INT_CURR("SVC") /* El Salvador Colon */
DEFINE_INT_CURR("SYP") /* Syrian Arab Republic Pound */
@@ -155,7 +149,6 @@ DEFINE_INT_CURR("TND") /* Tunisian Dinar */
DEFINE_INT_CURR("TOP") /* Tonga Pa'Anga */
DEFINE_INT_CURR("TRY") /* New Turkish Lira */
DEFINE_INT_CURR("TTD") /* Trinidad and Tobago */
-DEFINE_INT_CURR("TVD") /* Tuvalu Dollars */
DEFINE_INT_CURR("TWD") /* Taiwan, Province of China Dollar */
DEFINE_INT_CURR("TZS") /* United Republic of Tanzania Shilling */
DEFINE_INT_CURR("UAH") /* Ukraine Hryvna */
@@ -163,13 +156,12 @@ DEFINE_INT_CURR("UGX") /* Ugandan Shilling */
DEFINE_INT_CURR("USD") /* United States Dollar */
DEFINE_INT_CURR("UYU") /* Uruguay Peso Uruguayo */
DEFINE_INT_CURR("UZS") /* Uzbekistan Sum */
-DEFINE_INT_CURR("VEB") /* Venezuelan Bolivar */
+DEFINE_INT_CURR("VEF") /* Venezuelan Bolivar Fuerte */
DEFINE_INT_CURR("VND") /* Viet Nam Dong */
DEFINE_INT_CURR("VUV") /* Vanuatu Vatu */
DEFINE_INT_CURR("WST") /* Samoa Tala */
DEFINE_INT_CURR("XAF") /* Central African Franc (United Republic of Cameroon, Central African Republic, Chad, Congo, Gabon) */
DEFINE_INT_CURR("XCD") /* East Caribbean Dollar (Antiqua, Dominica, Grenada, Montserrat, St. Kitts-Nevis-Anguilla, Saint Lucia, Saint Vincent and the Grenadines) */
-DEFINE_INT_CURR("XDR") /* International Monetary Fund */
DEFINE_INT_CURR("XOF") /* West African Franc (Benin, Ivory Coast, Niger, Senegal, Togo, Upper Volta) */
DEFINE_INT_CURR("XPF") /* French polynesia, New Caledonia, Wallis and Futuna Islands */
DEFINE_INT_CURR("YER") /* Yemeni Rial */
diff --git a/libc/locale/programs/ld-collate.c b/libc/locale/programs/ld-collate.c
index 63ac79fc8..df7867d0f 100644
--- a/libc/locale/programs/ld-collate.c
+++ b/libc/locale/programs/ld-collate.c
@@ -2530,7 +2530,7 @@ skip_to (struct linereader *ldfile, struct locale_collate_t *collate,
}
else if (nowtok == tok_else)
{
- lr_error (ldfile, _("%s: more then one 'else'"), "LC_COLLATE");
+ lr_error (ldfile, _("%s: more than one 'else'"), "LC_COLLATE");
}
lr_ignore_rest (ldfile, 0);
diff --git a/libc/locale/programs/linereader.h b/libc/locale/programs/linereader.h
index e0475a2ef..4e4fe9d87 100644
--- a/libc/locale/programs/linereader.h
+++ b/libc/locale/programs/linereader.h
@@ -49,7 +49,7 @@ struct token
struct
{
/* This element is sized on the safe expectation that no single
- character in any character set uses more then 16 bytes. */
+ character in any character set uses more than 16 bytes. */
unsigned char bytes[16];
int nbytes;
} charcode;
diff --git a/libc/localedata/ChangeLog b/libc/localedata/ChangeLog
index 3bc2fcfe9..039610416 100644
--- a/libc/localedata/ChangeLog
+++ b/libc/localedata/ChangeLog
@@ -1,3 +1,174 @@
+2013-09-04 Chris Leonard <cjl@sugarlabs,.org>
+
+ [BZ #15923]
+
+ * locales/ar_SD: Update iso-1427.def and related occurrences.
+ * locales/az_AZ: Likewise.
+ * locales/dv_MV: Likewise.
+ * locales/es_VE: Likewise.
+
+2013-09-04 Jakub Bogusz <qboosh@pld-linux.org>
+
+ * locales/am_ET: Add country_car field to LC_ADDRESS.
+ * locales/an_ES: Likewise.
+ * locales/ar_AE: Likewise.
+ * locales/ar_BH: Likewise.
+ * locales/ar_DZ: Likewise.
+ * locales/ar_EG: Likewise.
+ * locales/ar_IN: Likewise.
+ * locales/ar_IQ: Likewise.
+ * locales/ar_JO: Likewise.
+ * locales/ar_KW: Likewise.
+ * locales/ar_LB: Likewise.
+ * locales/ar_LY: Likewise.
+ * locales/ar_MA: Likewise.
+ * locales/ar_QA: Likewise.
+ * locales/ar_SA: Likewise.
+ * locales/ar_SD: Likewise.
+ * locales/ar_SY: Likewise.
+ * locales/ar_TN: Likewise.
+ * locales/az_AZ: Likewise.
+ * locales/be_BY: Likewise.
+ * locales/bn_BD: Likewise.
+ * locales/bn_IN: Likewise.
+ * locales/br_FR: Likewise.
+ * locales/bs_BA: Likewise.
+ * locales/ca_ES: Likewise.
+ * locales/csb_PL: Likewise.
+ * locales/da_DK: Likewise.
+ * locales/de_AT: Likewise.
+ * locales/de_BE: Likewise.
+ * locales/de_CH: Likewise.
+ * locales/de_LU: Likewise.
+ * locales/el_GR: Likewise.
+ * locales/en_AU: Likewise.
+ * locales/en_BW: Likewise.
+ * locales/en_CA: Likewise.
+ * locales/en_DK: Likewise.
+ * locales/en_GB: Likewise.
+ * locales/en_HK: Likewise.
+ * locales/en_IE: Likewise.
+ * locales/en_IN: Likewise.
+ * locales/en_NZ: Likewise.
+ * locales/en_PH: Likewise.
+ * locales/en_SG: Likewise.
+ * locales/en_ZW: Likewise.
+ * locales/es_AR: Likewise.
+ * locales/es_BO: Likewise.
+ * locales/es_CL: Likewise.
+ * locales/es_CO: Likewise.
+ * locales/es_DO: Likewise.
+ * locales/es_EC: Likewise.
+ * locales/es_ES: Likewise.
+ * locales/es_GT: Likewise.
+ * locales/es_MX: Likewise.
+ * locales/es_NI: Likewise.
+ * locales/es_PA: Likewise.
+ * locales/es_PE: Likewise.
+ * locales/es_PY: Likewise.
+ * locales/es_SV: Likewise.
+ * locales/es_UY: Likewise.
+ * locales/es_VE: Likewise.
+ * locales/eu_ES: Likewise.
+ * locales/fo_FO: Likewise.
+ * locales/fr_BE: Likewise.
+ * locales/fr_CA: Likewise.
+ * locales/fr_CH: Likewise.
+ * locales/fr_FR: Likewise.
+ * locales/fr_LU: Likewise.
+ * locales/fur_IT: Likewise.
+ * locales/fy_DE: Likewise.
+ * locales/ga_IE: Likewise.
+ * locales/gez_ER: Likewise.
+ * locales/gez_ET: Likewise.
+ * locales/gl_ES: Likewise.
+ * locales/gu_IN: Likewise.
+ * locales/gv_GB: Likewise.
+ * locales/he_IL: Likewise.
+ * locales/hi_IN: Likewise.
+ * locales/hr_HR: Likewise.
+ * locales/hu_HU: Likewise.
+ * locales/id_ID: Likewise.
+ * locales/ik_CA: Likewise.
+ * locales/is_IS: Likewise.
+ * locales/it_CH: Likewise.
+ * locales/it_IT: Likewise.
+ * locales/iu_CA: Likewise.
+ * locales/ja_JP: Likewise.
+ * locales/ka_GE: Likewise.
+ * locales/kk_KZ: Likewise.
+ * locales/kn_IN: Likewise.
+ * locales/ko_KR: Likewise.
+ * locales/ku_TR: Likewise.
+ * locales/kw_GB: Likewise.
+ * locales/ky_KG: Likewise.
+ * locales/lg_UG: Likewise.
+ * locales/lt_LT: Likewise.
+ * locales/lv_LV: Likewise.
+ * locales/mi_NZ: Likewise.
+ * locales/ml_IN: Likewise.
+ * locales/mr_IN: Likewise.
+ * locales/ms_MY: Likewise.
+ * locales/mt_MT: Likewise.
+ * locales/nb_NO: Likewise.
+ * locales/ne_NP: Likewise.
+ * locales/nl_BE: Likewise.
+ * locales/nn_NO: Likewise.
+ * locales/nr_ZA: Likewise.
+ * locales/nso_ZA: Likewise.
+ * locales/om_ET: Likewise.
+ * locales/om_KE: Likewise.
+ * locales/pa_IN: Likewise.
+ * locales/pl_PL: Likewise.
+ * locales/pt_BR: Likewise.
+ * locales/pt_PT: Likewise.
+ * locales/ru_RU: Likewise.
+ * locales/ru_UA: Likewise.
+ * locales/sa_IN: Likewise.
+ * locales/se_NO: Likewise.
+ * locales/sk_SK: Likewise.
+ * locales/sl_SI: Likewise.
+ * locales/so_ET: Likewise.
+ * locales/so_KE: Likewise.
+ * locales/so_SO: Likewise.
+ * locales/sq_AL: Likewise.
+ * locales/ss_ZA: Likewise.
+ * locales/sv_SE: Likewise.
+ * locales/ta_IN: Likewise.
+ * locales/te_IN: Likewise.
+ * locales/tg_TJ: Likewise.
+ * locales/th_TH: Likewise.
+ * locales/ti_ET: Likewise.
+ * locales/tl_PH: Likewise.
+ * locales/tn_ZA: Likewise.
+ * locales/ts_ZA: Likewise.
+ * locales/tt_RU: Likewise.
+ * locales/tt_RU@iqtelif: Likewise.
+ * locales/ur_PK: Likewise.
+ * locales/uz_UZ: Likewise.
+ * locales/ve_ZA: Likewise.
+ * locales/vi_VN: Likewise.
+ * locales/wal_ET: Likewise.
+ * locales/wo_SN: Likewise.
+ * locales/zh_SG: Likewise.
+
+2013-09-03 Chris Leonard <cjl@sugarlabs.org>
+
+ * locales/ayc_PE: Add FSF statement to ayc_PE locale.
+
+ [BZ#15886]
+ * locales/ht_HT: 1.1 revision of ht_HT locale.
+
+ [BZ#15887]
+ * locales/quz_PE: New locale for quz_PE.
+ * SUPPORTED: Add quz_PE.
+
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * tests-mbwc/dat_wcsncat.c: Fix typos.
+ * tests/test6.c: Likewise.
+ * tst-digits.c: Likewise.
+
2013-06-13 Johan Heikkila <johan.heikkila@gmail.com>
[BZ#15432]
diff --git a/libc/localedata/SUPPORTED b/libc/localedata/SUPPORTED
index e2439302c..41a7427df 100644
--- a/libc/localedata/SUPPORTED
+++ b/libc/localedata/SUPPORTED
@@ -344,6 +344,7 @@ pt_BR/ISO-8859-1 \
pt_PT.UTF-8/UTF-8 \
pt_PT/ISO-8859-1 \
pt_PT@euro/ISO-8859-15 \
+quz_PE/UTF-8 \
ro_RO.UTF-8/UTF-8 \
ro_RO/ISO-8859-2 \
ru_RU.KOI8-R/KOI8-R \
diff --git a/libc/localedata/locales/aa_ET b/libc/localedata/locales/aa_ET
index b0a1d8d3c..8bf7c375e 100644
--- a/libc/localedata/locales/aa_ET
+++ b/libc/localedata/locales/aa_ET
@@ -109,7 +109,8 @@ country_post "<U0045><U0054><U0048>"
country_ab2 "<U0045><U0054>"
country_ab3 "<U0045><U0054><U0048>"
country_num 231 % 210 found in at least one ISO 3166 doc
-% country_car unknown
+% ETH
+country_car "<U0045><U0054><U0048>"
% country_isbn unknown, Need ISO 2108
lang_name "<U0051><U0061><U0066><U0061><U0072>"
lang_ab "<U0061><U0061>"
diff --git a/libc/localedata/locales/am_ET b/libc/localedata/locales/am_ET
index 5aa2ca110..717962242 100644
--- a/libc/localedata/locales/am_ET
+++ b/libc/localedata/locales/am_ET
@@ -1444,7 +1444,8 @@ country_post "<U0045><U0054><U0048>"
country_ab2 "<U0045><U0054>"
country_ab3 "<U0045><U0054><U0048>"
country_num 231 % 210 found in at least one ISO 3166 doc
-% country_car unknown
+% ETH
+country_car "<U0045><U0054><U0048>"
% country_isbn unknown, Need ISO 2108
lang_name "<U12A0><U121B><U122D><U129B>"
lang_ab "<U0061><U006D>"
diff --git a/libc/localedata/locales/an_ES b/libc/localedata/locales/an_ES
index 2a50c12ef..e672ce904 100644
--- a/libc/localedata/locales/an_ES
+++ b/libc/localedata/locales/an_ES
@@ -124,5 +124,14 @@ copy "es_ES"
END LC_NAME
LC_ADDRESS
-copy "es_ES"
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U0045><U0053>"
+country_ab3 "<U0045><U0053><U0050>"
+country_num 724
+% E
+country_car "<U0045>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_AE b/libc/localedata/locales/ar_AE
index e787bf342..368f8803f 100644
--- a/libc/localedata/locales/ar_AE
+++ b/libc/localedata/locales/ar_AE
@@ -181,6 +181,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0041><U0045>"
country_ab3 "<U0041><U0052><U0045>"
country_num 784
+% UAE
+country_car "<U0055><U0041><U0045>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_BH b/libc/localedata/locales/ar_BH
index 4839d5fa4..41e92655b 100644
--- a/libc/localedata/locales/ar_BH
+++ b/libc/localedata/locales/ar_BH
@@ -185,7 +185,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0042><U0048>"
country_ab3 "<U0042><U0048><U0052>"
country_num 048
-
+% BRN
+country_car "<U0042><U0052><U004E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_DZ b/libc/localedata/locales/ar_DZ
index 1e2838e84..311dd21f6 100644
--- a/libc/localedata/locales/ar_DZ
+++ b/libc/localedata/locales/ar_DZ
@@ -184,7 +184,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0044><U005A>"
country_ab3 "<U0044><U005A><U0041>"
country_num 012
-
+% DZ
+country_car "<U0044><U005A>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_EG b/libc/localedata/locales/ar_EG
index ec0e9e297..844254d5f 100644
--- a/libc/localedata/locales/ar_EG
+++ b/libc/localedata/locales/ar_EG
@@ -192,6 +192,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0045><U0047>"
country_ab3 "<U0045><U0047><U0059>"
country_num 818
+% ET
+country_car "<U0045><U0054>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_IN b/libc/localedata/locales/ar_IN
index 821cb3136..1c4cdfb3e 100644
--- a/libc/localedata/locales/ar_IN
+++ b/libc/localedata/locales/ar_IN
@@ -162,6 +162,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_IQ b/libc/localedata/locales/ar_IQ
index fc4a9fce4..8eea49b06 100644
--- a/libc/localedata/locales/ar_IQ
+++ b/libc/localedata/locales/ar_IQ
@@ -184,6 +184,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0049><U0051>"
country_ab3 "<U0049><U0052><U0051>"
country_num 368
+% IRQ
+country_car "<U0049><U0052><U0051>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_JO b/libc/localedata/locales/ar_JO
index 8102187ee..7d094efed 100644
--- a/libc/localedata/locales/ar_JO
+++ b/libc/localedata/locales/ar_JO
@@ -202,6 +202,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U004A><U004F>"
country_ab3 "<U004A><U004F><U0052>"
country_num 400
+% HKJ
+country_car "<U0048><U004B><U004A>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_KW b/libc/localedata/locales/ar_KW
index e2d1735a8..05a4c7daa 100644
--- a/libc/localedata/locales/ar_KW
+++ b/libc/localedata/locales/ar_KW
@@ -184,6 +184,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U004B><U0057>"
country_ab3 "<U004B><U0057><U0054>"
country_num 414
+% KWT
+country_car "<U004B><U0057><U0054>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_LB b/libc/localedata/locales/ar_LB
index cb0b7d7b0..9144b7261 100644
--- a/libc/localedata/locales/ar_LB
+++ b/libc/localedata/locales/ar_LB
@@ -201,6 +201,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U004C><U0042>"
country_ab3 "<U004C><U0042><U004E>"
country_num 422
+% RL
+country_car "<U0052><U004C>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_LY b/libc/localedata/locales/ar_LY
index 5ab5838df..719917948 100644
--- a/libc/localedata/locales/ar_LY
+++ b/libc/localedata/locales/ar_LY
@@ -184,6 +184,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U004C><U0059>"
country_ab3 "<U004C><U0042><U0059>"
country_num 434
+% LAR
+country_car "<U004C><U0041><U0052>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_MA b/libc/localedata/locales/ar_MA
index 744b8a64c..f389eba55 100644
--- a/libc/localedata/locales/ar_MA
+++ b/libc/localedata/locales/ar_MA
@@ -184,6 +184,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U004D><U0041>"
country_ab3 "<U004D><U0041><U0052>"
country_num 504
+% MA
+country_car "<U004D><U0041>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_QA b/libc/localedata/locales/ar_QA
index 979325652..e01dbcc23 100644
--- a/libc/localedata/locales/ar_QA
+++ b/libc/localedata/locales/ar_QA
@@ -184,6 +184,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0051><U0041>"
country_ab3 "<U0051><U0041><U0054>"
country_num 634
+% Q
+country_car "<U0051>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_SA b/libc/localedata/locales/ar_SA
index e9a3aa4f5..8660758c9 100644
--- a/libc/localedata/locales/ar_SA
+++ b/libc/localedata/locales/ar_SA
@@ -386,4 +386,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0053><U0041>"
country_ab3 "<U0053><U0041><U0055>"
country_num 682
+% KSA
+country_car "<U004B><U0053><U0041>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_SD b/libc/localedata/locales/ar_SD
index c4a2f866e..f68033d10 100644
--- a/libc/localedata/locales/ar_SD
+++ b/libc/localedata/locales/ar_SD
@@ -47,7 +47,8 @@ LC_MONETARY
% These are generated based on XML base Locale definition file
% for IBM Class for Unicode/Java
%
-int_curr_symbol "<U0053><U0044><U0044><U0020>"
+% SDG
+int_curr_symbol "<U0053><U0044><U0047><U0020>"
currency_symbol "<U062C><U002E><U0633><U002E>"
mon_decimal_point "<U002E>"
mon_thousands_sep "<U002C>"
@@ -184,6 +185,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0053><U0044>"
country_ab3 "<U0053><U0044><U004E>"
country_num 736
+% SUD
+country_car "<U0053><U0055><U0044>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_SY b/libc/localedata/locales/ar_SY
index 8bc02e469..9530f1842 100644
--- a/libc/localedata/locales/ar_SY
+++ b/libc/localedata/locales/ar_SY
@@ -201,6 +201,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0053><U0059>"
country_ab3 "<U0053><U0059><U0052>"
country_num 760
+% SYR
+country_car "<U0053><U0059><U0052>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ar_TN b/libc/localedata/locales/ar_TN
index f2ffc4e2a..7103272f9 100644
--- a/libc/localedata/locales/ar_TN
+++ b/libc/localedata/locales/ar_TN
@@ -184,6 +184,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0054><U004E>"
country_ab3 "<U0054><U0055><U004E>"
country_num 788
+% TN
+country_car "<U0054><U004E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/ayc_PE b/libc/localedata/locales/ayc_PE
index edf8a145d..2cdc92e15 100644
--- a/libc/localedata/locales/ayc_PE
+++ b/libc/localedata/locales/ayc_PE
@@ -1,27 +1,11 @@
comment_char %
escape_char /
-% Charset: UTF-8
-% WARNING: This file has been autogenerated by the Locale Helper application
-% Check it carefully before using it in production.
-LC_IDENTIFICATION
-title "Aymara (ayc) locale for Peru"
-source "runasimipi.org"
-address ""
-contact ""
-email "libc-alpha@sourceware.org"
-tel ""
-fax ""
-language "Aymara"
-territory "Peru"
-revision "1.0"
-date "2011-11-13"
-%
-%
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Aymara, Southern (ayc) language locale for Peru
%
-% Charset: ISO-8859-1
+% Charset: UTF-8
%
% Aymara terms provided by Edgar Quispe Chambi <equispe7@gmail.com> and
% Amos Batto <amosbatto@yahoo.com>
@@ -39,11 +23,29 @@ date "2011-11-13"
% con los códigos ISO-639 disponibles en la actualidad y su disposición a trabajar con
% todos los interesados ​​en mejorar la representación de todas las lenguas andinas.
%
+% build with: localedef -f UTF-8 -i ayc_PE ayc_PE
%
-% build with: localedef -f ISO-8859-1 -i ayc_PE ayc_PE
+% This file is a part of GNU C Library (glibc) and contains locale data. The
+% Free Software Foundation does not claim any copyright interest in the
+% locale data contained in this file. The foregoing does not affect the
+% license of GNU C Library (glibc) as a whole. It does not exempt you from the
+% conditions of the license if your use would otherwise be governed by
+% that license.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
+
+LC_IDENTIFICATION
+title "Aymara (ayc) locale for Peru"
+source "runasimipi.org"
+address ""
+contact ""
+email "libc-alpha@sourceware.org"
+tel ""
+fax ""
+language "Aymara"
+territory "Peru"
+revision "1.1"
+date "2011-11-13"
%
category "ayc_PE:2011";LC_IDENTIFICATION
category "ayc_PE:2011";LC_CTYPE
@@ -152,6 +154,9 @@ t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U005A><U0020><U0025><U0059>"
+week 7;19971130;7
+first_weekday 1
+first_workday 2
END LC_TIME
LC_NUMERIC
@@ -185,6 +190,7 @@ LC_NAME
copy "es_PE"
END LC_NAME
+% TO DO - adjust for Aymara specific lang-info for Peru
LC_ADDRESS
copy "es_PE"
END LC_ADDRESS
diff --git a/libc/localedata/locales/az_AZ b/libc/localedata/locales/az_AZ
index 24e377934..0df07b931 100644
--- a/libc/localedata/locales/az_AZ
+++ b/libc/localedata/locales/az_AZ
@@ -207,7 +207,8 @@ noexpr "<U005E><U005B><U0059><U0079><U004E><U006E><U005D><U002E><U002A>"
END LC_MESSAGES
LC_MONETARY
-int_curr_symbol "<U0041><U005A><U004D><U0020>"
+% AZN
+int_curr_symbol "<U0041><U005A><U004E><U0020>"
currency_symbol "<U006D><U0061><U006E><U002E>"
mon_decimal_point "<U002E>"
mon_thousands_sep "<U0020>"
@@ -291,6 +292,9 @@ postal_fmt "???"
country_ab2 "<U0041><U005A>"
country_ab3 "<U0041><U005A><U0045>"
country_num 031
+% AZ
+country_car "<U0041><U005A>"
+
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/be_BY b/libc/localedata/locales/be_BY
index 111b3b12b..f5672ab29 100644
--- a/libc/localedata/locales/be_BY
+++ b/libc/localedata/locales/be_BY
@@ -180,4 +180,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0042><U0059>"
country_ab3 "<U0042><U004C><U0052>"
country_num 112
+% BY
+country_car "<U0042><U0059>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/bn_BD b/libc/localedata/locales/bn_BD
index 9dbc40578..b22657866 100644
--- a/libc/localedata/locales/bn_BD
+++ b/libc/localedata/locales/bn_BD
@@ -186,7 +186,8 @@ lang_name "<U09ac><U09be><U0982><U09b2><U09be>"
% todo
%country_post ""
country_num 050
-%country_car ""
+% BD
+country_car "<U0042><U0044>"
%country_isbn ""
%lang_term ""
%lang_lib ""
diff --git a/libc/localedata/locales/bn_IN b/libc/localedata/locales/bn_IN
index 6cecf294e..fbff935d3 100644
--- a/libc/localedata/locales/bn_IN
+++ b/libc/localedata/locales/bn_IN
@@ -181,6 +181,8 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/br_FR b/libc/localedata/locales/br_FR
index 3f477fbb0..eaba116e0 100644
--- a/libc/localedata/locales/br_FR
+++ b/libc/localedata/locales/br_FR
@@ -160,7 +160,16 @@ END LC_NAME
LC_ADDRESS
% FIXME
-copy "fr_FR"
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U0046><U0052>"
+country_ab3 "<U0046><U0052><U0041>"
+country_num 250
+% F
+country_car "<U0046>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/bs_BA b/libc/localedata/locales/bs_BA
index fa5877e8b..cf59ccb2f 100644
--- a/libc/localedata/locales/bs_BA
+++ b/libc/localedata/locales/bs_BA
@@ -234,6 +234,9 @@ postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
country_ab2 "<U0042><U0041>"
country_ab3 "<U0042><U0049><U0048>"
country_num 070
+% BIH
+country_car "<U0042><U0049><U0048>"
+
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/ca_ES b/libc/localedata/locales/ca_ES
index 35c193667..0086b4222 100644
--- a/libc/localedata/locales/ca_ES
+++ b/libc/localedata/locales/ca_ES
@@ -174,4 +174,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0045><U0053>"
country_ab3 "<U0045><U0053><U0050>"
country_num 724
+% E
+country_car "<U0045>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/csb_PL b/libc/localedata/locales/csb_PL
index 93c9ae2eb..70daf3a88 100644
--- a/libc/localedata/locales/csb_PL
+++ b/libc/localedata/locales/csb_PL
@@ -206,5 +206,14 @@ copy "pl_PL"
END LC_NAME
LC_ADDRESS
-copy "pl_PL"
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U0050><U004C>"
+country_ab3 "<U0050><U004F><U004C>"
+country_num 616
+% PL
+country_car "<U0050><U004C>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/da_DK b/libc/localedata/locales/da_DK
index c4b451db9..211abcd85 100644
--- a/libc/localedata/locales/da_DK
+++ b/libc/localedata/locales/da_DK
@@ -252,4 +252,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0044><U004B>"
country_ab3 "<U0044><U004E><U004B>"
country_num 208
+% DK
+country_car "<U0044><U004B>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/de_AT b/libc/localedata/locales/de_AT
index c36913bd9..c450dafc7 100644
--- a/libc/localedata/locales/de_AT
+++ b/libc/localedata/locales/de_AT
@@ -155,4 +155,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0041><U0054>"
country_ab3 "<U0041><U0055><U0054>"
country_num 040
+% A
+country_car "<U0041>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/de_BE b/libc/localedata/locales/de_BE
index f313e544b..5368fd42f 100644
--- a/libc/localedata/locales/de_BE
+++ b/libc/localedata/locales/de_BE
@@ -149,4 +149,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0042><U0045>"
country_ab3 "<U0042><U0045><U004C>"
country_num 056
+% B
+country_car "<U0042>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/de_CH b/libc/localedata/locales/de_CH
index a4cca885b..b26d79e28 100644
--- a/libc/localedata/locales/de_CH
+++ b/libc/localedata/locales/de_CH
@@ -158,4 +158,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0043><U0048>"
country_ab3 "<U0043><U0048><U0045>"
country_num 756
+% CH
+country_car "<U0043><U0048>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/de_LU b/libc/localedata/locales/de_LU
index f398ddc04..e11f6adfc 100644
--- a/libc/localedata/locales/de_LU
+++ b/libc/localedata/locales/de_LU
@@ -155,4 +155,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004C><U0055>"
country_ab3 "<U004C><U0055><U0058>"
country_num 442
+% L
+country_car "<U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/dv_MV b/libc/localedata/locales/dv_MV
index 064da132a..91ca8b12a 100644
--- a/libc/localedata/locales/dv_MV
+++ b/libc/localedata/locales/dv_MV
@@ -55,7 +55,7 @@ copy "en_DK"
END LC_COLLATE
LC_MONETARY
-% it is meant to be MVR, could you see if it is correct please
+% MVR
int_curr_symbol "<U004D><U0056><U0052><U0020>"
currency_symbol "<U0783><U002E>"
mon_decimal_point "<U002E>"
diff --git a/libc/localedata/locales/el_GR b/libc/localedata/locales/el_GR
index e4d61d6df..edc8a6403 100644
--- a/libc/localedata/locales/el_GR
+++ b/libc/localedata/locales/el_GR
@@ -176,4 +176,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0047><U0052>"
country_ab3 "<U0047><U0052><U0043>"
country_num 300
+% GR
+country_car "<U0047><U0052>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_AU b/libc/localedata/locales/en_AU
index 39aa7e25c..96e6fec19 100644
--- a/libc/localedata/locales/en_AU
+++ b/libc/localedata/locales/en_AU
@@ -157,4 +157,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0041><U0055>"
country_ab3 "<U0041><U0055><U0053>"
country_num 036
+% AUS
+country_car "<U0041><U0055><U0053>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_BW b/libc/localedata/locales/en_BW
index bb8102fee..02b1334ab 100644
--- a/libc/localedata/locales/en_BW
+++ b/libc/localedata/locales/en_BW
@@ -114,4 +114,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0042><U0057>"
country_ab3 "<U0042><U0057><U0041>"
country_num 072
+% RB
+country_car "<U0052><U0042>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_CA b/libc/localedata/locales/en_CA
index 52e9e3203..a4c0edaaa 100644
--- a/libc/localedata/locales/en_CA
+++ b/libc/localedata/locales/en_CA
@@ -179,6 +179,8 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0043><U0041>"
country_ab3 "<U0043><U0041><U004E>"
country_num 124
+% CDN
+country_car "<U0043><U0044><U004E>"
lang_name "<U0045><U006E><U0067><U006C><U0069><U0073><U0068>"
lang_ab "<U0065><U006E>"
lang_term "<U0065><U006E><U0067>"
diff --git a/libc/localedata/locales/en_DK b/libc/localedata/locales/en_DK
index 3ec517055..891331d23 100644
--- a/libc/localedata/locales/en_DK
+++ b/libc/localedata/locales/en_DK
@@ -158,4 +158,6 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0044><U004B>"
country_ab3 "<U0044><U004E><U004B>"
country_num 208
+% DK
+country_car "<U0044><U004B>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_GB b/libc/localedata/locales/en_GB
index a80a334a6..e48aa033a 100644
--- a/libc/localedata/locales/en_GB
+++ b/libc/localedata/locales/en_GB
@@ -161,4 +161,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0047><U0042>"
country_ab3 "<U0047><U0042><U0052>"
country_num 826
+% GB
+country_car "<U0047><U0042>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_HK b/libc/localedata/locales/en_HK
index 7f00765a1..4065c9c24 100644
--- a/libc/localedata/locales/en_HK
+++ b/libc/localedata/locales/en_HK
@@ -196,6 +196,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U0048><U004B>"
country_ab3 "<U0048><U004B><U0047>"
country_num 344
+% HK
+country_car "<U0048><U004B>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_IE b/libc/localedata/locales/en_IE
index 5b544754d..a76790733 100644
--- a/libc/localedata/locales/en_IE
+++ b/libc/localedata/locales/en_IE
@@ -155,4 +155,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0049><U0045>"
country_ab3 "<U0049><U0052><U004C>"
country_num 372
+% IRL
+country_car "<U0049><U0052><U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_IN b/libc/localedata/locales/en_IN
index d5f09f1b2..45ddaf4c1 100644
--- a/libc/localedata/locales/en_IN
+++ b/libc/localedata/locales/en_IN
@@ -191,6 +191,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_NZ b/libc/localedata/locales/en_NZ
index 815134f71..d85042377 100644
--- a/libc/localedata/locales/en_NZ
+++ b/libc/localedata/locales/en_NZ
@@ -156,4 +156,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004E><U005A>"
country_ab3 "<U004E><U005A><U004C>"
country_num 554
+% NZ
+country_car "<U004E><U005A>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_PH b/libc/localedata/locales/en_PH
index 9f78c1faa..04fb3a036 100644
--- a/libc/localedata/locales/en_PH
+++ b/libc/localedata/locales/en_PH
@@ -192,6 +192,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U0049><U0044>"
country_ab3 "<U0049><U0044><U004E>"
country_num 360
+% RP
+country_car "<U0052><U0050>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_SG b/libc/localedata/locales/en_SG
index 71ae52b26..15a668a83 100644
--- a/libc/localedata/locales/en_SG
+++ b/libc/localedata/locales/en_SG
@@ -195,6 +195,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U0053><U0047>"
country_ab3 "<U0053><U0047><U0050>"
country_num 702
+% SGP
+country_car "<U0053><U0047><U0050>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/en_ZW b/libc/localedata/locales/en_ZW
index 710c42ea0..838a55da9 100644
--- a/libc/localedata/locales/en_ZW
+++ b/libc/localedata/locales/en_ZW
@@ -113,4 +113,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U005A><U0057>"
country_ab3 "<U005A><U0057><U0045>"
country_num 716
+% ZW
+country_car "<U005A><U0057>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_AR b/libc/localedata/locales/es_AR
index 27636e708..e995c61f5 100644
--- a/libc/localedata/locales/es_AR
+++ b/libc/localedata/locales/es_AR
@@ -156,4 +156,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0041><U0052>"
country_ab3 "<U0041><U0052><U0047>"
country_num 032
+% RA
+country_car "<U0052><U0041>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_BO b/libc/localedata/locales/es_BO
index 69643115f..1cc15af2b 100644
--- a/libc/localedata/locales/es_BO
+++ b/libc/localedata/locales/es_BO
@@ -154,4 +154,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0042><U004F>"
country_ab3 "<U0042><U004F><U004C>"
country_num 068
+% BOL
+country_car "<U0042><U004F><U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_CL b/libc/localedata/locales/es_CL
index fe5b6d95e..a2ca00653 100644
--- a/libc/localedata/locales/es_CL
+++ b/libc/localedata/locales/es_CL
@@ -152,4 +152,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0043><U004C>"
country_ab3 "<U0043><U0048><U004C>"
country_num 152
+% RCH
+country_car "<U0052><U0043><U0048>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_CO b/libc/localedata/locales/es_CO
index 5db5d6dcf..37599a7a1 100644
--- a/libc/localedata/locales/es_CO
+++ b/libc/localedata/locales/es_CO
@@ -155,4 +155,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0043><U004F>"
country_ab3 "<U0043><U004F><U004C>"
country_num 170
+% CO
+country_car "<U0043><U004F>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_DO b/libc/localedata/locales/es_DO
index 4753ecfdd..95afeb9ea 100644
--- a/libc/localedata/locales/es_DO
+++ b/libc/localedata/locales/es_DO
@@ -156,4 +156,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0044><U004F>"
country_ab3 "<U0044><U004F><U004D>"
country_num 214
+% DOM
+country_car "<U0044><U004F><U004D>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_EC b/libc/localedata/locales/es_EC
index 480f6ef78..c9cb51e0f 100644
--- a/libc/localedata/locales/es_EC
+++ b/libc/localedata/locales/es_EC
@@ -154,4 +154,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0045><U0043>"
country_ab3 "<U0045><U0043><U0055>"
country_num 218
+% EC
+country_car "<U0045><U0043>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_ES b/libc/localedata/locales/es_ES
index 44c17a632..b8d4d8825 100644
--- a/libc/localedata/locales/es_ES
+++ b/libc/localedata/locales/es_ES
@@ -168,4 +168,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0045><U0053>"
country_ab3 "<U0045><U0053><U0050>"
country_num 724
+% E
+country_car "<U0045>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_GT b/libc/localedata/locales/es_GT
index 0889d44c4..6c3ae10ca 100644
--- a/libc/localedata/locales/es_GT
+++ b/libc/localedata/locales/es_GT
@@ -153,4 +153,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0047><U0054>"
country_ab3 "<U0047><U0054><U004D>"
country_num 320
+% GCA
+country_car "<U0047><U0043><U0041>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_MX b/libc/localedata/locales/es_MX
index a201f0bbb..0fa1dc3d2 100644
--- a/libc/localedata/locales/es_MX
+++ b/libc/localedata/locales/es_MX
@@ -153,4 +153,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004D><U0058>"
country_ab3 "<U004D><U0045><U0058>"
country_num 484
+% MEX
+country_car "<U004D><U0045><U0058>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_NI b/libc/localedata/locales/es_NI
index 384ebaa07..52845f8fc 100644
--- a/libc/localedata/locales/es_NI
+++ b/libc/localedata/locales/es_NI
@@ -147,4 +147,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004E><U0049>"
country_ab3 "<U004E><U0049><U0043>"
country_num 558
+% NIC
+country_car "<U004E><U0049><U0043>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_PA b/libc/localedata/locales/es_PA
index 7f22166f3..c8c5d2375 100644
--- a/libc/localedata/locales/es_PA
+++ b/libc/localedata/locales/es_PA
@@ -153,4 +153,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0050><U0041>"
country_ab3 "<U0050><U0041><U004E>"
country_num 591
+% PA
+country_car "<U0050><U0041>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_PE b/libc/localedata/locales/es_PE
index da1a64036..75c59d1a6 100644
--- a/libc/localedata/locales/es_PE
+++ b/libc/localedata/locales/es_PE
@@ -154,4 +154,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0050><U0045>"
country_ab3 "<U0050><U0045><U0052>"
country_num 604
+% PE
+country_car "<U0050><U0045>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_PY b/libc/localedata/locales/es_PY
index ce226bad7..7bb5b35d0 100644
--- a/libc/localedata/locales/es_PY
+++ b/libc/localedata/locales/es_PY
@@ -153,4 +153,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0050><U0059>"
country_ab3 "<U0050><U0052><U0059>"
country_num 600
+% PY
+country_car "<U0050><U0059>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_SV b/libc/localedata/locales/es_SV
index fa5e5805c..44c31a8ee 100644
--- a/libc/localedata/locales/es_SV
+++ b/libc/localedata/locales/es_SV
@@ -154,4 +154,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0053><U0056>"
country_ab3 "<U0053><U004C><U0056>"
country_num 222
+% ES
+country_car "<U0045><U0053>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_UY b/libc/localedata/locales/es_UY
index cbb7d5a86..357b1dcc3 100644
--- a/libc/localedata/locales/es_UY
+++ b/libc/localedata/locales/es_UY
@@ -153,4 +153,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0055><U0059>"
country_ab3 "<U0055><U0052><U0059>"
country_num 858
+% UY
+country_car "<U0055><U0059>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/es_VE b/libc/localedata/locales/es_VE
index 1ec2dff6a..f1fe9f500 100644
--- a/libc/localedata/locales/es_VE
+++ b/libc/localedata/locales/es_VE
@@ -60,7 +60,8 @@ copy "es_ES"
END LC_MESSAGES
LC_MONETARY
-int_curr_symbol "<U0056><U0045><U0042><U0020>"
+% VEF
+int_curr_symbol "<U0056><U0045><U0046><U0020>"
currency_symbol "<U0042><U0073><U002E>"
mon_decimal_point "<U002C>"
mon_thousands_sep "<U002E>"
@@ -152,4 +153,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0056><U0045>"
country_ab3 "<U0056><U0045><U004E>"
country_num 862
+% YV
+country_car "<U0059><U0056>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/eu_ES b/libc/localedata/locales/eu_ES
index c65f167d1..4b8cbddc9 100644
--- a/libc/localedata/locales/eu_ES
+++ b/libc/localedata/locales/eu_ES
@@ -167,4 +167,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0045><U0053>"
country_ab3 "<U0045><U0053><U0050>"
country_num 724
+% E
+country_car "<U0045>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/fo_FO b/libc/localedata/locales/fo_FO
index c19c2ea49..2985119a1 100644
--- a/libc/localedata/locales/fo_FO
+++ b/libc/localedata/locales/fo_FO
@@ -142,4 +142,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0046><U004F>"
country_ab3 "<U0046><U0052><U004F>"
country_num 234
+% FO
+country_car "<U0046><U004F>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/fr_BE b/libc/localedata/locales/fr_BE
index 43beac59c..610b645ee 100644
--- a/libc/localedata/locales/fr_BE
+++ b/libc/localedata/locales/fr_BE
@@ -159,4 +159,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0042><U0045>"
country_ab3 "<U0042><U0045><U004C>"
country_num 056
+% B
+country_car "<U0042>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/fr_CA b/libc/localedata/locales/fr_CA
index 21eb6701a..56839b893 100644
--- a/libc/localedata/locales/fr_CA
+++ b/libc/localedata/locales/fr_CA
@@ -146,6 +146,8 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0043><U0041>"
country_ab3 "<U0043><U0041><U004E>"
country_num 124
+% CDN
+country_car "<U0043><U0044><U004E>"
lang_name "<U0046><U0072><U0061><U006E><U00E7><U0061><U0069><U0073>"
lang_ab "<U0066><U0072>"
lang_term "<U0066><U0072><U0061>"
diff --git a/libc/localedata/locales/fr_CH b/libc/localedata/locales/fr_CH
index 5ab6af108..2a8bbddd3 100644
--- a/libc/localedata/locales/fr_CH
+++ b/libc/localedata/locales/fr_CH
@@ -139,4 +139,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0043><U0048>"
country_ab3 "<U0043><U0048><U0045>"
country_num 756
+% CH
+country_car "<U0043><U0048>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/fr_FR b/libc/localedata/locales/fr_FR
index dd54bcf97..3576c6999 100644
--- a/libc/localedata/locales/fr_FR
+++ b/libc/localedata/locales/fr_FR
@@ -177,4 +177,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0046><U0052>"
country_ab3 "<U0046><U0052><U0041>"
country_num 250
+% F
+country_car "<U0046>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/fr_LU b/libc/localedata/locales/fr_LU
index 210027707..c1ceda184 100644
--- a/libc/localedata/locales/fr_LU
+++ b/libc/localedata/locales/fr_LU
@@ -156,4 +156,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004C><U0055>"
country_ab3 "<U004C><U0055><U0058>"
country_num 442
+% L
+country_car "<U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/fur_IT b/libc/localedata/locales/fur_IT
index 4dab67179..a0e2e45c4 100644
--- a/libc/localedata/locales/fur_IT
+++ b/libc/localedata/locales/fur_IT
@@ -132,5 +132,14 @@ copy "it_IT"
END LC_NAME
LC_ADDRESS
-copy "it_IT"
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U0049><U0054>"
+country_ab3 "<U0049><U0054><U0041>"
+country_num 380
+% I
+country_car "<U0049>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/fy_DE b/libc/localedata/locales/fy_DE
index df894f21c..bfc462bf6 100644
--- a/libc/localedata/locales/fy_DE
+++ b/libc/localedata/locales/fy_DE
@@ -45,6 +45,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_post "<U0044>"
country_ab2 "<U0044><U0045>"
country_ab3 "<U0044><U0045><U0055>"
+% D
country_car "<U0044>"
country_num 276
country_isbn "3"
diff --git a/libc/localedata/locales/ga_IE b/libc/localedata/locales/ga_IE
index aa95d7ecd..435e242ed 100644
--- a/libc/localedata/locales/ga_IE
+++ b/libc/localedata/locales/ga_IE
@@ -158,4 +158,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0049><U0045>"
country_ab3 "<U0049><U0052><U004C>"
country_num 372
+% IRL
+country_car "<U0049><U0052><U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/gez_ER b/libc/localedata/locales/gez_ER
index 229c9b839..3895c8e9a 100644
--- a/libc/localedata/locales/gez_ER
+++ b/libc/localedata/locales/gez_ER
@@ -107,7 +107,8 @@ country_post "<U0045><U0052><U0049>"
country_ab2 "<U0045><U0052>"
country_ab3 "<U0045><U0052><U0049>"
country_num 232
-% country_car unknown
+% ER
+country_car "<U0045><U0052>"
% country_isbn unknown, Need ISO 2108
lang_name "<U130D><U12D5><U12DD>"
%lang_ab "<U0067><U0065><U007A>"
diff --git a/libc/localedata/locales/gez_ET b/libc/localedata/locales/gez_ET
index 24e09f6a2..7a84234b0 100644
--- a/libc/localedata/locales/gez_ET
+++ b/libc/localedata/locales/gez_ET
@@ -107,7 +107,8 @@ country_post "<U0045><U0054><U0048>"
country_ab2 "<U0045><U0054>"
country_ab3 "<U0045><U0054><U0048>"
country_num 231 % 210 found in at least one ISO 3166 doc
-% country_car unknown
+% ETH
+country_car "<U0045><U0054><U0048>"
% country_isbn unknown, Need ISO 2108
lang_name "<U130D><U12D5><U12DD>"
%lang_ab "<U0067><U0065><U007A>"
diff --git a/libc/localedata/locales/gl_ES b/libc/localedata/locales/gl_ES
index 8414fff3f..3df1e33d6 100644
--- a/libc/localedata/locales/gl_ES
+++ b/libc/localedata/locales/gl_ES
@@ -157,4 +157,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0045><U0053>"
country_ab3 "<U0045><U0053><U0050>"
country_num 724
+% E
+country_car "<U0045>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/gu_IN b/libc/localedata/locales/gu_IN
index 49cd1e2b7..fdc9282f1 100644
--- a/libc/localedata/locales/gu_IN
+++ b/libc/localedata/locales/gu_IN
@@ -215,6 +215,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/gv_GB b/libc/localedata/locales/gv_GB
index f83ddeabb..0b64788ad 100644
--- a/libc/localedata/locales/gv_GB
+++ b/libc/localedata/locales/gv_GB
@@ -172,4 +172,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0047><U0042>"
country_ab3 "<U0047><U0042><U0052>"
country_num 826
+% GB
+country_car "<U0047><U0042>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/he_IL b/libc/localedata/locales/he_IL
index e744d47fe..478a97aee 100644
--- a/libc/localedata/locales/he_IL
+++ b/libc/localedata/locales/he_IL
@@ -162,4 +162,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0049><U004C>"
country_ab3 "<U0049><U0053><U0052>"
country_num 376
+% IL
+country_car "<U0049><U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/hi_IN b/libc/localedata/locales/hi_IN
index 0ff10a115..41912b316 100644
--- a/libc/localedata/locales/hi_IN
+++ b/libc/localedata/locales/hi_IN
@@ -215,6 +215,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/hr_HR b/libc/localedata/locales/hr_HR
index f4f1cc474..4c7a88a0a 100644
--- a/libc/localedata/locales/hr_HR
+++ b/libc/localedata/locales/hr_HR
@@ -2247,4 +2247,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0048><U0052>"
country_ab3 "<U0048><U0052><U0056>"
country_num 191
+% HR
+country_car "<U0048><U0052>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ht_HT b/libc/localedata/locales/ht_HT
index 8ec865d1c..8b3d11827 100644
--- a/libc/localedata/locales/ht_HT
+++ b/libc/localedata/locales/ht_HT
@@ -1,35 +1,45 @@
comment_char %
-escape_char /
+escape_char /
+% Charset: UTF-8
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Haitian Kreyol (Kreyòl Ayisyen) language locale for Haiti
+%
+% Prepared and contributed to glibc by Bastien Guerry <bzg@laptop.org> and
+% Chris Leonard <cjl@sugarlabs.org>
+% This locale data has been developed in collaboration between:
+% Sugar Labs, http://www.sugarlabs.org/
+% One Laptop Per Child, http://one.laptop.org/
+% OLPC France, http://olpc-france.org
+% and members of the OLPC Haiti volunteer team
+%
+% build with: localedef -f UTF-8 -i ht_HT ht_HT
+%
+% This file is a part of GNU C Library (glibc) and contains locale data. The
+% Free Software Foundation does not claim any copyright interest in the
+% locale data contained in this file. The foregoing does not affect the
+% license of GNU C Library (glibc) as a whole. It does not exempt you from the
+% conditions of the license if your use would otherwise be governed by
+% that license.
%
-% U006Breyol Language Locale for Haiti
-% Source: OLPC
-% Language: ht
-% Contact: olpchaiti.org
-% Address: 22 rue 2, Port-au-Prince
-% Email: contact@olpchaiti.org
-% Territory: HT
-% Revision: 1.0
-% Date: 2008-08-17
-% Users: general
-% Charset: ISO-8859-1
-% Authors:
-% 2008-08-17, bzg@laptop.org
%
-% Distribution and use is free, also
-% for commercial purposes.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
LC_IDENTIFICATION
-title "Kreyol locale for Haiti"
-source "OLPC"
-address ""
-contact "olpchaiti.org"
-email "contact@olpchaiti.org"
-tel ""
-fax ""
-language "U006Breyol"
-territory "Haiti"
-revision "1.0"
-date "2008-08-17"
+title "Kreyol locale for Haiti"
+source "Sugar Labs / OLPC"
+address ""
+contact "sugarlabs.org"
+email "libc-alpha@sourceware.org"
+tel ""
+fax ""
+language "Kreyol"
+territory "Haiti"
+revision "1.1"
+date "2013-08-09"
%
category "ht_HT:2000";LC_IDENTIFICATION
category "ht_HT:2000";LC_CTYPE
@@ -37,35 +47,91 @@ category "ht_HT:2000";LC_COLLATE
category "ht_HT:2000";LC_TIME
category "ht_HT:2000";LC_NUMERIC
category "ht_HT:2000";LC_MONETARY
-category "ht_HT:2000";LC_MESSAGES
category "ht_HT:2000";LC_PAPER
+category "ht_HT:2000";LC_MEASUREMENT
+category "ht_HT:2000";LC_MESSAGES
category "ht_HT:2000";LC_NAME
category "ht_HT:2000";LC_ADDRESS
category "ht_HT:2000";LC_TELEPHONE
-
END LC_IDENTIFICATION
LC_CTYPE
+% In Haitian Kreyol, accents are simply omitted if they cannot be represented.
copy "i18n"
-
translit_start
-
-% In Haiti, accents are simply omitted if they cannot be represented.
include "translit_combining";""
-
translit_end
-
END LC_CTYPE
LC_COLLATE
-% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
END LC_COLLATE
-LC_MESSAGES
-yesexpr "<U005E><U005B><U006F><U006F><U0079><U0079><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U006E><U005D><U002E><U002A>"
-END LC_MESSAGES
+LC_TIME
+% janvye, fevriye, mas, avril, me, jen, jiyè, out, septanm, oktòb, novanm, desanm
+mon "<U006A><U0061><U006E><U0076><U0079><U0065>";/
+ "<U0066><U0065><U0076><U0072><U0069><U0079><U0065>";/
+ "<U006D><U0061><U0073>";/
+ "<U0061><U0076><U0072><U0069><U006C>";/
+ "<U006D><U0065>";/
+ "<U006A><U0065><U006E>";/
+ "<U006A><U0069><U0079><U00E8>";/
+ "<U006F><U0075><U0074>";/
+ "<U0073><U0065><U0070><U0074><U0061><U006E><U006D>";/
+ "<U006F><U006B><U0074><U00F2><U0062>";/
+ "<U006E><U006F><U0076><U0061><U006E><U006D>";/
+ "<U0064><U0065><U0073><U0061><U006E><U006D>"
+% jan, fev, mas, avr, me, jen, jiy, out, sep, okt, nov, des
+abmon "<U006A><U0061><U006E>";/
+ "<U0066><U0065><U0076>";/
+ "<U006D><U0061><U0073>";/
+ "<U0061><U0076><U0072>";/
+ "<U006D><U0065>";/
+ "<U006A><U0065><U006E>";/
+ "<U006A><U0069><U0079>";/
+ "<U006F><U0075><U0074>";/
+ "<U0073><U0065><U0070>";/
+ "<U006F><U006B><U0074>";/
+ "<U006E><U006F><U0076>";/
+ "<U0064><U0065><U0073>"
+% dimanch, lendi , madi, mèkredi, jedi, vandredi, samdi
+day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068>";/
+ "<U006C><U0065><U006E><U0064><U0069><U0020>";/
+ "<U006D><U0061><U0064><U0069>";/
+ "<U006D><U00E8><U006B><U0072><U0065><U0064><U0069>";/
+ "<U006A><U0065><U0064><U0069>";/
+ "<U0076><U0061><U006E><U0064><U0072><U0065><U0064><U0069>";/
+ "<U0073><U0061><U006D><U0064><U0069>"
+% dim, len , mad, mèk, jed, van, sam
+abday "<U0064><U0069><U006D>";/
+ "<U006C><U0065><U006E><U0020>";/
+ "<U006D><U0061><U0064>";/
+ "<U006D><U00E8><U006B>";/
+ "<U006A><U0065><U0064>";/
+ "<U0076><U0061><U006E>";/
+ "<U0073><U0061><U006D>"
+week 7;19971130;7
+first_weekday 1
+first_workday 2
+% %a %d %b %Y %T %Z
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+% %d/%m/%Y
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+% %T
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+% %a %b %e %H:%M:%S %Z %Y
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+LC_NUMERIC
+% ,
+decimal_point "<U002C>"
+%
+thousands_sep "<U0020>"
+grouping 3
+END LC_NUMERIC
LC_MONETARY
int_curr_symbol "<U0048><U0054><U0047><U0020>"
@@ -85,82 +151,28 @@ p_sign_posn 1
n_sign_posn 1
END LC_MONETARY
-LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep "<U0020>"
-grouping 3
-END LC_NUMERIC
-
-LC_TIME
-abday "<U0064><U0069><U006D><U002E>";/
- "<U006C><U0045><U006E><U002E>";/
- "<U006D><U0061><U0064><U002E>";/
- "<U006D><U00E8><U006B><U002E>";/
- "<U006A><U0045><U0064><U002E>";/
- "<U0076><U0061><U006E><U002E>";/
- "<U0073><U0061><U006D><U002E>"
-day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068>";/
- "<U006C><U0045><U006E><U0064><U0069>";/
- "<U006D><U0061><U0064><U0069>";/
- "<U006D><U00E8><U006B><U0052><U0045><U0064><U0069>";/
- "<U006A><U0045><U0064><U0069>";/
- "<U0076><U0061><U006E><U0064><U0052><U0045><U0064><U0069>";/
- "<U0073><U0061><U006D><U0064><U0069>"
-abmon "<U006A><U0061><U006E><U0076><U002E>";/
- "<U0066><U0045><U0076><U0052><U002E>";/
- "<U006D><U0061><U0073>";/
- "<U0061><U0076><U0052><U0069><U006C>";/
- "<U006D><U0045>";/
- "<U006A><U0045><U006E>";/
- "<U006A><U0069><U0079><U00E8><U002E>";/
- "<U006F><U0055><U0074>";/
- "<U0073><U0045><U0070><U0074><U002E>";/
- "<U006F><U006B><U0074><U002E>";/
- "<U006E><U006F><U0076><U002E>";/
- "<U0064><U0045><U0073><U002E>"
-mon "<U006A><U0061><U006E><U0076><U0079><U0045>";/
- "<U0066><U0045><U0076><U0052><U0069><U0079><U0045>";/
- "<U006D><U0061><U0073>";/
- "<U0061><U0076><U0052><U0069><U006C>";/
- "<U006D><U0045>";/
- "<U006A><U0045><U006E>";/
- "<U006A><U0069><U0079><U00E8>";/
- "<U006F><U0055><U0074>";/
- "<U0073><U0045><U0070><U0074><U0061><U006E><U006D>";/
- "<U006F><U0063><U0074><U006F><U0062><U0052><U0045>";/
- "<U006E><U006F><U0076><U0061><U006E><U006D>";/
- "<U0064><U0045><U0073><U0061><U006E><U006D>"
-d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0079><U0020><U0025><U0074><U0020><U0025><U005A>"
-d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
-t_fmt "<U0025><U0074>"
-am_pm "";""
-t_fmt_ampm ""
-date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0045>/
-<U0020><U0025><U0068><U003A><U0025><U006D><U003A><U0025><U0073><U0020>/
-<U0025><U005A><U0020><U0025><U0079>"
-
-week 7;19971130;4
-first_weekday 2
-first_workday 2
-END LC_TIME
-
LC_PAPER
+% A4
height 297
width 210
END LC_PAPER
-LC_TELEPHONE
-tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-<U006C>"
-tel_dom_fmt "<U0025><U0061><U0020><U0025><U006C>"
-int_prefix "<U0035><U0030><U0039>"
-int_select "<U0030><U0030>"
-END LC_TELEPHONE
-
LC_MEASUREMENT
+% metric
measurement 1
END LC_MEASUREMENT
+LC_MESSAGES
+% ^[wWoOyY].*
+yesexpr "<U005E><U005B><U0077><U0057><U006F><U004F><U0079><U0059><U005D><U002E><U002A>"
+% ^[nN].*
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+% Wi
+yesstr "<U0057><U0069>"
+% Non
+nostr "<U004E><U006F><U006E>"
+END LC_MESSAGES
+
LC_NAME
name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
@@ -172,7 +184,32 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0052><U0025>/
<U004E><U0025><U0025><U005A><U0020><U0025><U0074><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
-country_ab2 "<U0068><U0074>"
-country_ab3 "<U0068><U0074><U0069>"
-%country_num 332
+% Ayiti
+country_name "<U0041><U0079><U0069><U0074><U0069>"
+% HT
+country_post "<U0048><U0054>"
+% HT
+country_ab2 "<U0048><U0054>"
+% HTI
+country_ab3 "<U0048><U0054><U0049>"
+country_num 332
+country_isbn 99935
+%
+% Kreyòl ayisyen
+lang_name "<U004B><U0072><U0065><U0079><U00F2><U006C><U0020><U0061><U0079><U0069><U0073><U0079><U0065><U006E>"
+% ht
+lang_ab "<U0068><U0074>"
+% hat
+lang_term "<U0068><U0061><U0074>"
END LC_ADDRESS
+
+LC_TELEPHONE
+% +%c %a %l
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
+% %a %l
+tel_dom_fmt "<U0025><U0061><U0020><U0025><U006C>"
+% 00
+int_select "<U0030><U0030>"
+% 509
+int_prefix "<U0035><U0030><U0039>"
+END LC_TELEPHONE
diff --git a/libc/localedata/locales/hu_HU b/libc/localedata/locales/hu_HU
index 691ccad90..41180d4c2 100644
--- a/libc/localedata/locales/hu_HU
+++ b/libc/localedata/locales/hu_HU
@@ -584,4 +584,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0048><U0055>"
country_ab3 "<U0048><U0055><U004E>"
country_num 348
+% H
+country_car "<U0048>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/id_ID b/libc/localedata/locales/id_ID
index fceb89101..0e217240f 100644
--- a/libc/localedata/locales/id_ID
+++ b/libc/localedata/locales/id_ID
@@ -159,4 +159,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0049><U0044>"
country_ab3 "<U0049><U0044><U004E>"
country_num 360
+% RI
+country_car "<U0052><U0049>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ik_CA b/libc/localedata/locales/ik_CA
index 7648f2412..0b4a19447 100644
--- a/libc/localedata/locales/ik_CA
+++ b/libc/localedata/locales/ik_CA
@@ -231,5 +231,8 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0043><U0041>"
country_ab3 "<U0043><U0041><U004E>"
country_num 124
+% CDN
+country_car "<U0043><U0044><U004E>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/is_IS b/libc/localedata/locales/is_IS
index b4e3919e6..051fe8164 100644
--- a/libc/localedata/locales/is_IS
+++ b/libc/localedata/locales/is_IS
@@ -2263,4 +2263,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0049><U0053>"
country_ab3 "<U0049><U0053><U004C>"
country_num 352
+% IS
+country_car "<U0049><U0053>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/it_CH b/libc/localedata/locales/it_CH
index 51a28464c..9a0272a60 100644
--- a/libc/localedata/locales/it_CH
+++ b/libc/localedata/locales/it_CH
@@ -134,4 +134,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0043><U0048>"
country_ab3 "<U0043><U0048><U0045>"
country_num 756
+% CH
+country_car "<U0043><U0048>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/it_IT b/libc/localedata/locales/it_IT
index 47ee18199..3aaa21385 100644
--- a/libc/localedata/locales/it_IT
+++ b/libc/localedata/locales/it_IT
@@ -160,4 +160,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0049><U0054>"
country_ab3 "<U0049><U0054><U0041>"
country_num 380
+% I
+country_car "<U0049>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/iu_CA b/libc/localedata/locales/iu_CA
index e46910c06..748d289aa 100644
--- a/libc/localedata/locales/iu_CA
+++ b/libc/localedata/locales/iu_CA
@@ -41,7 +41,8 @@ postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
country_ab2 "<U0043><U0041>"
country_ab3 "<U0043><U0041><U004E>"
country_num 124
-country_car "<U0043><U0041><U004E>" % FIXME
+% CDN
+country_car "<U0043><U0044><U004E>"
% FIXME country_isbn for Canada/inuktitut ?
lang_name "<U1403><U14C4><U1483><U144E><U1450><U1466>"
lang_ab "<U0069><U0075>"
diff --git a/libc/localedata/locales/ja_JP b/libc/localedata/locales/ja_JP
index 54e55b1b5..ee2e7f3be 100644
--- a/libc/localedata/locales/ja_JP
+++ b/libc/localedata/locales/ja_JP
@@ -15042,6 +15042,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U004A><U0050>"
country_ab3 "<U004A><U0050><U004E>"
country_num 392
+% J
+country_car "<U004A>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ka_GE b/libc/localedata/locales/ka_GE
index 3135919f7..5577c5453 100644
--- a/libc/localedata/locales/ka_GE
+++ b/libc/localedata/locales/ka_GE
@@ -44,7 +44,8 @@ postal_fmt "<U0025><U0064><U0025><U004E><U0025><U0066><U0025><U004E><U0025><U006
country_ab2 "GE"
country_ab3 "GEO"
country_num 268
-country_car "GE"
+% GE
+country_car "<U0047><U0045>"
country_isbn "99928"
% lang_name FIXME Georgian in Georgian
lang_ab "ka"
diff --git a/libc/localedata/locales/kk_KZ b/libc/localedata/locales/kk_KZ
index cec3891f6..2f4994da6 100644
--- a/libc/localedata/locales/kk_KZ
+++ b/libc/localedata/locales/kk_KZ
@@ -261,4 +261,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
+% KZ
+country_car "<U004B><U005A>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/kn_IN b/libc/localedata/locales/kn_IN
index f57031fc4..ce0a1ade6 100644
--- a/libc/localedata/locales/kn_IN
+++ b/libc/localedata/locales/kn_IN
@@ -219,6 +219,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ko_KR b/libc/localedata/locales/ko_KR
index 59653ad18..97d9b1656 100644
--- a/libc/localedata/locales/ko_KR
+++ b/libc/localedata/locales/ko_KR
@@ -6247,4 +6247,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004B><U0052>"
country_ab3 "<U004B><U004F><U0052>"
country_num 410
+% ROK
+country_car "<U0052><U004F><U004B>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ku_TR b/libc/localedata/locales/ku_TR
index 9639e2634..3fff19ccb 100644
--- a/libc/localedata/locales/ku_TR
+++ b/libc/localedata/locales/ku_TR
@@ -206,7 +206,8 @@ country_ab2 "TR"
country_ab3 "TUR"
country_num 792
country_isbn 975
-country_car "TR"
+% TR
+country_car "<U0054><U0052>"
% "kurdi"
lang_name "<U006B><U0075><U0072><U0064><U0069>"
lang_ab "ku"
diff --git a/libc/localedata/locales/kw_GB b/libc/localedata/locales/kw_GB
index f4003a335..a7c03b9b7 100644
--- a/libc/localedata/locales/kw_GB
+++ b/libc/localedata/locales/kw_GB
@@ -164,4 +164,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0047><U0042>"
country_ab3 "<U0047><U0042><U0052>"
country_num 826
+% GB
+country_car "<U0047><U0042>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ky_KG b/libc/localedata/locales/ky_KG
index b656d1ad2..2702ad31f 100644
--- a/libc/localedata/locales/ky_KG
+++ b/libc/localedata/locales/ky_KG
@@ -204,4 +204,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004B><U0059>"
country_ab3 "<U004B><U0059><U0052>"
%country_num 643
+% KS
+country_car "<U004B><U0053>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/lg_UG b/libc/localedata/locales/lg_UG
index edb9a77aa..0248145a4 100644
--- a/libc/localedata/locales/lg_UG
+++ b/libc/localedata/locales/lg_UG
@@ -330,4 +330,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
%
country_ab3 "<U0055><U0047><U0041>"
country_num 800
+% EAU
+country_car "<U0045><U0041><U0055>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/lt_LT b/libc/localedata/locales/lt_LT
index 5b529e1c4..659a45d6c 100644
--- a/libc/localedata/locales/lt_LT
+++ b/libc/localedata/locales/lt_LT
@@ -2232,4 +2232,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004C><U0054>"
country_ab3 "<U004C><U0054><U0055>"
country_num 440
+% LT
+country_car "<U004C><U0054>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/lv_LV b/libc/localedata/locales/lv_LV
index aedce0259..ae9de9b46 100644
--- a/libc/localedata/locales/lv_LV
+++ b/libc/localedata/locales/lv_LV
@@ -2224,4 +2224,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004C><U0056>"
country_ab3 "<U004C><U0056><U0041>"
country_num 428
+% LV
+country_car "<U004C><U0056>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/mi_NZ b/libc/localedata/locales/mi_NZ
index caea66490..a32ece45a 100644
--- a/libc/localedata/locales/mi_NZ
+++ b/libc/localedata/locales/mi_NZ
@@ -160,7 +160,16 @@ END LC_NAME
LC_ADDRESS
% FIXME
-copy "en_NZ"
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U004E><U005A>"
+country_ab3 "<U004E><U005A><U004C>"
+country_num 554
+% NZ
+country_car "<U004E><U005A>"
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/ml_IN b/libc/localedata/locales/ml_IN
index 564f0de5d..cf7b7520a 100644
--- a/libc/localedata/locales/ml_IN
+++ b/libc/localedata/locales/ml_IN
@@ -209,6 +209,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
%
LC_TELEPHONE
diff --git a/libc/localedata/locales/mr_IN b/libc/localedata/locales/mr_IN
index 7ce9dc58d..11c4e09b2 100644
--- a/libc/localedata/locales/mr_IN
+++ b/libc/localedata/locales/mr_IN
@@ -219,6 +219,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ms_MY b/libc/localedata/locales/ms_MY
index 84c866e62..122f13f7c 100644
--- a/libc/localedata/locales/ms_MY
+++ b/libc/localedata/locales/ms_MY
@@ -201,6 +201,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U004D><U0059>"
country_ab3 "<U004D><U0059><U0053>"
country_num 458
+% MAL
+country_car "<U004D><U0041><U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/mt_MT b/libc/localedata/locales/mt_MT
index e79081a23..7d021b367 100644
--- a/libc/localedata/locales/mt_MT
+++ b/libc/localedata/locales/mt_MT
@@ -290,6 +290,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U004D><U0054>"
country_ab3 "<U004D><U004C><U0054>"
country_num 470
+% M
+country_car "<U004D>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/nb_NO b/libc/localedata/locales/nb_NO
index e4916438c..66b590f6d 100644
--- a/libc/localedata/locales/nb_NO
+++ b/libc/localedata/locales/nb_NO
@@ -241,4 +241,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004E><U004F>"
country_ab3 "<U004E><U004F><U0052>"
country_num 578
+% N
+country_car "<U004E>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ne_NP b/libc/localedata/locales/ne_NP
index 875d7a396..7574772cb 100644
--- a/libc/localedata/locales/ne_NP
+++ b/libc/localedata/locales/ne_NP
@@ -195,6 +195,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U004E><U0050>"
country_ab3 "<U004E><U0050><U004C>"
country_num 524
+% NEP
+country_car "<U004E><U0045><U0050>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/nl_BE b/libc/localedata/locales/nl_BE
index 5bb5b18d8..a3d72dca0 100644
--- a/libc/localedata/locales/nl_BE
+++ b/libc/localedata/locales/nl_BE
@@ -134,4 +134,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0042><U0045>"
country_ab3 "<U0042><U0045><U004C>"
country_num 056
+% B
+country_car "<U0042>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/nn_NO b/libc/localedata/locales/nn_NO
index efd4e5bae..c9fe73086 100644
--- a/libc/localedata/locales/nn_NO
+++ b/libc/localedata/locales/nn_NO
@@ -151,7 +151,16 @@ END LC_NAME
LC_ADDRESS
-copy "nb_NO"
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U004E><U004F>"
+country_ab3 "<U004E><U004F><U0052>"
+country_num 578
+% N
+country_car "<U004E>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/nr_ZA b/libc/localedata/locales/nr_ZA
index 698b9d1b1..3c9e810b7 100644
--- a/libc/localedata/locales/nr_ZA
+++ b/libc/localedata/locales/nr_ZA
@@ -276,9 +276,12 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
% ISO 3166 country number and 2 and 3 letter abreviations
% http://www.unicode.org/onlinedat/countries.html
-% "ZA", "ZAF"
-country_num 710
+% ZA
country_ab2 "<U005A><U0041>"
+% ZAF
country_ab3 "<U005A><U0041><U0046>"
+country_num 710
+% ZA
+country_car "<U005A><U0041>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/nso_ZA b/libc/localedata/locales/nso_ZA
index 5970e52ba..0094ca726 100644
--- a/libc/localedata/locales/nso_ZA
+++ b/libc/localedata/locales/nso_ZA
@@ -272,10 +272,13 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
% ISO 3166 country number and 2 and 3 letter abreviations
% http://www.unicode.org/onlinedat/countries.html
-% "ZA", "ZAF"
-country_num 710
+% ZA
country_ab2 "<U005A><U0041>"
+% ZAF
country_ab3 "<U005A><U0041><U0046>"
+country_num 710
+% ZA
+country_car "<U005A><U0041>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/om_ET b/libc/localedata/locales/om_ET
index 6ccd5feb2..e241b9763 100644
--- a/libc/localedata/locales/om_ET
+++ b/libc/localedata/locales/om_ET
@@ -140,7 +140,8 @@ country_post "<U0045><U0054><U0048>"
country_ab2 "<U0045><U0054>"
country_ab3 "<U0045><U0054><U0048>"
country_num 231 % 210 found in at least one ISO 3166 doc
-% country_car unknown
+% ETH
+country_car "<U0045><U0054><U0048>"
% country_isbn unknown, Need ISO 2108
lang_name "<U004F><U0072><U006F><U006D><U006F><U006F>"
lang_ab "<U006F><U006D>"
diff --git a/libc/localedata/locales/om_KE b/libc/localedata/locales/om_KE
index fcdae86e7..1a94bbbc8 100644
--- a/libc/localedata/locales/om_KE
+++ b/libc/localedata/locales/om_KE
@@ -240,7 +240,8 @@ country_post "<U004B><U0045><U004E>"
country_ab2 "<U004B><U0045>"
country_ab3 "<U004B><U0045><U004E>"
country_num 404
-% country_car unknown
+% EAK
+country_car "<U0045><U0041><U004B>"
% country_isbn unknown, Need ISO 2108
lang_name "<U004F><U0072><U006F><U006D><U006F><U006F>"
lang_ab "<U006F><U006D>"
diff --git a/libc/localedata/locales/pa_IN b/libc/localedata/locales/pa_IN
index 6128253b7..2c4d503cd 100644
--- a/libc/localedata/locales/pa_IN
+++ b/libc/localedata/locales/pa_IN
@@ -208,6 +208,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/pl_PL b/libc/localedata/locales/pl_PL
index 1bce8f5b3..9a4b1ba9d 100644
--- a/libc/localedata/locales/pl_PL
+++ b/libc/localedata/locales/pl_PL
@@ -2233,4 +2233,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0050><U004C>"
country_ab3 "<U0050><U004F><U004C>"
country_num 616
+% PL
+country_car "<U0050><U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/pt_BR b/libc/localedata/locales/pt_BR
index 22f61317d..c93909562 100644
--- a/libc/localedata/locales/pt_BR
+++ b/libc/localedata/locales/pt_BR
@@ -155,4 +155,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0042><U0052>"
country_ab3 "<U0042><U0052><U0041>"
country_num 076
+% BR
+country_car "<U0042><U0052>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/pt_PT b/libc/localedata/locales/pt_PT
index f11be1c0e..7e443032b 100644
--- a/libc/localedata/locales/pt_PT
+++ b/libc/localedata/locales/pt_PT
@@ -156,4 +156,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0050><U0054>"
country_ab3 "<U0050><U0052><U0054>"
country_num 620
+% P
+country_car "<U0050>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/quz_PE b/libc/localedata/locales/quz_PE
new file mode 100644
index 000000000..85fde3e1a
--- /dev/null
+++ b/libc/localedata/locales/quz_PE
@@ -0,0 +1,169 @@
+comment_char %
+escape_char /
+% Charset: UTF-8
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Quechua (Cusco-Collao) language locale for Peru
+%
+% Prepared and contributed to glibc by Chris Leonard <cjl@sugarlabs.org>
+% and Amos Batto
+%
+% This locale data has been developed in collaboration between:
+% Sugar Labs, http://www.sugarlabs.org/
+% Instituto de Lenguas y Literaturas Andinas-Amazonicas
+% http://www.illa-a.org/wp/illa/
+%
+% build with: localedef -f UTF-8 -i quz_PE quz_PE
+%
+% This file is a part of GNU C Library (glibc) and contains locale data. The Free
+% Software Foundation does not claim any copyright interest in the
+% locale data contained in this file. The foregoing does not affect the
+% license of GNU C Library (glibc) as a whole. It does not exempt you from the
+% conditions of the license if your use would otherwise be governed by
+% that license.
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+LC_IDENTIFICATION
+title "Quechua (Cusco-Collao) locale for Peru"
+source "Sugar Labs / OLPC"
+address ""
+contact "sugarlabs.org"
+email "libc-alpha@sourceware.org"
+tel ""
+fax ""
+language "Quechua (Cusco-Collao)"
+territory "Peru"
+revision "1.0"
+date "2013-08-24"
+%
+category "quz_PE:2013";LC_IDENTIFICATION
+category "quz_PE:2013";LC_CTYPE
+category "quz_PE:2013";LC_COLLATE
+category "quz_PE:2013";LC_TIME
+category "quz_PE:2013";LC_NUMERIC
+category "quz_PE:2013";LC_MONETARY
+category "quz_PE:2013";LC_PAPER
+category "quz_PE:2013";LC_MEASUREMENT
+category "quz_PE:2013";LC_MESSAGES
+category "quz_PE:2013";LC_NAME
+category "quz_PE:2013";LC_ADDRESS
+category "quz_PE:2013";LC_TELEPHONE
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+translit_start
+include "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_COLLATE
+copy "iso14651_t1"
+END LC_COLLATE
+
+% LC_TIME: Use Quechua transliteration of Spanish day and month names
+
+LC_TIME
+% iniru, phiwriru, marsu, awril, mayu, huniyu, huliyu, agustu,siptiyimri, uktuwri, nuwiyimri, tisiyimri
+mon "<U0069><U006E><U0069><U0072><U0075>";/
+ "<U0070><U0068><U0069><U0077><U0072><U0069><U0072><U0075>";/
+ "<U006D><U0061><U0072><U0073><U0075>";/
+ "<U0061><U0077><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U0075>";/
+ "<U0068><U0075><U006E><U0069><U0079><U0075>";/
+ "<U0068><U0075><U006C><U0069><U0079><U0075>";/
+ "<U0061><U0067><U0075><U0073><U0074><U0075>";/
+ "<U0073><U0069><U0070><U0074><U0069><U0079><U0069><U006D><U0072><U0069>";/
+ "<U0075><U006B><U0074><U0075><U0077><U0072><U0069>";/
+ "<U006E><U0075><U0077><U0069><U0079><U0069><U006D><U0072><U0069>";/
+ "<U0074><U0069><U0073><U0069><U0079><U0069><U006D><U0072><U0069>"
+% ini, phi, mar, awr, may, hun, hul, agu, sip, ukt, nuw, tis
+abmon "<U0069><U006E><U0069>";/
+ "<U0070><U0068><U0069>";/
+ "<U006D><U0061><U0072>";/
+ "<U0061><U0077><U0072>";/
+ "<U006D><U0061><U0079>";/
+ "<U0068><U0075><U006E>";/
+ "<U0068><U0075><U006C>";/
+ "<U0061><U0067><U0075>";/
+ "<U0073><U0069><U0070>";/
+ "<U0075><U006B><U0074>";/
+ "<U006E><U0075><U0077>";/
+ "<U0074><U0069><U0073>"
+% tuminku, lunis, martis, miyirkulis, juywis, wiyirnis, sawatu
+day "<U0074><U0075><U006D><U0069><U006E><U006B><U0075>";/
+ "<U006C><U0075><U006E><U0069><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0069><U0073>";/
+ "<U006D><U0069><U0079><U0069><U0072><U006B><U0075><U006C><U0069><U0073>";/
+ "<U006A><U0075><U0079><U0077><U0069><U0073>";/
+ "<U0077><U0069><U0079><U0069><U0072><U006E><U0069><U0073>";/
+ "<U0073><U0061><U0077><U0061><U0074><U0075>"
+% tum, lun, mar, miy, juy, wiy, saw
+abday "<U0074><U0075><U006D>";/
+ "<U006C><U0075><U006E>";/
+ "<U006D><U0061><U0072>";/
+ "<U006D><U0069><U0079>";/
+ "<U006A><U0075><U0079>";/
+ "<U0077><U0069><U0079>";/
+ "<U0073><U0061><U0077>"
+% %a %d %b %Y %T %Z
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+% %d/%m/%y
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+% %I:%M:%S %p
+t_fmt "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+% AM, PM
+am_pm "<U0041><U004D>";/
+ "<U0050><U004D>"
+% %I:%M:%S %p
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+week 7;19971130;7
+first_weekday 1
+first_workday 2
+% %a %b %e %H:%M:%S %Z %Y
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+LC_NUMERIC
+copy "es_PE"
+END LC_NUMERIC
+
+LC_MONETARY
+copy "es_PE"
+END LC_MONETARY
+
+LC_PAPER
+copy "es_PE"
+END LC_PAPER
+
+LC_MEASUREMENT
+% metric
+measurement 1
+END LC_MEASUREMENT
+
+LC_MESSAGES
+% ^[aAsSyY].*
+yesexpr "<U005E><U005B><U0061><U0041><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+% ^[mMnN].*
+noexpr "<U005E><U005B><U006D><U004D><U006E><U004E><U005D><U002E><U002A>"
+% Arí
+yesstr "<U0041><U0072><U00ED>"
+% Manan
+nostr "<U004D><U0061><U006E><U0061><U006E>"
+END LC_MESSAGES
+
+LC_NAME
+copy "es_PE"
+END LC_NAME
+
+% TO DO - adjust for Quechua specific lang-info for Peru
+LC_ADDRESS
+copy "es_PE"
+END LC_ADDRESS
+
+LC_TELEPHONE
+copy "es_PE"
+END LC_TELEPHONE
diff --git a/libc/localedata/locales/ru_RU b/libc/localedata/locales/ru_RU
index 6fa4d998d..1c7e8069e 100644
--- a/libc/localedata/locales/ru_RU
+++ b/libc/localedata/locales/ru_RU
@@ -186,4 +186,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0052><U0055>"
country_ab3 "<U0052><U0055><U0053>"
country_num 643
+% RUS
+country_car "<U0052><U0055><U0053>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ru_UA b/libc/localedata/locales/ru_UA
index 2f08d3e15..ef689d583 100644
--- a/libc/localedata/locales/ru_UA
+++ b/libc/localedata/locales/ru_UA
@@ -177,4 +177,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0055><U0041>"
country_ab3 "<U0055><U004B><U0052>"
country_num 804
+% UA
+country_car "<U0055><U0041>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/sa_IN b/libc/localedata/locales/sa_IN
index 69248a272..efcb6de1d 100644
--- a/libc/localedata/locales/sa_IN
+++ b/libc/localedata/locales/sa_IN
@@ -235,6 +235,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/se_NO b/libc/localedata/locales/se_NO
index f64db0987..6bbf280dc 100644
--- a/libc/localedata/locales/se_NO
+++ b/libc/localedata/locales/se_NO
@@ -314,4 +314,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004E><U004F>"
country_ab3 "<U004E><U004F><U0052>"
country_num 578
+% N
+country_car "<U004E>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/sk_SK b/libc/localedata/locales/sk_SK
index 0b737a0b1..bf3f6a414 100644
--- a/libc/localedata/locales/sk_SK
+++ b/libc/localedata/locales/sk_SK
@@ -224,4 +224,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0053><U004B>"
country_ab3 "<U0053><U0056><U004B>"
country_num 703
+% SK
+country_car "<U0053><U004B>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/sl_SI b/libc/localedata/locales/sl_SI
index 2c9096a87..3808e63e8 100644
--- a/libc/localedata/locales/sl_SI
+++ b/libc/localedata/locales/sl_SI
@@ -2223,4 +2223,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0053><U0049>"
country_ab3 "<U0053><U0056><U004E>"
country_num 705
+% SLO
+country_car "<U0053><U004C><U004F>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/so_ET b/libc/localedata/locales/so_ET
index d36848e5b..00b61b48e 100644
--- a/libc/localedata/locales/so_ET
+++ b/libc/localedata/locales/so_ET
@@ -120,7 +120,8 @@ country_post "<U0045><U0054><U0048>"
country_ab2 "<U0045><U0054>"
country_ab3 "<U0045><U0054><U0048>"
country_num 231 % 210 found in at least one ISO 3166 doc
-% country_car unknown
+% ETH
+country_car "<U0045><U0054><U0048>"
% country_isbn unknown, Need ISO 2108
lang_name "<U0053><U006F><U006F><U006D><U0061><U0061><U006C><U0069>"
lang_ab "<U0073><U006F>"
diff --git a/libc/localedata/locales/so_KE b/libc/localedata/locales/so_KE
index 5d670497b..49c108a0d 100644
--- a/libc/localedata/locales/so_KE
+++ b/libc/localedata/locales/so_KE
@@ -119,7 +119,8 @@ country_post "<U004B><U0045><U004E>"
country_ab2 "<U004B><U0045>"
country_ab3 "<U004B><U0045><U004E>"
country_num 404
-% country_car unknown
+% EAK
+country_car "<U0045><U0041><U004B>"
% country_isbn unknown, Need ISO 2108
lang_name "<U0053><U006F><U006F><U006D><U0061><U0061><U006C><U0069>"
lang_ab "<U0073><U006F>"
diff --git a/libc/localedata/locales/so_SO b/libc/localedata/locales/so_SO
index acaaa3f75..75316392b 100644
--- a/libc/localedata/locales/so_SO
+++ b/libc/localedata/locales/so_SO
@@ -176,7 +176,8 @@ country_post "<U0053><U004F><U004D>"
country_ab2 "<U0053><U004F>"
country_ab3 "<U0053><U004F><U004D>"
country_num 706
-% country_car unknown
+% SO
+country_car "<U0053><U004F>"
% country_isbn unknown, Need ISO 2108
lang_name "<U0053><U006F><U006F><U006D><U0061><U0061><U006C><U0069>"
lang_ab "<U0073><U006F>"
diff --git a/libc/localedata/locales/sq_AL b/libc/localedata/locales/sq_AL
index 0cbddde58..2d3253279 100644
--- a/libc/localedata/locales/sq_AL
+++ b/libc/localedata/locales/sq_AL
@@ -332,6 +332,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
country_ab2 "<U0041><U004C>"
country_ab3 "<U0041><U004C><U0042>"
country_num 008
+% AL
+country_car "<U0041><U004C>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ss_ZA b/libc/localedata/locales/ss_ZA
index c30060e45..5c87e577c 100644
--- a/libc/localedata/locales/ss_ZA
+++ b/libc/localedata/locales/ss_ZA
@@ -284,5 +284,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_num 710
country_ab2 "<U005A><U0041>"
country_ab3 "<U005A><U0041><U0046>"
+% ZA
+country_car "<U005A><U0041>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/sv_SE b/libc/localedata/locales/sv_SE
index 2dbc85364..d7ebdd8f6 100644
--- a/libc/localedata/locales/sv_SE
+++ b/libc/localedata/locales/sv_SE
@@ -217,4 +217,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0053><U0045>"
country_ab3 "<U0053><U0057><U0045>"
country_num 752
+% S
+country_car "<U0053>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ta_IN b/libc/localedata/locales/ta_IN
index ad1d6fa9c..39212839d 100644
--- a/libc/localedata/locales/ta_IN
+++ b/libc/localedata/locales/ta_IN
@@ -204,6 +204,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/te_IN b/libc/localedata/locales/te_IN
index 4f14bd313..e9865f5ac 100644
--- a/libc/localedata/locales/te_IN
+++ b/libc/localedata/locales/te_IN
@@ -221,6 +221,8 @@ country_name "<U0C2D><U0C3E><U0C30><U0C24><U0020><U0C26><U0C47><U0C36><U0C02>
country_ab2 "<U0049><U004E>"
country_ab3 "<U0049><U004E><U0044>"
country_num 356
+% IND
+country_car "<U0049><U004E><U0044>"
lang_name "<U0C24><U0C46><U0C32><U0C41><U0C17><U0C41>"
lang_ab "te"
lang_term "tel"
diff --git a/libc/localedata/locales/tg_TJ b/libc/localedata/locales/tg_TJ
index 51023c267..03c36d2a6 100644
--- a/libc/localedata/locales/tg_TJ
+++ b/libc/localedata/locales/tg_TJ
@@ -225,6 +225,9 @@ postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
country_ab2 "<U0054><U004A>"
country_ab3 "<U0054><U004A><U004B>"
country_num 762
+% TJ
+country_car "<U0054><U004A>"
+
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/th_TH b/libc/localedata/locales/th_TH
index 5bcf10e57..05575dcb6 100644
--- a/libc/localedata/locales/th_TH
+++ b/libc/localedata/locales/th_TH
@@ -969,8 +969,8 @@ country_name "<U0E44><U0E17><U0E22>"
country_ab2 "<U0054><U0048>"
country_ab3 "<U0054><U0048><U0041>"
%country_num "<U0037><U0036><U0034>"
-%FIXME
-%country_car ""
+% T
+country_car "<U0054>"
%FIXME
%country_isbn ""
lang_name "<U0E44><U0E17><U0E22>"
diff --git a/libc/localedata/locales/ti_ET b/libc/localedata/locales/ti_ET
index 3c714e954..1f2353fd3 100644
--- a/libc/localedata/locales/ti_ET
+++ b/libc/localedata/locales/ti_ET
@@ -952,7 +952,8 @@ country_post "<U0045><U0054><U0048>"
country_ab2 "<U0045><U0054>"
country_ab3 "<U0045><U0054><U0048>"
country_num 231 % 210 found in at least one ISO 3166 doc
-% country_car unknown
+% ETH
+country_car "<U0045><U0054><U0048>"
% country_isbn unknown, Need ISO 2108
lang_name "<U1275><U130D><U122D><U129B>"
lang_ab "<U0074><U0069>"
diff --git a/libc/localedata/locales/tl_PH b/libc/localedata/locales/tl_PH
index 40c6a715a..de6ad15ef 100644
--- a/libc/localedata/locales/tl_PH
+++ b/libc/localedata/locales/tl_PH
@@ -168,6 +168,9 @@ postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
country_ab2 "<U0050><U0048>"
country_ab3 "<U0050><U0048><U004C>"
country_num 608
+% RP
+country_car "<U0052><U0050>"
+
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/tn_ZA b/libc/localedata/locales/tn_ZA
index c717d1e8d..134ef0b4f 100644
--- a/libc/localedata/locales/tn_ZA
+++ b/libc/localedata/locales/tn_ZA
@@ -283,9 +283,13 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
% ISO 3166 country number and 2 and 3 letter abreviations
% http://www.unicode.org/onlinedat/countries.html
-% "ZA", "ZAF"
-country_num 710
+% ZA
country_ab2 "<U005A><U0041>"
+% ZAF
country_ab3 "<U005A><U0041><U0046>"
+country_num 710
+% ZA
+country_car "<U005A><U0041>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/ts_ZA b/libc/localedata/locales/ts_ZA
index 010cba2d3..740bbae10 100644
--- a/libc/localedata/locales/ts_ZA
+++ b/libc/localedata/locales/ts_ZA
@@ -281,5 +281,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_num 710
country_ab2 "<U005A><U0041>"
country_ab3 "<U005A><U0041><U0046>"
+% ZA
+country_car "<U005A><U0041>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/tt_RU b/libc/localedata/locales/tt_RU
index bfa6bb8da..f5e1b7588 100644
--- a/libc/localedata/locales/tt_RU
+++ b/libc/localedata/locales/tt_RU
@@ -315,6 +315,9 @@ END LC_NAME
LC_ADDRESS
% FIXME
postal_fmt "???"
+% RUS
+country_car "<U0052><U0055><U0053>"
+
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/tt_RU@iqtelif b/libc/localedata/locales/tt_RU@iqtelif
index a043de575..b6c40b3ec 100644
--- a/libc/localedata/locales/tt_RU@iqtelif
+++ b/libc/localedata/locales/tt_RU@iqtelif
@@ -173,6 +173,9 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U0052><U0055>"
country_ab3 "<U0052><U0055><U0053>"
country_num 643
+% RUS
+country_car "<U0052><U0055><U0053>"
+
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/ur_PK b/libc/localedata/locales/ur_PK
index fc9cfb807..9c91b5a12 100644
--- a/libc/localedata/locales/ur_PK
+++ b/libc/localedata/locales/ur_PK
@@ -195,6 +195,9 @@ postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
country_ab2 "<U0050><U004B>"
country_ab3 "<U0050><U0041><U004B>"
country_num 586
+% PK
+country_car "<U0050><U004B>"
+
END LC_ADDRESS
LC_TELEPHONE
diff --git a/libc/localedata/locales/uz_UZ b/libc/localedata/locales/uz_UZ
index c529e61ee..375e4ac62 100644
--- a/libc/localedata/locales/uz_UZ
+++ b/libc/localedata/locales/uz_UZ
@@ -314,7 +314,8 @@ country_ab3 "UZB"
country_num 860
% FIXME: ISBN number?
%country_isbn ""
-country_car "UZ"
+% UZ
+country_car "<U0055><U005A>"
lang_name "<U004F><U0027><U007A><U0062><U0065><U006B>"
lang_ab "uz"
lang_term "uzb"
diff --git a/libc/localedata/locales/ve_ZA b/libc/localedata/locales/ve_ZA
index f715cf5c8..26a68d040 100644
--- a/libc/localedata/locales/ve_ZA
+++ b/libc/localedata/locales/ve_ZA
@@ -287,5 +287,7 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_num 710
country_ab2 "<U005A><U0041>"
country_ab3 "<U005A><U0041><U0046>"
+% ZA
+country_car "<U005A><U0041>"
END LC_ADDRESS
diff --git a/libc/localedata/locales/vi_VN b/libc/localedata/locales/vi_VN
index 582f065fc..e372ae07c 100644
--- a/libc/localedata/locales/vi_VN
+++ b/libc/localedata/locales/vi_VN
@@ -336,6 +336,9 @@ lang_name "<U0056><U0069><U1EC7><U0074><U0020><U006E><U0067><U1EEF>"
country_ab2 "<U0056><U004E>"
country_ab3 "<U0056><U004E><U004D>"
country_num 704
+% VN
+country_car "<U0056><U004E>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/wal_ET b/libc/localedata/locales/wal_ET
index 7846531f4..0c93f26cf 100644
--- a/libc/localedata/locales/wal_ET
+++ b/libc/localedata/locales/wal_ET
@@ -107,7 +107,8 @@ country_post "<U0045><U0054><U0048>"
country_ab2 "<U0045><U0054>"
country_ab3 "<U0045><U0054><U0048>"
country_num 231 % 210 found in at least one ISO 3166 doc
-% country_car unknown
+% ETH
+country_car "<U0045><U0054><U0048>"
% country_isbn unknown, Need ISO 2108
lang_name "<U12C8><U120B><U12ED><U1273><U1271>"
lang_term "<U0077><U0061><U006C>"
diff --git a/libc/localedata/locales/wo_SN b/libc/localedata/locales/wo_SN
index ee91dbc81..d593f1f59 100644
--- a/libc/localedata/locales/wo_SN
+++ b/libc/localedata/locales/wo_SN
@@ -176,5 +176,8 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
country_ab2 "<U004D><U0047>"
country_ab3 "<U004D><U0044><U0047>"
country_num 450
+% SN
+country_car "<U0053><U004E>"
+
END LC_ADDRESS
diff --git a/libc/localedata/locales/zh_SG b/libc/localedata/locales/zh_SG
index 2d052f45b..dc29268a5 100644
--- a/libc/localedata/locales/zh_SG
+++ b/libc/localedata/locales/zh_SG
@@ -194,6 +194,9 @@ postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073><U0025><U00
country_ab2 "<U0053><U0047>"
country_ab3 "<U0053><U0047><U0050>"
country_num 702
+% SGP
+country_car "<U0053><U0047><U0050>"
+
END LC_ADDRESS
diff --git a/libc/localedata/tests-mbwc/dat_wcsncat.c b/libc/localedata/tests-mbwc/dat_wcsncat.c
index 948d80ce9..8487033e6 100644
--- a/libc/localedata/tests-mbwc/dat_wcsncat.c
+++ b/libc/localedata/tests-mbwc/dat_wcsncat.c
@@ -9,7 +9,7 @@
/*
* Note:
- * A terminating null wide chararacter is always appended to
+ * A terminating null wide character is always appended to
* the result: ws1.
*
*/
diff --git a/libc/localedata/tests/test6.c b/libc/localedata/tests/test6.c
index 30d4a1188..65486016a 100644
--- a/libc/localedata/tests/test6.c
+++ b/libc/localedata/tests/test6.c
@@ -40,7 +40,7 @@ main (void)
/* Test basic table handling (basic == not more than 256 characters).
The charmaps swaps the normal lower-upper case meaning of the
ASCII characters used in the source code while the Unicode mapping
- in the repertoire map has the normal correspondants. This test
+ in the repertoire map has the normal correspondents. This test
shows the independence of the tables for `char' and `wchar_t'
characters. */
diff --git a/libc/localedata/tst-digits.c b/libc/localedata/tst-digits.c
index a0cb4736a..c5b594eb6 100644
--- a/libc/localedata/tst-digits.c
+++ b/libc/localedata/tst-digits.c
@@ -178,7 +178,7 @@ main (void)
printf ("%d failures in wprintf tests\n", failures);
status = failures != 0;
- /* ctype tests. This makes sure that the multibyte chracter digit
+ /* ctype tests. This makes sure that the multibyte character digit
representations are not handle in this table. */
failures = 0;
for (cnt = 0; cnt < 256; ++cnt)
diff --git a/libc/malloc/malloc.c b/libc/malloc/malloc.c
index be472b2ba..dd295f522 100644
--- a/libc/malloc/malloc.c
+++ b/libc/malloc/malloc.c
@@ -1167,7 +1167,7 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
the malloc code, but "mem" is the pointer that is returned to the
user. "Nextchunk" is the beginning of the next contiguous chunk.
- Chunks always begin on even word boundries, so the mem portion
+ Chunks always begin on even word boundaries, so the mem portion
(which is returned to the user) is also on an even word boundary, and
thus at least double-word aligned.
diff --git a/libc/manual/charset.texi b/libc/manual/charset.texi
index e21502e5c..404263930 100644
--- a/libc/manual/charset.texi
+++ b/libc/manual/charset.texi
@@ -786,7 +786,7 @@ mbslen (const char *s)
This function simply calls @code{mbrlen} for each multibyte character
in the string and counts the number of function calls. Please note that
we here use @code{MB_LEN_MAX} as the size argument in the @code{mbrlen}
-call. This is acceptable since a) this value is larger then the length of
+call. This is acceptable since a) this value is larger than the length of
the longest multibyte character sequence and b) we know that the string
@var{s} ends with a NUL byte, which cannot be part of any other multibyte
character sequence but the one representing the NUL wide character.
diff --git a/libc/manual/filesys.texi b/libc/manual/filesys.texi
index 814c210a9..1cac45393 100644
--- a/libc/manual/filesys.texi
+++ b/libc/manual/filesys.texi
@@ -1909,7 +1909,7 @@ replaces the normal implementation.
@comment Unix98
@deftypefun int stat64 (const char *@var{filename}, struct stat64 *@var{buf})
This function is similar to @code{stat} but it is also able to work on
-files larger then @math{2^31} bytes on 32-bit systems. To be able to do
+files larger than @math{2^31} bytes on 32-bit systems. To be able to do
this the result is stored in a variable of type @code{struct stat64} to
which @var{buf} must point.
@@ -1970,7 +1970,7 @@ replaces the normal implementation.
@comment Unix98
@deftypefun int lstat64 (const char *@var{filename}, struct stat64 *@var{buf})
This function is similar to @code{lstat} but it is also able to work on
-files larger then @math{2^31} bytes on 32-bit systems. To be able to do
+files larger than @math{2^31} bytes on 32-bit systems. To be able to do
this the result is stored in a variable of type @code{struct stat64} to
which @var{buf} must point.
@@ -3152,7 +3152,7 @@ interface transparently replaces the old interface.
@deftypefun {FILE *} tmpfile64 (void)
This function is similar to @code{tmpfile}, but the stream it returns a
pointer to was opened using @code{tmpfile64}. Therefore this stream can
-be used for files larger then @math{2^31} bytes on 32-bit machines.
+be used for files larger than @math{2^31} bytes on 32-bit machines.
Please note that the return type is still @code{FILE *}. There is no
special @code{FILE} type for the LFS interface.
diff --git a/libc/manual/install.texi b/libc/manual/install.texi
index 4575d2231..2ac0104ca 100644
--- a/libc/manual/install.texi
+++ b/libc/manual/install.texi
@@ -138,11 +138,6 @@ linker.
Don't build libraries with profiling information. You may want to use
this option if you don't plan to do profiling.
-@item --disable-versioning
-Don't compile the shared libraries with symbol version information.
-Doing this will make the resulting library incompatible with old
-binaries, so it's not recommended.
-
@item --enable-static-nss
Compile static versions of the NSS (Name Service Switch) libraries.
This is not recommended because it defeats the purpose of NSS; a program
diff --git a/libc/manual/stdio.texi b/libc/manual/stdio.texi
index 3f9be9bc5..30630caf6 100644
--- a/libc/manual/stdio.texi
+++ b/libc/manual/stdio.texi
@@ -267,7 +267,7 @@ Locks}.
@deftypefun {FILE *} fopen64 (const char *@var{filename}, const char *@var{opentype})
This function is similar to @code{fopen} but the stream it returns a
pointer for is opened using @code{open64}. Therefore this stream can be
-used even on files larger then @math{2^31} bytes on 32 bit machines.
+used even on files larger than @math{2^31} bytes on 32 bit machines.
Please note that the return type is still @code{FILE *}. There is no
special @code{FILE} type for the LFS interface.
diff --git a/libc/manual/string.texi b/libc/manual/string.texi
index 246be8445..2a164a952 100644
--- a/libc/manual/string.texi
+++ b/libc/manual/string.texi
@@ -682,7 +682,7 @@ The behavior of @code{wcpcpy} is undefined if the strings overlap.
This function is similar to @code{stpcpy} but copies always exactly
@var{size} characters into @var{to}.
-If the length of @var{from} is more then @var{size}, then @code{stpncpy}
+If the length of @var{from} is more than @var{size}, then @code{stpncpy}
copies just the first @var{size} characters and returns a pointer to the
character directly following the one which was copied last. Note that in
this case there is no null terminator written into @var{to}.
@@ -707,7 +707,7 @@ declared in @file{string.h}.
This function is similar to @code{wcpcpy} but copies always exactly
@var{wsize} characters into @var{wto}.
-If the length of @var{wfrom} is more then @var{size}, then
+If the length of @var{wfrom} is more than @var{size}, then
@code{wcpncpy} copies just the first @var{size} wide characters and
returns a pointer to the wide character directly following the last
non-null wide character which was copied last. Note that in this case
diff --git a/libc/math/basic-test.c b/libc/math/basic-test.c
index 9e9b848ee..44145a75f 100644
--- a/libc/math/basic-test.c
+++ b/libc/math/basic-test.c
@@ -148,7 +148,7 @@ NAME (void) \
check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \
}
-#define TEST_TRUNC(NAME, FLOAT, DOUBLE, SUFFIX) \
+#define TEST_CONVERT(NAME, FLOAT, DOUBLE, SUFFIX) \
void \
NAME (void) \
{ \
@@ -189,11 +189,14 @@ NAME (void) \
TEST_FUNC (float_test, float, f, FLT_EPSILON, HUGE_VALF)
TEST_FUNC (double_test, double, , DBL_EPSILON, HUGE_VAL)
-TEST_TRUNC (truncdfsf_test, float, double, )
+TEST_CONVERT (convert_dfsf_test, float, double, )
+TEST_CONVERT (convert_sfdf_test, double, float, f)
#ifndef NO_LONG_DOUBLE
TEST_FUNC (ldouble_test, long double, l, LDBL_EPSILON, HUGE_VALL)
-TEST_TRUNC (trunctfsf_test, float, long double, l)
-TEST_TRUNC (trunctfdf_test, double, long double, l)
+TEST_CONVERT (convert_tfsf_test, float, long double, l)
+TEST_CONVERT (convert_sftf_test, long double, float, f)
+TEST_CONVERT (convert_tfdf_test, double, long double, l)
+TEST_CONVERT (convert_dftf_test, long double, double, )
#endif
int
@@ -201,12 +204,15 @@ do_test (void)
{
float_test ();
double_test ();
- truncdfsf_test();
+ convert_dfsf_test();
+ convert_sfdf_test();
#ifndef NO_LONG_DOUBLE
ldouble_test ();
- trunctfsf_test();
- trunctfdf_test();
+ convert_tfsf_test();
+ convert_sftf_test();
+ convert_tfdf_test();
+ convert_dftf_test();
#endif
return errors != 0;
diff --git a/libc/math/libm-test.inc b/libc/math/libm-test.inc
index 851f1beaf..fe85bb9f1 100644
--- a/libc/math/libm-test.inc
+++ b/libc/math/libm-test.inc
@@ -6198,7 +6198,8 @@ static const struct test_c_c_data cexp_test_data[] =
TEST_c_c (cexp, plus_infty, qnan_value, plus_infty, qnan_value),
- TEST_c_c (cexp, qnan_value, 0.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
+ TEST_c_c (cexp, qnan_value, 0.0, qnan_value, 0.0),
+ TEST_c_c (cexp, qnan_value, minus_zero, qnan_value, minus_zero),
TEST_c_c (cexp, qnan_value, 1.0, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
TEST_c_c (cexp, qnan_value, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION_OK),
@@ -7066,11 +7067,51 @@ static const struct test_c_c_data cproj_test_data[] =
TEST_c_c (cproj, qnan_value, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_zero, qnan_value, plus_zero, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, qnan_value, plus_zero, qnan_value, plus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, qnan_value, minus_zero, qnan_value, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, 1.0, qnan_value, 1.0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, -1.0, qnan_value, -1.0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, qnan_value, 1.0, qnan_value, 1.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, qnan_value, -1.0, qnan_value, -1.0, NO_INEXACT_EXCEPTION),
+
TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
TEST_c_c (cproj, minus_infty, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_infty, plus_zero, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_infty, minus_zero, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, plus_zero, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, minus_zero, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, plus_zero, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_zero, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, plus_infty, 1.0, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_infty, -1.0, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, 1.0, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, -1.0, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, 1.0, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, 1.0, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, -1.0, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, -1.0, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, plus_infty, qnan_value, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_infty, -qnan_value, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, qnan_value, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, -qnan_value, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, qnan_value, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, qnan_value, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, -qnan_value, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, -qnan_value, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+
TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0, NO_INEXACT_EXCEPTION),
TEST_c_c (cproj, 2.0, 3.0, 2.0, 3.0, NO_INEXACT_EXCEPTION),
};
@@ -8104,33 +8145,37 @@ fabs_test (void)
static const struct test_ff_f_data fdim_test_data[] =
{
- TEST_ff_f (fdim, 0, 0, 0, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, 9, 0, 9, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, 0, 9, 0, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, -9, 0, 0, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, 0, -9, 9, NO_INEXACT_EXCEPTION),
-
- TEST_ff_f (fdim, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, minus_infty, 9, 0, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, minus_infty, -9, 0, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, 9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, -9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, 9, plus_infty, 0, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, -9, plus_infty, 0, NO_INEXACT_EXCEPTION),
-
- TEST_ff_f (fdim, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION),
- TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
-
- TEST_ff_f (fdim, plus_infty, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, 9, 0, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, 0, 9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, -9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, 0, -9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+
+ TEST_ff_f (fdim, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, minus_infty, 9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, minus_infty, -9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, 9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, -9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, 9, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, -9, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+
+ TEST_ff_f (fdim, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+
+ TEST_ff_f (fdim, plus_infty, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, plus_infty, minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, minus_infty, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_ff_f (fdim, minus_infty, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
};
static void
@@ -9868,8 +9913,14 @@ static const struct test_if_f_data jn_test_data[] =
TEST_if_f (jn, 8, 2.4048255576957729L, 0.92165786705344923232879022467054148E-4L),
TEST_if_f (jn, 9, 2.4048255576957729L, 0.12517270977961513005428966643852564E-4L),
- /* Bug 14155: spurious exception may occur. */
- TEST_if_f (jn, 2, 0x1.ffff62p+99L, -4.43860668048170034334926693188979974489e-16L, UNDERFLOW_EXCEPTION_OK),
+ TEST_if_f (jn, 2, 0x1.ffff62p+99L, -4.43860668048170034334926693188979974489e-16L),
+ TEST_if_f (jn, 2, 0x1p127L, -6.0784021821505059176832624052765568656702e-20L),
+#ifndef TEST_FLOAT
+ TEST_if_f (jn, 2, 0x1p1023L, 1.5665258060609012834424478437196679802783e-155L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_if_f (jn, 2, 0x1p16383L, -9.5859502826270374691362975419147645151233e-2467L),
+#endif
};
static void
@@ -9927,6 +9978,61 @@ static const struct test_f_f1_data lgamma_test_data[] =
TEST_f_f1 (lgamma, -0.5, M_LOG_2_SQRT_PIl, -1),
TEST_f_f1 (lgamma, 0.7L, 0.260867246531666514385732417016759578L, 1),
TEST_f_f1 (lgamma, 1.2L, -0.853740900033158497197028392998854470e-1L, 1),
+
+ TEST_f_f1 (lgamma, 0x1p-5L, 3.4484891277979584796832693452686366085801e+00L, 1),
+ TEST_f_f1 (lgamma, -0x1p-5L, 3.4845895751341394376217526729956836492792e+00L, -1),
+ TEST_f_f1 (lgamma, 0x1p-10L, 6.9309089024194618895406190646600805357273e+00L, 1),
+ TEST_f_f1 (lgamma, -0x1p-10L, 6.9320362775113082175565786721095494761582e+00L, -1),
+ TEST_f_f1 (lgamma, 0x1p-15L, 1.0397190093941001762077888432721419773538e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-15L, 1.0397225324389321751118257981741350715545e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-20L, 1.3862943060723899573457963336920089012399e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-20L, 1.3862944161675408862049886226750366625112e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-25L, 1.7328679496796266133304874243201700664713e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-25L, 1.7328679531201000798551671833865469674673e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-30L, 2.0794415416260785304085859198055798098863e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-30L, 2.0794415417335933262374820960532606449975e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-40L, 2.7725887222397287402100277256545578941303e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-40L, 2.7725887222398337351278293820766115529596e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-50L, 3.4657359027997264958191108994508978906983e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-50L, 3.4657359027997265983532103151309975524744e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-60L, 4.1588830833596718564533272505187468598519e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-60L, 4.1588830833596718565534582069793719571779e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-64L, 4.4361419555836499802671564849429355013920e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-64L, 4.4361419555836499802734146697217245699749e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-70L, 4.8520302639196171659205759581386516869302e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-70L, 4.8520302639196171659206737422758202661268e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-100L, 6.9314718055994530941723212145817201464678e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-100L, 6.9314718055994530941723212145818112150422e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-126L, 8.7336544750553108986571247303730247577506e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-126L, 8.7336544750553108986571247303730247577520e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-149L, 1.0327892990343185110316758609726830864325e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-149L, 1.0327892990343185110316758609726830864325e+02L, -1),
+#ifndef TEST_FLOAT
+ TEST_f_f1 (lgamma, 0x1p-200L, 1.3862943611198906188344642429163531361510e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-200L, 1.3862943611198906188344642429163531361510e+02L, -1),
+ TEST_f_f1 (lgamma, 0x1p-500L, 3.4657359027997265470861606072908828403775e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-500L, 3.4657359027997265470861606072908828403775e+02L, -1),
+ TEST_f_f1 (lgamma, 0x1p-1000L, 6.9314718055994530941723212145817656807550e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-1000L, 6.9314718055994530941723212145817656807550e+02L, -1),
+ TEST_f_f1 (lgamma, 0x1p-1022L, 7.0839641853226410622441122813025645257316e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-1022L, 7.0839641853226410622441122813025645257316e+02L, -1),
+ TEST_f_f1 (lgamma, 0x1p-1074L, 7.4444007192138126231410729844608163411309e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-1074L, 7.4444007192138126231410729844608163411309e+02L, -1),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_f_f1 (lgamma, 0x1p-5000L, 3.4657359027997265470861606072908828403775e+03L, 1),
+ TEST_f_f1 (lgamma, -0x1p-5000L, 3.4657359027997265470861606072908828403775e+03L, -1),
+ TEST_f_f1 (lgamma, 0x1p-10000L, 6.9314718055994530941723212145817656807550e+03L, 1),
+ TEST_f_f1 (lgamma, -0x1p-10000L, 6.9314718055994530941723212145817656807550e+03L, -1),
+ TEST_f_f1 (lgamma, 0x1p-16382L, 1.1355137111933024058873096613727848538213e+04L, 1),
+ TEST_f_f1 (lgamma, -0x1p-16382L, 1.1355137111933024058873096613727848538213e+04L, -1),
+ TEST_f_f1 (lgamma, 0x1p-16445L, 1.1398805384308300613366382237379713662002e+04L, 1),
+ TEST_f_f1 (lgamma, -0x1p-16445L, 1.1398805384308300613366382237379713662002e+04L, -1),
+# if LDBL_MANT_DIG >= 113
+ TEST_f_f1 (lgamma, 0x1p-16494L, 1.1432769596155737933527826611331164313837e+04L, 1),
+ TEST_f_f1 (lgamma, -0x1p-16494L, 1.1432769596155737933527826611331164313837e+04L, -1),
+# endif
+#endif
};
static void
@@ -14486,6 +14592,15 @@ static const struct test_if_f_data yn_test_data[] =
/* Check whether yn returns correct value for LDBL_MIN, DBL_MIN,
and FLT_MIN. See Bug 14173. */
TEST_if_f (yn, 10, min_value, minus_infty, OVERFLOW_EXCEPTION|ERRNO_ERANGE),
+
+ TEST_if_f (yn, 2, 0x1.ffff62p+99L, -5.5244413477397111790415387179517953221757e-16L),
+ TEST_if_f (yn, 2, 0x1p127L, 6.8569250690166637098111268958532649249771e-21L),
+#ifndef TEST_FLOAT
+ TEST_if_f (yn, 2, 0x1p1023L, -8.2687542933709649327986678723012001545638e-155L),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+ TEST_if_f (yn, 2, 0x1p16383L, 3.8895531955766020648617743624167352352217e-2467L),
+#endif
};
static void
diff --git a/libc/math/s_cexp.c b/libc/math/s_cexp.c
index 655e4e8de..40e0e518d 100644
--- a/libc/math/s_cexp.c
+++ b/libc/math/s_cexp.c
@@ -145,12 +145,18 @@ __cexp (__complex__ double x)
}
else
{
- /* If the real part is NaN the result is NaN + iNaN. */
+ /* If the real part is NaN the result is NaN + iNaN unless the
+ imaginary part is zero. */
__real__ retval = __nan ("");
- __imag__ retval = __nan ("");
+ if (icls == FP_ZERO)
+ __imag__ retval = __imag__ x;
+ else
+ {
+ __imag__ retval = __nan ("");
- if (rcls != FP_NAN || icls != FP_NAN)
- feraiseexcept (FE_INVALID);
+ if (rcls != FP_NAN || icls != FP_NAN)
+ feraiseexcept (FE_INVALID);
+ }
}
return retval;
diff --git a/libc/math/s_cexpf.c b/libc/math/s_cexpf.c
index fa942d34f..7c4220516 100644
--- a/libc/math/s_cexpf.c
+++ b/libc/math/s_cexpf.c
@@ -145,12 +145,18 @@ __cexpf (__complex__ float x)
}
else
{
- /* If the real part is NaN the result is NaN + iNaN. */
+ /* If the real part is NaN the result is NaN + iNaN unless the
+ imaginary part is zero. */
__real__ retval = __nanf ("");
- __imag__ retval = __nanf ("");
+ if (icls == FP_ZERO)
+ __imag__ retval = __imag__ x;
+ else
+ {
+ __imag__ retval = __nanf ("");
- if (rcls != FP_NAN || icls != FP_NAN)
- feraiseexcept (FE_INVALID);
+ if (rcls != FP_NAN || icls != FP_NAN)
+ feraiseexcept (FE_INVALID);
+ }
}
return retval;
diff --git a/libc/math/s_cexpl.c b/libc/math/s_cexpl.c
index d827bc3de..0c3560336 100644
--- a/libc/math/s_cexpl.c
+++ b/libc/math/s_cexpl.c
@@ -145,12 +145,18 @@ __cexpl (__complex__ long double x)
}
else
{
- /* If the real part is NaN the result is NaN + iNaN. */
+ /* If the real part is NaN the result is NaN + iNaN unless the
+ imaginary part is zero. */
__real__ retval = __nanl ("");
- __imag__ retval = __nanl ("");
+ if (icls == FP_ZERO)
+ __imag__ retval = __imag__ x;
+ else
+ {
+ __imag__ retval = __nanl ("");
- if (rcls != FP_NAN || icls != FP_NAN)
- feraiseexcept (FE_INVALID);
+ if (rcls != FP_NAN || icls != FP_NAN)
+ feraiseexcept (FE_INVALID);
+ }
}
return retval;
diff --git a/libc/math/s_cproj.c b/libc/math/s_cproj.c
index c0be4618d..98f1a4c4b 100644
--- a/libc/math/s_cproj.c
+++ b/libc/math/s_cproj.c
@@ -24,9 +24,7 @@
__complex__ double
__cproj (__complex__ double x)
{
- if (isnan (__real__ x) && isnan (__imag__ x))
- return x;
- else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
+ if (__isinf_ns (__real__ x) || __isinf_ns (__imag__ x))
{
__complex__ double res;
diff --git a/libc/math/s_cprojf.c b/libc/math/s_cprojf.c
index 188bbe3be..e4dbc181b 100644
--- a/libc/math/s_cprojf.c
+++ b/libc/math/s_cprojf.c
@@ -24,9 +24,7 @@
__complex__ float
__cprojf (__complex__ float x)
{
- if (isnan (__real__ x) && isnan (__imag__ x))
- return x;
- else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
+ if (__isinf_nsf (__real__ x) || __isinf_nsf (__imag__ x))
{
__complex__ float res;
diff --git a/libc/math/s_cprojl.c b/libc/math/s_cprojl.c
index fbdf2797e..b564a83e6 100644
--- a/libc/math/s_cprojl.c
+++ b/libc/math/s_cprojl.c
@@ -24,9 +24,7 @@
__complex__ long double
__cprojl (__complex__ long double x)
{
- if (isnan (__real__ x) && isnan (__imag__ x))
- return x;
- else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
+ if (__isinf_nsl (__real__ x) || __isinf_nsl (__imag__ x))
{
__complex__ long double res;
diff --git a/libc/math/s_fdim.c b/libc/math/s_fdim.c
index 2f97948b2..f8fd80490 100644
--- a/libc/math/s_fdim.c
+++ b/libc/math/s_fdim.c
@@ -26,16 +26,16 @@ __fdim (double x, double y)
int clsx = fpclassify (x);
int clsy = fpclassify (y);
- if (clsx == FP_NAN || clsy == FP_NAN
- || (y < 0 && clsx == FP_INFINITE && clsy == FP_INFINITE))
- /* Raise invalid flag. */
+ if (clsx == FP_NAN || clsy == FP_NAN)
+ /* Raise invalid flag for signaling but not quiet NaN. */
return x - y;
if (x <= y)
return 0.0;
double r = x - y;
- if (fpclassify (r) == FP_INFINITE)
+ if (fpclassify (r) == FP_INFINITE
+ && clsx != FP_INFINITE && clsy != FP_INFINITE)
__set_errno (ERANGE);
return r;
diff --git a/libc/math/s_fdimf.c b/libc/math/s_fdimf.c
index 03810b572..86efe6ef2 100644
--- a/libc/math/s_fdimf.c
+++ b/libc/math/s_fdimf.c
@@ -26,16 +26,16 @@ __fdimf (float x, float y)
int clsx = fpclassify (x);
int clsy = fpclassify (y);
- if (clsx == FP_NAN || clsy == FP_NAN
- || (y < 0 && clsx == FP_INFINITE && clsy == FP_INFINITE))
- /* Raise invalid flag. */
+ if (clsx == FP_NAN || clsy == FP_NAN)
+ /* Raise invalid flag for signaling but not quiet NaN. */
return x - y;
if (x <= y)
return 0.0f;
float r = x - y;
- if (fpclassify (r) == FP_INFINITE)
+ if (fpclassify (r) == FP_INFINITE
+ && clsx != FP_INFINITE && clsy != FP_INFINITE)
__set_errno (ERANGE);
return r;
diff --git a/libc/math/s_fdiml.c b/libc/math/s_fdiml.c
index 56045329a..030fcc22e 100644
--- a/libc/math/s_fdiml.c
+++ b/libc/math/s_fdiml.c
@@ -26,16 +26,16 @@ __fdiml (long double x, long double y)
int clsx = fpclassify (x);
int clsy = fpclassify (y);
- if (clsx == FP_NAN || clsy == FP_NAN
- || (y < 0 && clsx == FP_INFINITE && clsy == FP_INFINITE))
- /* Raise invalid flag. */
+ if (clsx == FP_NAN || clsy == FP_NAN)
+ /* Raise invalid flag for signaling but not quiet NaN. */
return x - y;
if (x <= y)
return 0.0f;
long double r = x - y;
- if (fpclassify (r) == FP_INFINITE)
+ if (fpclassify (r) == FP_INFINITE
+ && clsx != FP_INFINITE && clsy != FP_INFINITE)
__set_errno (ERANGE);
return r;
diff --git a/libc/nis/nis_print.c b/libc/nis/nis_print.c
index d24dcdec2..e872b2067 100644
--- a/libc/nis/nis_print.c
+++ b/libc/nis/nis_print.c
@@ -290,7 +290,7 @@ nis_print_link (const link_obj *obj)
fputs (_("Linked Object Type : "), stdout);
nis_print_objtype (obj->li_rtype);
printf (_("Linked to : %s\n"), obj->li_name);
- /* XXX Print the attributs here, if they exists */
+ /* XXX Print the attributes here, if they exists */
}
libnsl_hidden_def (nis_print_link)
diff --git a/libc/nis/nss_nis/nis-publickey.c b/libc/nis/nss_nis/nis-publickey.c
index 6870e095c..244e46497 100644
--- a/libc/nis/nss_nis/nis-publickey.c
+++ b/libc/nis/nss_nis/nis-publickey.c
@@ -25,7 +25,7 @@
#include <rpcsvc/yp.h>
#include <rpcsvc/ypclnt.h>
#include <rpc/key_prot.h>
-extern int xdecrypt (char *, char *);
+#include <rpc/des_crypt.h>
#include "nss-nis.h"
diff --git a/libc/nis/rpcsvc/nis.h b/libc/nis/rpcsvc/nis.h
index 5c5c7bb41..933c4d9da 100644
--- a/libc/nis/rpcsvc/nis.h
+++ b/libc/nis/rpcsvc/nis.h
@@ -470,7 +470,7 @@ typedef struct fd_result fd_result;
#define NIS_NOBODY(a, m) (((a) & ((m) << 24)) != 0)
/*
* EOL Alert - The following non-prefixed test macros are
- * here for backward compatability, and will be not be present
+ * here for backward compatibility, and will be not be present
* in future releases - use the NIS_*() macros above.
*/
#define WORLD(a, m) (((a) & (m)) != 0)
diff --git a/libc/nptl/ChangeLog b/libc/nptl/ChangeLog
index eae507965..90824aec9 100644
--- a/libc/nptl/ChangeLog
+++ b/libc/nptl/ChangeLog
@@ -1,3 +1,26 @@
+2013-09-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/x86_64/cancellation.S
+ [SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
+ [SHARED && !NO_HIDDEN].
+
+2013-09-03 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #15921]
+ * tst-cleanup2.c (do_test): New volatile variable RET to
+ return success.
+
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/pthread/pthread.h: Fix typos.
+ * sysdeps/unix/sysv/linux/internaltypes.h: Likewise.
+ * tst-cancel4.c: Likewise.
+
+2013-08-21 Ondřej Bílka <neleai@seznam.cz>
+
+ * pthread_getschedparam.c: Fix typos.
+ * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
+
2013-07-23 David S. Miller <davem@davemloft.net>
* tst-cancel4.c (WRITE_BUFFER_SIZE): Adjust comment.
diff --git a/libc/nptl/pthread_getschedparam.c b/libc/nptl/pthread_getschedparam.c
index fd71350f3..7d996e4f8 100644
--- a/libc/nptl/pthread_getschedparam.c
+++ b/libc/nptl/pthread_getschedparam.c
@@ -40,7 +40,7 @@ __pthread_getschedparam (threadid, policy, param)
lll_lock (pd->lock, LLL_PRIVATE);
/* The library is responsible for maintaining the values at all
- times. If the user uses a interface other than
+ times. If the user uses an interface other than
pthread_setschedparam to modify the scheduler setting it is not
the library's problem. In case the descriptor's values have
not yet been retrieved do it now. */
diff --git a/libc/nptl/sysdeps/pthread/pthread.h b/libc/nptl/sysdeps/pthread/pthread.h
index 61d534687..b58f60e4d 100644
--- a/libc/nptl/sysdeps/pthread/pthread.h
+++ b/libc/nptl/sysdeps/pthread/pthread.h
@@ -1034,13 +1034,13 @@ extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
int __pshared) __THROW __nonnull ((1));
#ifdef __USE_XOPEN2K
-/* Get the clock selected for the conditon variable attribute ATTR. */
+/* Get the clock selected for the condition variable attribute ATTR. */
extern int pthread_condattr_getclock (const pthread_condattr_t *
__restrict __attr,
__clockid_t *__restrict __clock_id)
__THROW __nonnull ((1, 2));
-/* Set the clock selected for the conditon variable attribute ATTR. */
+/* Set the clock selected for the condition variable attribute ATTR. */
extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
__clockid_t __clock_id)
__THROW __nonnull ((1));
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/internaltypes.h b/libc/nptl/sysdeps/unix/sysv/linux/internaltypes.h
index 699a6187c..a7ee3fefe 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/internaltypes.h
+++ b/libc/nptl/sysdeps/unix/sysv/linux/internaltypes.h
@@ -66,7 +66,7 @@ struct pthread_condattr
{
/* Combination of values:
- Bit 0 : flag whether coditional variable will be shareable between
+ Bit 0 : flag whether conditional variable will be sharable between
processes.
Bit 1-7: clock ID. */
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/register-atfork.c b/libc/nptl/sysdeps/unix/sysv/linux/register-atfork.c
index 7d53708d9..20a09e24d 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/register-atfork.c
+++ b/libc/nptl/sysdeps/unix/sysv/linux/register-atfork.c
@@ -127,7 +127,7 @@ libc_freeres_fn (free_mem)
/* No more fork handlers. */
__fork_handlers = NULL;
- /* Free eventually alloated memory blocks for the object pool. */
+ /* Free eventually allocated memory blocks for the object pool. */
struct fork_handler_pool *runp = fork_handler_pool.next;
memset (&fork_handler_pool, '\0', sizeof (fork_handler_pool));
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S b/libc/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
index 2cc84c189..b4e4dcf90 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+++ b/libc/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
@@ -22,7 +22,7 @@
#include "lowlevellock.h"
#ifdef IS_IN_libpthread
-# if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
+# if defined SHARED && !defined NO_HIDDEN
# define __pthread_unwind __GI___pthread_unwind
# endif
#else
diff --git a/libc/nptl/tst-cancel4.c b/libc/nptl/tst-cancel4.c
index 6d25e48f1..6ef654a40 100644
--- a/libc/nptl/tst-cancel4.c
+++ b/libc/nptl/tst-cancel4.c
@@ -83,7 +83,7 @@ static pthread_barrier_t b2;
# define IPC_ADDVAL 0
#endif
-/* The WRITE_BUFFER_SIZE value needs to be choosen such that if we set
+/* The WRITE_BUFFER_SIZE value needs to be chosen such that if we set
the socket send buffer size to '1', a write of this size on that
socket will block.
diff --git a/libc/nptl/tst-cleanup2.c b/libc/nptl/tst-cleanup2.c
index 5bd16095a..65af0f201 100644
--- a/libc/nptl/tst-cleanup2.c
+++ b/libc/nptl/tst-cleanup2.c
@@ -34,6 +34,12 @@ static int
do_test (void)
{
char *p = NULL;
+ /* gcc can overwrite the success written value by scheduling instructions
+ around sprintf. It is allowed to do this since according to C99 the first
+ argument of sprintf is a character array and NULL is not a valid character
+ array. Mark the return value as volatile so that it gets reloaded on
+ return. */
+ volatile int ret = 0;
struct sigaction sa;
sa.sa_handler = sig_handler;
@@ -50,7 +56,7 @@ do_test (void)
if (setjmp (jmpbuf))
{
puts ("Exiting main...");
- return 0;
+ return ret;
}
sprintf (p, "This should segv\n");
diff --git a/libc/nscd/aicache.c b/libc/nscd/aicache.c
index 23dcf80af..fd55852ed 100644
--- a/libc/nscd/aicache.c
+++ b/libc/nscd/aicache.c
@@ -25,6 +25,7 @@
#include <time.h>
#include <unistd.h>
#include <sys/mman.h>
+#include <resolv/res_hconf.h>
#include "dbg_log.h"
#include "nscd.h"
@@ -100,8 +101,11 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
no_more = __nss_database_lookup ("hosts", NULL,
"dns [!UNAVAIL=return] files", &nip);
+ /* Initialize configurations. */
+ if (__glibc_unlikely (!_res_hconf.initialized))
+ _res_hconf_init ();
if (__res_maybe_init (&_res, 0) == -1)
- no_more = 1;
+ no_more = 1;
/* If we are looking for both IPv4 and IPv6 address we don't want
the lookup functions to automatically promote IPv4 addresses to
diff --git a/libc/nss/nss_files/files-key.c b/libc/nss/nss_files/files-key.c
index 96deac231..4b2cf24ea 100644
--- a/libc/nss/nss_files/files-key.c
+++ b/libc/nss/nss_files/files-key.c
@@ -21,13 +21,11 @@
#include <string.h>
#include <netdb.h>
#include <rpc/key_prot.h>
+#include <rpc/des_crypt.h>
#include "nsswitch.h"
#define DATAFILE "/etc/publickey"
-/* Prototype for function in xcyrpt.c. */
-extern int xdecrypt (char *, char *);
-
static enum nss_status
search (const char *netname, char *result, int *errnop, int secret)
diff --git a/libc/po/ca.po b/libc/po/ca.po
index fa4422ddc..cea3c70b7 100644
--- a/libc/po/ca.po
+++ b/libc/po/ca.po
@@ -47,9 +47,9 @@
# bonic, excepte quan quede realment horrend o porte a confusió).
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.17-pre1\n"
-"POT-Creation-Date: 2012-12-07 15:10-0500\n"
-"PO-Revision-Date: 2013-01-01 14:00+0100\n"
+"Project-Id-Version: libc 2.17.90.20130724\n"
+"POT-Creation-Date: 2013-07-24 23:29-0700\n"
+"PO-Revision-Date: 2013-08-16 01:07+0200\n"
"Last-Translator: Ivan Vilata i Balaguer <ivan@selidor.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"Language: ca\n"
@@ -107,34 +107,44 @@ msgstr "Mostra aquest llistat d’ajuda."
msgid "Give a short usage message"
msgstr "Mostra un missatge breu amb la forma d’ús."
-#: argp/argp-parse.c:103
+#: 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:115
+#: nss/makedb.c:120
+msgid "NAME"
+msgstr "NOM"
+
+#: argp/argp-parse.c:104
msgid "Set the program name"
msgstr "Estableix el nom del programa."
+#: argp/argp-parse.c:105
+msgid "SECS"
+msgstr "SEGONS"
+
# ivb (2002/10/21)
# ivb La cadena «SECS» no està traduïda en l'estructura d'opcions.
-#: argp/argp-parse.c:105
+#: argp/argp-parse.c:106
msgid "Hang for SECS seconds (default 3600)"
msgstr "Espera durant un nombre de segons (3600 per defecte)."
-#: argp/argp-parse.c:166
+#: argp/argp-parse.c:167
msgid "Print program version"
msgstr "Mostra la versió del programa."
-#: argp/argp-parse.c:182
+#: argp/argp-parse.c:183
msgid "(PROGRAM ERROR) No version known!?"
msgstr "(ERROR DEL PROGRAMA) No es coneix cap versió!?"
-#: argp/argp-parse.c:622
+#: argp/argp-parse.c:623
#, c-format
msgid "%s: Too many arguments\n"
msgstr "%s: Sobren arguments\n"
-#: argp/argp-parse.c:765
+#: argp/argp-parse.c:766
msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(ERROR DEL PROGRAMA) L’opció hauria d’haver estat reconeguda!?"
-#: assert/assert-perr.c:36
+#: assert/assert-perr.c:35
#, c-format
msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
msgstr "%s%s%s:%u: %s%sError inesperat: %s.\n"
@@ -148,10 +158,6 @@ msgstr ""
"%s%s%s:%u: %s%sL’asserció «%s» ha fallat.\n"
"%n"
-#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:115 nss/makedb.c:119
-msgid "NAME"
-msgstr "NOM"
-
# Més ajudes. ivb
#: catgets/gencat.c:110
msgid "Create C header file NAME containing symbol definitions"
@@ -161,7 +167,7 @@ msgstr "Crea el fitxer capçalera C NOM que contindrà les definicions de símbo
msgid "Do not use existing catalog, force new output file"
msgstr "No empra el catàleg existent, i crea un nou fitxer d’eixida."
-#: catgets/gencat.c:113 nss/makedb.c:119
+#: catgets/gencat.c:113 nss/makedb.c:120
msgid "Write output to file NAME"
msgstr "Escriu l’eixida al fitxer NOM."
@@ -185,11 +191,11 @@ msgstr ""
"[FITXER_EIXIDA [FITXER_ENTRADA]…]"
# L’adreça es veu millor així. ivb
-#: catgets/gencat.c:235 debug/pcprofiledump.c:208 elf/ldconfig.c:302
-#: elf/pldd.c:222 elf/sln.c:85 elf/sprof.c:371 iconv/iconv_prog.c:408
-#: iconv/iconvconfig.c:383 locale/programs/locale.c:279
-#: locale/programs/localedef.c:363 login/programs/pt_chown.c:88
-#: malloc/memusagestat.c:536 nscd/nscd.c:459 nss/getent.c:965 nss/makedb.c:371
+#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307
+#: elf/pldd.c:219 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:277
+#: locale/programs/localedef.c:364 login/programs/pt_chown.c:88
+#: malloc/memusagestat.c:563 nscd/nscd.c:450 nss/getent.c:965 nss/makedb.c:369
#: posix/getconf.c:1121 sunrpc/rpcinfo.c:691
#: sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
@@ -200,12 +206,12 @@ msgstr ""
"Per a obtenir instruccions sobre com informar d’un error, vegeu\n"
"<%s>.\n"
-#: catgets/gencat.c:251 debug/pcprofiledump.c:224 debug/xtrace.sh:64
-#: elf/ldconfig.c:318 elf/ldd.bash.in:38 elf/pldd.c:238 elf/sotruss.ksh:75
-#: elf/sprof.c:388 iconv/iconv_prog.c:425 iconv/iconvconfig.c:400
-#: locale/programs/locale.c:296 locale/programs/localedef.c:389
+#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:235 elf/sotruss.ksh:75
+#: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396
+#: locale/programs/locale.c:294 locale/programs/localedef.c:390
#: login/programs/pt_chown.c:62 malloc/memusage.sh:71
-#: malloc/memusagestat.c:552 nscd/nscd.c:475 nss/getent.c:86 nss/makedb.c:387
+#: malloc/memusagestat.c:579 nscd/nscd.c:466 nss/getent.c:86 nss/makedb.c:385
#: posix/getconf.c:1103 sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
msgid ""
@@ -218,102 +224,102 @@ msgstr ""
"de còpia. No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o\n"
"ADEQUACIÓ PER A UN PROPÒSIT PARTICULAR.\n"
-#: catgets/gencat.c:256 debug/pcprofiledump.c:229 debug/xtrace.sh:68
-#: elf/ldconfig.c:323 elf/pldd.c:243 elf/sprof.c:394 iconv/iconv_prog.c:430
-#: iconv/iconvconfig.c:405 locale/programs/locale.c:301
-#: locale/programs/localedef.c:394 malloc/memusage.sh:75
-#: malloc/memusagestat.c:557 nscd/nscd.c:480 nss/getent.c:91 nss/makedb.c:392
+#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
+#: elf/ldconfig.c:328 elf/pldd.c:240 elf/sprof.c:395 iconv/iconv_prog.c:430
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:299
+#: locale/programs/localedef.c:395 malloc/memusage.sh:75
+#: malloc/memusagestat.c:584 nscd/nscd.c:471 nss/getent.c:91 nss/makedb.c:390
#: posix/getconf.c:1108
#, c-format
msgid "Written by %s.\n"
msgstr "Escrit per %s.\n"
-#: catgets/gencat.c:287
+#: catgets/gencat.c:281
msgid "*standard input*"
msgstr "*entrada estàndard*"
-#: catgets/gencat.c:293 iconv/iconv_charmap.c:169 iconv/iconv_prog.c:293
-#: nss/makedb.c:248
+#: catgets/gencat.c:287 iconv/iconv_charmap.c:167 iconv/iconv_prog.c:293
+#: nss/makedb.c:246
#, c-format
msgid "cannot open input file `%s'"
msgstr "no s’ha pogut obrir el fitxer d’entrada «%s»"
-#: catgets/gencat.c:422 catgets/gencat.c:497
+#: catgets/gencat.c:416 catgets/gencat.c:491
msgid "illegal set number"
msgstr "el número de joc de missatges no és vàlid"
-#: catgets/gencat.c:449
+#: catgets/gencat.c:443
msgid "duplicate set definition"
msgstr "la definició del joc de missatges és duplicada"
-#: catgets/gencat.c:451 catgets/gencat.c:623 catgets/gencat.c:675
+#: catgets/gencat.c:445 catgets/gencat.c:617 catgets/gencat.c:669
msgid "this is the first definition"
msgstr "aquesta és la primera definició"
-#: catgets/gencat.c:522
+#: catgets/gencat.c:516
#, c-format
msgid "unknown set `%s'"
msgstr "el joc de missatges «%s» no és conegut"
-#: catgets/gencat.c:563
+#: catgets/gencat.c:557
msgid "invalid quote character"
msgstr "el caràcter de citació no és vàlid"
-#: catgets/gencat.c:576
+#: catgets/gencat.c:570
#, c-format
msgid "unknown directive `%s': line ignored"
msgstr "la directiva «%s» no és coneguda: es descarta la línia"
-#: catgets/gencat.c:621
+#: catgets/gencat.c:615
msgid "duplicated message number"
msgstr "el número de missatge és duplicat"
-#: catgets/gencat.c:672
+#: catgets/gencat.c:666
msgid "duplicated message identifier"
msgstr "l’identificador de missatge és duplicat"
-#: catgets/gencat.c:729
+#: catgets/gencat.c:723
msgid "invalid character: message ignored"
msgstr "el caràcter no és vàlid: es descarta el missatge"
-#: catgets/gencat.c:772
+#: catgets/gencat.c:766
msgid "invalid line"
msgstr "la línia no és vàlida"
-#: catgets/gencat.c:826
+#: catgets/gencat.c:820
msgid "malformed line ignored"
msgstr "es descarta la línia en mal estat"
-#: catgets/gencat.c:990 catgets/gencat.c:1031
+#: catgets/gencat.c:984 catgets/gencat.c:1025
#, c-format
msgid "cannot open output file `%s'"
msgstr "no s’ha pogut obrir el fitxer d’eixida «%s»"
-#: catgets/gencat.c:1193 locale/programs/linereader.c:559
+#: catgets/gencat.c:1187 locale/programs/linereader.c:560
msgid "invalid escape sequence"
msgstr "la seqüència d’escapada no és vàlida"
-#: catgets/gencat.c:1215
+#: catgets/gencat.c:1209
msgid "unterminated message"
msgstr "el missatge no està acabat"
-#: catgets/gencat.c:1239
+#: catgets/gencat.c:1233
#, c-format
msgid "while opening old catalog file"
msgstr "en obrir el fitxer antic de catàleg"
-#: catgets/gencat.c:1330
+#: catgets/gencat.c:1324
#, c-format
msgid "conversion modules not available"
msgstr "els mòduls de conversió no es troben disponibles"
-#: catgets/gencat.c:1356
+#: catgets/gencat.c:1350
#, c-format
msgid "cannot determine escape character"
msgstr "no s’ha pogut determinar el caràcter d’escapada"
# Més ajudes. ivb
-#: debug/pcprofiledump.c:52
+#: debug/pcprofiledump.c:53
msgid "Don't buffer output"
msgstr "No empra memòria intermèdia per a l’eixida."
@@ -325,25 +331,25 @@ msgstr "No empra memòria intermèdia per a l’eixida."
# ivb tot i que el codi del programa cada volta que fa referència a «pc»
# ivb o «PC» parla del «lowpc» i del «highpc», sempre en referència al
# ivb segment de text (codi) del programa.
-#: debug/pcprofiledump.c:57
+#: debug/pcprofiledump.c:58
msgid "Dump information generated by PC profiling."
msgstr "Bolca la informació generada en perfilar el comptador de programa."
-#: debug/pcprofiledump.c:60
+#: debug/pcprofiledump.c:61
msgid "[FILE]"
msgstr "[FITXER]"
-#: debug/pcprofiledump.c:107
+#: debug/pcprofiledump.c:108
#, c-format
msgid "cannot open input file"
msgstr "no s’ha pogut obrir el fitxer d’entrada"
-#: debug/pcprofiledump.c:114
+#: debug/pcprofiledump.c:115
#, c-format
msgid "cannot read header"
msgstr "no s’ha pogut llegir la capçalera"
-#: debug/pcprofiledump.c:178
+#: debug/pcprofiledump.c:179
#, c-format
msgid "invalid pointer size"
msgstr "la mida del punter no és vàlida"
@@ -435,69 +441,69 @@ msgstr "el paràmetre de mode no és vàlid"
# ivb (2001/11/01)
# ivb Es refereix al tipus de la biblioteca (libc{4,5,6}) -> masculí.
-#: elf/cache.c:68
+#: elf/cache.c:69
msgid "unknown"
msgstr "desconegut"
# ivb (2001/11/06)
# ivb Cal mantenir-ho curt...
-#: elf/cache.c:121
+#: elf/cache.c:126
msgid "Unknown OS"
msgstr "SO desconegut"
# ivb (2001/11/06)
# ivb Cal mantenir-ho curt...
-#: elf/cache.c:126
+#: elf/cache.c:131
#, c-format
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", ABI del SO: %s %d.%d.%d"
-#: elf/cache.c:143 elf/ldconfig.c:1309
+#: elf/cache.c:148 elf/ldconfig.c:1318
#, c-format
msgid "Can't open cache file %s\n"
msgstr "no s’ha pogut obrir el fitxer «%s» de memòria cau\n"
-#: elf/cache.c:157
+#: elf/cache.c:162
#, c-format
msgid "mmap of cache file failed.\n"
msgstr "ha fallat mmap() sobre el fitxer de memòria cau\n"
-#: elf/cache.c:161 elf/cache.c:175
+#: elf/cache.c:166 elf/cache.c:180
#, c-format
msgid "File is not a cache file.\n"
msgstr "el fitxer no és un fitxer de memòria cau\n"
# No és un error. ivb
-#: elf/cache.c:208 elf/cache.c:218
+#: elf/cache.c:213 elf/cache.c:223
#, c-format
msgid "%d libs found in cache `%s'\n"
msgstr "S’han trobat %d biblioteques a la memòria cau «%s».\n"
-#: elf/cache.c:412
+#: elf/cache.c:417
#, c-format
msgid "Can't create temporary cache file %s"
msgstr "no s’ha pogut crear el fitxer temporal de memòria cau «%s»"
-#: elf/cache.c:420 elf/cache.c:430 elf/cache.c:434 elf/cache.c:439
+#: elf/cache.c:425 elf/cache.c:435 elf/cache.c:439 elf/cache.c:444
#, c-format
msgid "Writing of cache data failed"
msgstr "no s’han pogut escriure les dades de la memòria cau"
-#: elf/cache.c:444
+#: elf/cache.c:449
#, c-format
msgid "Changing access rights of %s to %#o failed"
msgstr "no s’ha pogut canviar els drets d’accés de «%s» a %#o"
-#: elf/cache.c:449
+#: elf/cache.c:454
#, c-format
msgid "Renaming of %s to %s failed"
msgstr "no s’ha pogut reanomenar «%s» a «%s»"
-#: elf/dl-close.c:378 elf/dl-open.c:474
+#: elf/dl-close.c:384 elf/dl-open.c:470
msgid "cannot create scope list"
msgstr "no s’ha pogut crear la llista d’àmbits"
-#: elf/dl-close.c:771
+#: elf/dl-close.c:777
msgid "shared object not open"
msgstr "l’objecte compartit no és obert"
@@ -518,17 +524,17 @@ msgstr "la substitució del component cadena dinàmica és buida"
msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
msgstr "no s’ha pogut carregar l’objecte auxiliar «%s» perquè la substitució del component cadena dinàmica és buida\n"
-#: elf/dl-deps.c:483
+#: elf/dl-deps.c:479
msgid "cannot allocate dependency list"
msgstr "no s’ha pogut reservar la llista de dependències"
-#: elf/dl-deps.c:520 elf/dl-deps.c:580
+#: elf/dl-deps.c:516 elf/dl-deps.c:576
msgid "cannot allocate symbol search list"
msgstr "no s’ha pogut reservar la llista de cerca de símbols"
# ivb (2002/10/21)
# ivb LD_TRACE_PRELINKING és una variable d'entorn, no és part del filtre.
-#: elf/dl-deps.c:560
+#: elf/dl-deps.c:556
msgid "Filters not supported with LD_TRACE_PRELINKING"
msgstr "LD_TRACE_PRELINKING no permet l’ús de filtres"
@@ -552,23 +558,23 @@ msgstr "no s’han pogut mapar pàgines per a la taula «fptr»"
msgid "internal error: symidx out of range of fptr table"
msgstr "error intern: «symidx» és fora de rang respecte la taula «fptr»"
-#: elf/dl-hwcaps.c:173 elf/dl-hwcaps.c:185
+#: elf/dl-hwcaps.c:184 elf/dl-hwcaps.c:196
msgid "cannot create capability list"
msgstr "no s’ha pogut crear la llista de capacitats"
-#: elf/dl-load.c:471
+#: elf/dl-load.c:465
msgid "cannot allocate name record"
msgstr "no s’ha pogut reservar el registre de nom"
-#: elf/dl-load.c:548 elf/dl-load.c:664 elf/dl-load.c:749 elf/dl-load.c:862
+#: elf/dl-load.c:542 elf/dl-load.c:658 elf/dl-load.c:743 elf/dl-load.c:862
msgid "cannot create cache for search path"
msgstr "no s’ha pogut crear la memòria cau dels camins de cerca"
-#: elf/dl-load.c:639
+#: elf/dl-load.c:633
msgid "cannot create RUNPATH/RPATH copy"
msgstr "no s’ha pogut crear una còpia de RUNPATH o RPATH"
-#: elf/dl-load.c:735
+#: elf/dl-load.c:729
msgid "cannot create search path array"
msgstr "no s’ha pogut crear el vector de camins de cerca"
@@ -582,11 +588,11 @@ msgstr "ha fallat stat() sobre l’objecte compartit"
msgid "cannot open zero fill device"
msgstr "no s’ha pogut obrir el dispositiu de zeros"
-#: elf/dl-load.c:1059 elf/dl-load.c:2339
+#: elf/dl-load.c:1059 elf/dl-load.c:2342
msgid "cannot create shared object descriptor"
msgstr "no s’ha pogut crear el descriptor d’objecte compartit"
-#: elf/dl-load.c:1078 elf/dl-load.c:1751 elf/dl-load.c:1854
+#: elf/dl-load.c:1078 elf/dl-load.c:1755 elf/dl-load.c:1858
msgid "cannot read file data"
msgstr "no s’han pogut llegir les dades del fitxer"
@@ -618,7 +624,7 @@ msgstr "no s’ha pogut mapar un segment de l’objecte compartit"
msgid "cannot dynamically load executable"
msgstr "no s’ha pogut carregar dinàmicament l’executable"
-#: elf/dl-load.c:1383
+#: elf/dl-load.c:1383 elf/dl-load.c:1492
msgid "cannot change memory protections"
msgstr "no s’han pogut canviar les proteccions de memòria"
@@ -638,103 +644,103 @@ msgstr "ha fallat dlopen() sobre l’objecte compartit"
msgid "cannot allocate memory for program header"
msgstr "no s’ha pogut reservar memòria per a la capçalera del programa"
-#: elf/dl-load.c:1469 elf/dl-open.c:180
+#: elf/dl-load.c:1469 elf/dl-open.c:195
msgid "invalid caller"
msgstr "la biblioteca que ha fet la crida no és vàlida"
-#: elf/dl-load.c:1508
+#: elf/dl-load.c:1512
msgid "cannot enable executable stack as shared object requires"
msgstr "no s’ha pogut habilitar la pila executable a requeriment de l’objecte compartit"
-#: elf/dl-load.c:1521
+#: elf/dl-load.c:1525
msgid "cannot close file descriptor"
msgstr "no s’ha pogut tancar un descriptor de fitxer"
-#: elf/dl-load.c:1751
+#: elf/dl-load.c:1755
msgid "file too short"
msgstr "el fitxer és massa curt"
-#: elf/dl-load.c:1787
+#: elf/dl-load.c:1791
msgid "invalid ELF header"
msgstr "la capçalera ELF no és vàlida"
-#: elf/dl-load.c:1799
+#: elf/dl-load.c:1803
msgid "ELF file data encoding not big-endian"
msgstr "la codificació de les dades del fitxer ELF no és big‐endian"
-#: elf/dl-load.c:1801
+#: elf/dl-load.c:1805
msgid "ELF file data encoding not little-endian"
msgstr "la codificació de les dades del fitxer ELF no és little‐endian"
-#: elf/dl-load.c:1805
+#: elf/dl-load.c:1809
msgid "ELF file version ident does not match current one"
msgstr "la identificació de la versió del fitxer ELF no concorda amb l’actual"
# ivb (2001/11(06)
# ivb ABI = Application Binary Interface (interfície binària d'aplicació)
-#: elf/dl-load.c:1809
+#: elf/dl-load.c:1813
msgid "ELF file OS ABI invalid"
msgstr "l’ABI de sistema operatiu del fitxer ELF no és vàlida"
-#: elf/dl-load.c:1812
+#: elf/dl-load.c:1816
msgid "ELF file ABI version invalid"
msgstr "la versió de l’ABI del fitxer ELF no és vàlida"
-#: elf/dl-load.c:1815
+#: elf/dl-load.c:1819
msgid "nonzero padding in e_ident"
msgstr "el replè d’«e_ident» no conté només zeros"
-#: elf/dl-load.c:1818
+#: elf/dl-load.c:1822
msgid "internal error"
msgstr "error intern"
-#: elf/dl-load.c:1825
+#: elf/dl-load.c:1829
msgid "ELF file version does not match current one"
msgstr "la versió del fitxer ELF no concorda amb l’actual"
-#: elf/dl-load.c:1833
+#: elf/dl-load.c:1837
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "només es poden carregar els tipus ET_DYN i ET_EXEC"
# ivb (2001/11/01)
# ivb La traducció completa de «phentsize» vindria a ser: mida d'entrada
# ivb de taula de la capçalera de programa.
-#: elf/dl-load.c:1839
+#: elf/dl-load.c:1843
msgid "ELF file's phentsize not the expected size"
msgstr "el valor de «phentsize» del fitxer ELF no és l’esperat"
-#: elf/dl-load.c:2358
+#: elf/dl-load.c:2361
msgid "wrong ELF class: ELFCLASS64"
msgstr "la classe ELF no és vàlida: ELFCLASS64"
-#: elf/dl-load.c:2359
+#: elf/dl-load.c:2362
msgid "wrong ELF class: ELFCLASS32"
msgstr "la classe ELF no és vàlida: ELFCLASS32"
-#: elf/dl-load.c:2362
+#: elf/dl-load.c:2365
msgid "cannot open shared object file"
msgstr "no s’ha pogut obrir el fitxer objecte compartit"
-#: elf/dl-lookup.c:757 ports/sysdeps/mips/dl-lookup.c:774
+#: elf/dl-lookup.c:753 ports/sysdeps/mips/dl-lookup.c:771
msgid "relocation error"
msgstr "error de reubicació"
-#: elf/dl-lookup.c:786 ports/sysdeps/mips/dl-lookup.c:803
+#: elf/dl-lookup.c:780 ports/sysdeps/mips/dl-lookup.c:798
msgid "symbol lookup error"
msgstr "error en cercar el símbol"
-#: elf/dl-open.c:110
+#: elf/dl-open.c:102
msgid "cannot extend global scope"
msgstr "no s’ha pogut estendre l’àmbit global"
# ivb (2002/10/29)
# ivb TLS = Thread Local Storage
-#: elf/dl-open.c:524
+#: elf/dl-open.c:520
msgid "TLS generation counter wrapped! Please report this."
msgstr "El comptador de generació de TLS s’ha esgotat! Per favor, informeu d’açò."
# Cas general. ivb
-#: elf/dl-open.c:546
+#: elf/dl-open.c:542
msgid "cannot load any more object with static TLS"
msgstr "no es poden carregar més objectes amb el TLS estàtic"
@@ -754,32 +760,32 @@ msgstr "l’espai de noms destí de dlmopen() no és vàlid"
msgid "cannot allocate memory in static TLS block"
msgstr "no s’ha pogut reservar memòria al bloc TLS estàtic"
-#: elf/dl-reloc.c:213
+#: elf/dl-reloc.c:212
msgid "cannot make segment writable for relocation"
msgstr "no s’ha pogut fer escrivible el segment per a reubicar‐lo"
# ivb (2002/10/21)
# ivb PLT = Procedure Linkage Table, Taula d'Enllaçat de Procediments
# ivb PLTREL = tipus de reubicació usada per la PLT
-#: elf/dl-reloc.c:276
+#: elf/dl-reloc.c:275
#, c-format
msgid "%s: no PLTREL found in object %s\n"
msgstr "%s: no s’ha trobat el PLTREL de l’objecte «%s»\n"
-#: elf/dl-reloc.c:287
+#: elf/dl-reloc.c:286
#, c-format
msgid "%s: out of memory to store relocation results for %s\n"
msgstr "%s: no resta memòria per a guardar els resultats de reubicar «%s»\n"
-#: elf/dl-reloc.c:303
+#: elf/dl-reloc.c:302
msgid "cannot restore segment prot after reloc"
msgstr "no s’ha pogut restaurar la protecció del segment després de reubicar‐lo"
-#: elf/dl-reloc.c:332
+#: elf/dl-reloc.c:331
msgid "cannot apply additional memory protection after relocation"
msgstr "no s’ha pogut protegir la memòria després de reubicar"
-#: elf/dl-sym.c:163
+#: elf/dl-sym.c:153
msgid "RTLD_NEXT used in code not dynamically loaded"
msgstr "s’ha emprat RTLD_NEXT en un codi no carregat dinàmicament"
@@ -791,230 +797,230 @@ msgstr "no s’han pogut crear les estructures de dades TLS"
msgid "version lookup error"
msgstr "error en cercar la versió"
-#: elf/dl-version.c:297
+#: elf/dl-version.c:296
msgid "cannot allocate version reference table"
msgstr "no s’ha pogut reservar la taula de referències de versions"
# Més ajudes. ivb
-#: elf/ldconfig.c:140
+#: elf/ldconfig.c:141
msgid "Print cache"
msgstr "Mostra la memòria cau."
-#: elf/ldconfig.c:141
+#: elf/ldconfig.c:142
msgid "Generate verbose messages"
msgstr "Genera missatges detallats."
-#: elf/ldconfig.c:142
+#: elf/ldconfig.c:143
msgid "Don't build cache"
msgstr "No construeix la memòria cau."
-#: elf/ldconfig.c:143
+#: elf/ldconfig.c:144
msgid "Don't generate links"
msgstr "No genera enllaços."
-#: elf/ldconfig.c:144
+#: elf/ldconfig.c:145
msgid "Change to and use ROOT as root directory"
msgstr "Canvia a i empra ARREL com a directori arrel."
-#: elf/ldconfig.c:144
+#: elf/ldconfig.c:145
msgid "ROOT"
msgstr "ARREL"
-#: elf/ldconfig.c:145
+#: elf/ldconfig.c:146
msgid "CACHE"
msgstr "CACHE"
-#: elf/ldconfig.c:145
+#: elf/ldconfig.c:146
msgid "Use CACHE as cache file"
msgstr "Empra CACHE com a fitxer de memòria cau."
-#: elf/ldconfig.c:146
+#: elf/ldconfig.c:147
msgid "CONF"
msgstr "CONF"
-#: elf/ldconfig.c:146
+#: elf/ldconfig.c:147
msgid "Use CONF as configuration file"
msgstr "Empra CONF com a fitxer de configuració."
-#: elf/ldconfig.c:147
+#: elf/ldconfig.c:148
msgid "Only process directories specified on the command line. Don't build cache."
msgstr "Només processa els directoris especificats a la línia d’ordres. No construeix la memòria cau."
-#: elf/ldconfig.c:148
+#: elf/ldconfig.c:149
msgid "Manually link individual libraries."
msgstr "Per a enllaçar les biblioteques manualment."
-#: elf/ldconfig.c:149
+#: elf/ldconfig.c:150
msgid "FORMAT"
msgstr "FORMAT"
-#: elf/ldconfig.c:149
+#: elf/ldconfig.c:150
msgid "Format to use: new, old or compat (default)"
msgstr "FORMAT a emprar: «new» (nou), «old» (antic) o «compat» (compatible, per defecte)."
-#: elf/ldconfig.c:150
+#: elf/ldconfig.c:151
msgid "Ignore auxiliary cache file"
msgstr "No té en compte el fitxer de memòria cau auxilar."
-#: elf/ldconfig.c:158
+#: elf/ldconfig.c:159
msgid "Configure Dynamic Linker Run Time Bindings."
msgstr "Configura els vincles en temps d’execució de l’enllaçador dinàmic."
-#: elf/ldconfig.c:341
+#: elf/ldconfig.c:346
#, c-format
msgid "Path `%s' given more than once"
msgstr "s’ha indicat el camí «%s» més d’una volta"
-#: elf/ldconfig.c:381
+#: elf/ldconfig.c:386
#, c-format
msgid "%s is not a known library type"
msgstr "«%s» no és un tipus conegut de biblioteca"
-#: elf/ldconfig.c:409
+#: elf/ldconfig.c:414
#, c-format
msgid "Can't stat %s"
msgstr "ha fallat stat() sobre «%s»"
-#: elf/ldconfig.c:483
+#: elf/ldconfig.c:488
#, c-format
msgid "Can't stat %s\n"
msgstr "ha fallat stat() sobre «%s»\n"
-#: elf/ldconfig.c:493
+#: elf/ldconfig.c:498
#, c-format
msgid "%s is not a symbolic link\n"
msgstr "«%s» no és un enllaç simbòlic\n"
-#: elf/ldconfig.c:512
+#: elf/ldconfig.c:517
#, c-format
msgid "Can't unlink %s"
msgstr "no s’ha pogut desenllaçar «%s»"
-#: elf/ldconfig.c:518
+#: elf/ldconfig.c:523
#, c-format
msgid "Can't link %s to %s"
msgstr "no s’ha pogut crear un enllaç des de «%s» cap a «%s»"
# ivb (2001/10/28)
# ivb Es refereix a un enllaç -> masculí.
-#: elf/ldconfig.c:524
+#: elf/ldconfig.c:529
msgid " (changed)\n"
msgstr " (canviat)\n"
# ivb (2001/10/28)
# ivb Es refereix a fer o no l'enllaç, no importa el gènere.
-#: elf/ldconfig.c:526
+#: elf/ldconfig.c:531
msgid " (SKIPPED)\n"
msgstr " (SALTAT)\n"
-#: elf/ldconfig.c:581
+#: elf/ldconfig.c:586
#, c-format
msgid "Can't find %s"
msgstr "no s’ha pogut trobar «%s»"
-#: elf/ldconfig.c:597 elf/ldconfig.c:770 elf/ldconfig.c:829 elf/ldconfig.c:863
+#: elf/ldconfig.c:602 elf/ldconfig.c:775 elf/ldconfig.c:834 elf/ldconfig.c:868
#, c-format
msgid "Cannot lstat %s"
msgstr "ha fallat lstat() sobre «%s»"
-#: elf/ldconfig.c:604
+#: elf/ldconfig.c:609
#, c-format
msgid "Ignored file %s since it is not a regular file."
msgstr "es descarta el fitxer «%s» que no és un fitxer ordinari"
-#: elf/ldconfig.c:613
+#: elf/ldconfig.c:618
#, c-format
msgid "No link created since soname could not be found for %s"
msgstr "no s’ha creat l’enllaç perquè no s’ha trobat el nom d’objecte compartit de «%s»"
-#: elf/ldconfig.c:696
+#: elf/ldconfig.c:701
#, c-format
msgid "Can't open directory %s"
msgstr "no s’ha pogut obrir el directori «%s»"
-#: elf/ldconfig.c:788 elf/ldconfig.c:850 elf/readlib.c:90
+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90
#, c-format
msgid "Input file %s not found.\n"
msgstr "no s’ha trobat el fitxer d’entrada «%s»\n"
-#: elf/ldconfig.c:795
+#: elf/ldconfig.c:800
#, c-format
msgid "Cannot stat %s"
msgstr "ha fallat stat() sobre «%s»"
-#: elf/ldconfig.c:924
+#: elf/ldconfig.c:929
#, c-format
msgid "libc5 library %s in wrong directory"
msgstr "la biblioteca «%s» per a libc5 es troba en un directori incorrecte"
-#: elf/ldconfig.c:927
+#: elf/ldconfig.c:932
#, c-format
msgid "libc6 library %s in wrong directory"
msgstr "la biblioteca «%s» per a libc6 es troba en un directori incorrecte"
-#: elf/ldconfig.c:930
+#: elf/ldconfig.c:935
#, c-format
msgid "libc4 library %s in wrong directory"
msgstr "la biblioteca «%s» per a libc4 es troba en un directori incorrecte"
-#: elf/ldconfig.c:958
+#: elf/ldconfig.c:963
#, c-format
msgid "libraries %s and %s in directory %s have same soname but different type."
msgstr "les biblioteques «%s» i «%s» del directori «%s» tenen el mateix nom d’objecte compartit però diferent tipus."
-#: elf/ldconfig.c:1067
+#: elf/ldconfig.c:1072
#, c-format
msgid "Warning: ignoring configuration file that cannot be opened: %s"
msgstr "avís: es descarta el fitxer de configuració que no s’ha pogut obrir: %s"
-#: elf/ldconfig.c:1133
+#: elf/ldconfig.c:1138
#, c-format
msgid "%s:%u: bad syntax in hwcap line"
msgstr "%s:%u: la sintaxi de la línia «hwcap» no és vàlida"
-#: elf/ldconfig.c:1139
+#: elf/ldconfig.c:1144
#, c-format
msgid "%s:%u: hwcap index %lu above maximum %u"
msgstr "%s:%u: la «hwcap» amb índex %lu està sobre el màxim %u"
# La substitució final és per un nom. ivb
-#: elf/ldconfig.c:1146 elf/ldconfig.c:1154
+#: elf/ldconfig.c:1151 elf/ldconfig.c:1159
#, c-format
msgid "%s:%u: hwcap index %lu already defined as %s"
msgstr "%s:%u: la «hwcap» amb índex %lu ja ha estat definida com a «%s»"
-#: elf/ldconfig.c:1157
+#: elf/ldconfig.c:1162
#, c-format
msgid "%s:%u: duplicate hwcap %lu %s"
msgstr "%s:%u: la «hwcap» %lu amb nom «%s» està duplicada"
-#: elf/ldconfig.c:1179
+#: elf/ldconfig.c:1184
#, c-format
msgid "need absolute file name for configuration file when using -r"
msgstr "cal indicar el camí absolut del fitxer de configuració en emprar «-r»"
-#: elf/ldconfig.c:1186 locale/programs/xmalloc.c:65 malloc/obstack.c:433
-#: malloc/obstack.c:435 posix/getconf.c:1076 posix/getconf.c:1296
+#: elf/ldconfig.c:1191 locale/programs/xmalloc.c:64 malloc/obstack.c:432
+#: malloc/obstack.c:434 posix/getconf.c:1076 posix/getconf.c:1296
#, c-format
msgid "memory exhausted"
msgstr "la memòria s’ha exhaurit"
-#: elf/ldconfig.c:1218
+#: elf/ldconfig.c:1223
#, c-format
msgid "%s:%u: cannot read directory %s"
msgstr "%s:%u: no s’ha pogut llegir el directori «%s»"
-#: elf/ldconfig.c:1262
+#: elf/ldconfig.c:1267
#, c-format
msgid "relative path `%s' used to build cache"
msgstr "s’ha indicat el camí relatiu «%s» per a construir la memòria cau"
-#: elf/ldconfig.c:1288
+#: elf/ldconfig.c:1297
#, c-format
msgid "Can't chdir to /"
msgstr "no s’ha pogut canviar al directori arrel"
-#: elf/ldconfig.c:1329
+#: elf/ldconfig.c:1338
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "no s’ha pogut obrir el directori «%s» de fitxers de memòria cau\n"
@@ -1127,59 +1133,59 @@ msgid "cannot read object name"
msgstr "no s’ha pogut llegir el nom de l’objecte"
# Descripció del programa. ivb
-#: elf/pldd.c:65
+#: elf/pldd.c:62
msgid "List dynamic shared objects loaded into process."
msgstr "Llista els objectes compatits dinàmics carregats en un procés."
# Crec que el terme és suficient conegut. ivb
-#: elf/pldd.c:69
+#: elf/pldd.c:66
msgid "PID"
msgstr "PID"
-#: elf/pldd.c:100
+#: elf/pldd.c:97
#, c-format
msgid "Exactly one parameter with process ID required.\n"
msgstr "cal exactament un paràmetre amb l’identificador de procés\n"
-#: elf/pldd.c:112
+#: elf/pldd.c:109
#, c-format
msgid "invalid process ID '%s'"
msgstr "l’identificador de procés «%s» no és vàlid"
# No usa quote(). ivb
-#: elf/pldd.c:120
+#: elf/pldd.c:117
#, c-format
msgid "cannot open %s"
msgstr "no s’ha pogut obrir «%s»"
# No usa quote. ivb
-#: elf/pldd.c:145
+#: elf/pldd.c:142
#, c-format
msgid "cannot open %s/task"
msgstr "no s’ha pogut obrir «%s/task»"
# No usa quote(). ivb
-#: elf/pldd.c:148
+#: elf/pldd.c:145
#, c-format
msgid "cannot prepare reading %s/task"
msgstr "no s’ha pogut preparar la lectura de «%s/task»"
-#: elf/pldd.c:161
+#: elf/pldd.c:158
#, c-format
msgid "invalid thread ID '%s'"
msgstr "l’identificador de fil «%s» no és vàlid"
-#: elf/pldd.c:172
+#: elf/pldd.c:169
#, c-format
msgid "cannot attach to process %lu"
msgstr "no s’ha pogut associar al procés %lu"
-#: elf/pldd.c:264
+#: elf/pldd.c:261
#, c-format
msgid "cannot get information about process %lu"
msgstr "no s’ha pogut obtenir informació sobre el procés %lu"
-#: elf/pldd.c:277
+#: elf/pldd.c:274
#, c-format
msgid "process %lu is no ELF program"
msgstr "el procés %lu no pertany a un programa ELF"
@@ -1342,147 +1348,147 @@ msgid "%s: unrecognized option '%c%s'\\n"
msgstr "%s: l’opció «%c%s» no és reconeguda\\n"
# Més ajudes. ivb
-#: elf/sprof.c:76
+#: elf/sprof.c:77
msgid "Output selection:"
msgstr "Selecció de l’eixida:"
-#: elf/sprof.c:78
+#: elf/sprof.c:79
msgid "print list of count paths and their number of use"
msgstr "Mostra una llista de camins de recompte i les voltes que han estat emprats."
-#: elf/sprof.c:80
+#: elf/sprof.c:81
msgid "generate flat profile with counts and ticks"
msgstr "Genera un perfil pla amb recomptes i unitats de temps."
-#: elf/sprof.c:81
+#: elf/sprof.c:82
msgid "generate call graph"
msgstr "Genera un gràfic de crides."
-#: elf/sprof.c:88
+#: elf/sprof.c:89
msgid "Read and display shared object profiling data."
msgstr "Llig i mostra les dades de perfilat d’un objecte compartit."
-#: elf/sprof.c:93
+#: elf/sprof.c:94
msgid "SHOBJ [PROFDATA]"
msgstr "OBJECTE_COMPARTIT [DADES_PERFILAT]"
-#: elf/sprof.c:432
+#: elf/sprof.c:433
#, c-format
msgid "failed to load shared object `%s'"
msgstr "no s’ha pogut carregar l’objecte compartit «%s»"
-#: elf/sprof.c:441
+#: elf/sprof.c:442
#, c-format
msgid "cannot create internal descriptors"
msgstr "no s’han pogut crear els descriptors interns"
-#: elf/sprof.c:553
+#: elf/sprof.c:554
#, c-format
msgid "Reopening shared object `%s' failed"
msgstr "no s’ha pogut reobrir l’objecte compartit «%s»"
-#: elf/sprof.c:560 elf/sprof.c:655
+#: elf/sprof.c:561 elf/sprof.c:656
#, c-format
msgid "reading of section headers failed"
msgstr "la lectura de les capçaleres de secció ha fallat"
-#: elf/sprof.c:568 elf/sprof.c:663
+#: elf/sprof.c:569 elf/sprof.c:664
#, c-format
msgid "reading of section header string table failed"
msgstr "la lectura de la taula de cadenes de capçalera de secció ha fallat"
-#: elf/sprof.c:594
+#: elf/sprof.c:595
#, c-format
msgid "*** Cannot read debuginfo file name: %m\n"
msgstr "*** No s’ha pogut llegir el nom del fitxer d’informació de depuració: %m\n"
-#: elf/sprof.c:615
+#: elf/sprof.c:616
#, c-format
msgid "cannot determine file name"
msgstr "no s’ha pogut determinar un nom de fitxer"
-#: elf/sprof.c:648
+#: elf/sprof.c:649
#, c-format
msgid "reading of ELF header failed"
msgstr "la lectura de la capçalera ELF ha fallat"
-#: elf/sprof.c:684
+#: elf/sprof.c:685
#, c-format
msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
msgstr "*** El fitxer «%s» no conté símbols: no és possible l’anàlisi detallada\n"
-#: elf/sprof.c:714
+#: elf/sprof.c:715
#, c-format
msgid "failed to load symbol data"
msgstr "no s’han pogut carregar les dades simbòliques"
-#: elf/sprof.c:779
+#: elf/sprof.c:780
#, c-format
msgid "cannot load profiling data"
msgstr "no s’han pogut carregar les dades de perfilat"
-#: elf/sprof.c:788
+#: elf/sprof.c:789
#, c-format
msgid "while stat'ing profiling data file"
msgstr "en cridar stat() sobre el fitxer de dades de perfilat"
-#: elf/sprof.c:796
+#: elf/sprof.c:797
#, c-format
msgid "profiling data file `%s' does not match shared object `%s'"
msgstr "el fitxer «%s» de dades de perfilat no correspon a l’objecte compartit «%s»"
-#: elf/sprof.c:807
+#: elf/sprof.c:808
#, c-format
msgid "failed to mmap the profiling data file"
msgstr "ha fallat mmap() sobre el fitxer de dades de perfilat"
-#: elf/sprof.c:815
+#: elf/sprof.c:816
#, c-format
msgid "error while closing the profiling data file"
msgstr "error en tancar el fitxer de dades de perfilat"
-#: elf/sprof.c:824 elf/sprof.c:922
+#: elf/sprof.c:825 elf/sprof.c:923
#, c-format
msgid "cannot create internal descriptor"
msgstr "no s’ha pogut crear un descriptor intern"
-#: elf/sprof.c:898
+#: elf/sprof.c:899
#, c-format
msgid "`%s' is no correct profile data file for `%s'"
msgstr "«%s» no és un fitxer vàlid de perfilat de «%s»"
-#: elf/sprof.c:1079 elf/sprof.c:1137
+#: elf/sprof.c:1080 elf/sprof.c:1138
#, c-format
msgid "cannot allocate symbol data"
msgstr "no s’han pogut reservar les dades de símbols"
-#: iconv/iconv_charmap.c:143 iconv/iconv_prog.c:448
+#: iconv/iconv_charmap.c:141 iconv/iconv_prog.c:448
#, c-format
msgid "cannot open output file"
msgstr "no s’ha pogut obrir el fitxer d’eixida"
-#: iconv/iconv_charmap.c:189 iconv/iconv_prog.c:311
+#: iconv/iconv_charmap.c:187 iconv/iconv_prog.c:311
#, c-format
msgid "error while closing input `%s'"
msgstr "error en tancar l’entrada «%s»"
-#: iconv/iconv_charmap.c:463
+#: iconv/iconv_charmap.c:461
#, c-format
msgid "illegal input sequence at position %Zd"
msgstr "hi ha una seqüència d’entrada no vàlida a la posició %Zd"
-#: iconv/iconv_charmap.c:482 iconv/iconv_prog.c:539
+#: iconv/iconv_charmap.c:480 iconv/iconv_prog.c:539
#, c-format
msgid "incomplete character or shift sequence at end of buffer"
msgstr "hi ha un caràcter o seqüència de desplaçament incompleta al final de la memòria intermèdia"
-#: iconv/iconv_charmap.c:527 iconv/iconv_charmap.c:563 iconv/iconv_prog.c:582
+#: iconv/iconv_charmap.c:525 iconv/iconv_charmap.c:561 iconv/iconv_prog.c:582
#: iconv/iconv_prog.c:618
#, c-format
msgid "error while reading the input"
msgstr "error en llegir l’entrada"
-#: iconv/iconv_charmap.c:545 iconv/iconv_prog.c:600
+#: iconv/iconv_charmap.c:543 iconv/iconv_prog.c:600
#, c-format
msgid "unable to allocate buffer for input"
msgstr "no s’ha pogut reservar memòria intermèdia per a l’entrada"
@@ -1508,7 +1514,7 @@ msgstr "Informació:"
msgid "list all known coded character sets"
msgstr "Llista tots els jocs de caràcters codificats coneguts."
-#: iconv/iconv_prog.c:64 locale/programs/localedef.c:126
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:127
msgid "Output control:"
msgstr "Control de l’eixida:"
@@ -1516,6 +1522,13 @@ msgstr "Control de l’eixida:"
msgid "omit invalid characters from output"
msgstr "Omet a l’eixida els caràcters no vàlids."
+#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
+#: locale/programs/localedef.c:120 locale/programs/localedef.c:122
+#: locale/programs/localedef.c:124 locale/programs/localedef.c:145
+#: malloc/memusagestat.c:56
+msgid "FILE"
+msgstr "FITXER"
+
#: iconv/iconv_prog.c:66
msgid "output file"
msgstr "Fitxer d’eixida."
@@ -1612,35 +1625,39 @@ msgstr "Crea un fitxer de configuració de càrrega ràpida per al mòdul iconv.
msgid "[DIR...]"
msgstr " [DIRECTORI…]"
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:131
+msgid "PATH"
+msgstr "CAMÍ"
+
# És un missatge d'ajuda. ivb
-#: iconv/iconvconfig.c:126
+#: iconv/iconvconfig.c:127
msgid "Prefix used for all file accesses"
msgstr "Prefix a emprar per a tots els accessos a fitxer."
-#: iconv/iconvconfig.c:127
+#: iconv/iconvconfig.c:128
msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)"
msgstr "Desa l’eixida en el FITXER en lloc de la ubicació d’instaŀlació («--prefix» no s’aplica al FITXER)."
-#: iconv/iconvconfig.c:131
+#: iconv/iconvconfig.c:132
msgid "Do not search standard directories, only those on the command line"
msgstr "No cerca en els directoris estàndard, només en els indicats a la línia d’ordres."
-#: iconv/iconvconfig.c:303
+#: iconv/iconvconfig.c:299
#, c-format
msgid "Directory arguments required when using --nostdlib"
msgstr "Cal proporcionar arguments directori en emprar «--nostdlib»."
-#: iconv/iconvconfig.c:345 locale/programs/localedef.c:287
+#: iconv/iconvconfig.c:341 locale/programs/localedef.c:288
#, c-format
msgid "no output file produced because warnings were issued"
msgstr "no s’ha generat el fitxer d’eixida perquè s’han produït avisos"
-#: iconv/iconvconfig.c:434
+#: iconv/iconvconfig.c:430
#, c-format
msgid "while inserting in search tree"
msgstr "en inserir a l’arbre de cerca"
-#: iconv/iconvconfig.c:1243
+#: iconv/iconvconfig.c:1239
#, c-format
msgid "cannot generate output file"
msgstr "no s’ha pogut generar el fitxer d’eixida"
@@ -1727,217 +1744,217 @@ msgstr "Elimineu la contrasenya o feu iŀlegible el fitxer per a altres."
msgid "Unknown .netrc keyword %s"
msgstr "la paraula clau «%s» de «.netrc» no és coneguda"
-#: libidn/nfkc.c:462
+#: libidn/nfkc.c:463
msgid "Character out of range for UTF-8"
msgstr "el caràcter és fora de rang respecte UTF-8"
-#: locale/programs/charmap-dir.c:58
+#: locale/programs/charmap-dir.c:57
#, c-format
msgid "cannot read character map directory `%s'"
msgstr "no s’ha pogut llegir el directori «%s» de taules de caràcters"
-#: locale/programs/charmap.c:137
+#: locale/programs/charmap.c:138
#, c-format
msgid "character map file `%s' not found"
msgstr "no s’ha trobat el fitxer «%s» de mapa de caràcters"
-#: locale/programs/charmap.c:194
+#: locale/programs/charmap.c:195
#, c-format
msgid "default character map file `%s' not found"
msgstr "no s’ha trobat el fitxer «%s» de mapa de caràcters per defecte"
-#: locale/programs/charmap.c:257
+#: locale/programs/charmap.c:258
#, c-format
msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
msgstr "el mapa de caràcters «%s» no és compatible amb ASCII, el locale no és conforme amb ISO C\n"
# La variable porta els símbols inclosos. ivb
-#: locale/programs/charmap.c:336
+#: locale/programs/charmap.c:337
#, c-format
msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
msgstr "%s: <mb_cur_max> ha de ser major que <mb_cur_min>\n"
-#: locale/programs/charmap.c:356 locale/programs/charmap.c:373
-#: locale/programs/repertoire.c:173
+#: locale/programs/charmap.c:357 locale/programs/charmap.c:374
+#: locale/programs/repertoire.c:174
#, c-format
msgid "syntax error in prolog: %s"
msgstr "error de sintaxi al pròleg: %s"
-#: locale/programs/charmap.c:357
+#: locale/programs/charmap.c:358
msgid "invalid definition"
msgstr "la definició no és vàlida"
-#: locale/programs/charmap.c:374 locale/programs/locfile.c:125
-#: locale/programs/locfile.c:152 locale/programs/repertoire.c:174
+#: locale/programs/charmap.c:375 locale/programs/locfile.c:125
+#: locale/programs/locfile.c:152 locale/programs/repertoire.c:175
msgid "bad argument"
msgstr "l’argument no és vàlid"
# Les variables inclouen els símbols «<>». ivb
-#: locale/programs/charmap.c:402
+#: locale/programs/charmap.c:403
#, c-format
msgid "duplicate definition of <%s>"
msgstr "la definició de <%s> és duplicada"
-#: locale/programs/charmap.c:409
+#: locale/programs/charmap.c:410
#, c-format
msgid "value for <%s> must be 1 or greater"
msgstr "el valor de <%s> ha de ser 1 o major"
-#: locale/programs/charmap.c:421
+#: locale/programs/charmap.c:422
#, c-format
msgid "value of <%s> must be greater or equal than the value of <%s>"
msgstr "el valor de «%s» ha de ser major o igual que el de «%s»"
-#: locale/programs/charmap.c:444 locale/programs/repertoire.c:182
+#: locale/programs/charmap.c:445 locale/programs/repertoire.c:183
#, c-format
msgid "argument to <%s> must be a single character"
msgstr "l’argument de «%s» ha de ser un sol caràcter"
-#: locale/programs/charmap.c:470
+#: locale/programs/charmap.c:471
msgid "character sets with locking states are not supported"
msgstr "l’ús de jocs de caràcters amb estats blocadors no està implementat"
# El primer és el nom d'una variable (en majúscules). ivb
-#: locale/programs/charmap.c:497 locale/programs/charmap.c:551
-#: locale/programs/charmap.c:583 locale/programs/charmap.c:677
-#: locale/programs/charmap.c:732 locale/programs/charmap.c:773
-#: locale/programs/charmap.c:814
+#: locale/programs/charmap.c:498 locale/programs/charmap.c:552
+#: locale/programs/charmap.c:584 locale/programs/charmap.c:678
+#: locale/programs/charmap.c:733 locale/programs/charmap.c:774
+#: locale/programs/charmap.c:815
#, c-format
msgid "syntax error in %s definition: %s"
msgstr "error de sintaxi a la definició %s: %s"
-#: locale/programs/charmap.c:498 locale/programs/charmap.c:678
-#: locale/programs/charmap.c:774 locale/programs/repertoire.c:229
+#: locale/programs/charmap.c:499 locale/programs/charmap.c:679
+#: locale/programs/charmap.c:775 locale/programs/repertoire.c:230
msgid "no symbolic name given"
msgstr "no s’ha indicat un nom simbòlic"
-#: locale/programs/charmap.c:552
+#: locale/programs/charmap.c:553
msgid "invalid encoding given"
msgstr "la codificació especificada no és vàlida"
-#: locale/programs/charmap.c:561
+#: locale/programs/charmap.c:562
msgid "too few bytes in character encoding"
msgstr "manquen octets a la codificació del caràcter"
-#: locale/programs/charmap.c:563
+#: locale/programs/charmap.c:564
msgid "too many bytes in character encoding"
msgstr "sobren octets a la codificació del caràcter"
-#: locale/programs/charmap.c:585 locale/programs/charmap.c:733
-#: locale/programs/charmap.c:816 locale/programs/repertoire.c:295
+#: locale/programs/charmap.c:586 locale/programs/charmap.c:734
+#: locale/programs/charmap.c:817 locale/programs/repertoire.c:296
msgid "no symbolic name given for end of range"
msgstr "no s’ha indicat un nom simbòlic per a la fi del rang"
-#: locale/programs/charmap.c:609 locale/programs/ld-address.c:601
-#: locale/programs/ld-collate.c:2766 locale/programs/ld-collate.c:3924
-#: locale/programs/ld-ctype.c:2255 locale/programs/ld-ctype.c:3006
-#: locale/programs/ld-identification.c:451
-#: locale/programs/ld-measurement.c:237 locale/programs/ld-messages.c:331
-#: locale/programs/ld-monetary.c:942 locale/programs/ld-name.c:306
-#: locale/programs/ld-numeric.c:367 locale/programs/ld-paper.c:240
-#: locale/programs/ld-telephone.c:312 locale/programs/ld-time.c:1220
-#: locale/programs/repertoire.c:312
+#: locale/programs/charmap.c:610 locale/programs/ld-address.c:602
+#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3925
+#: locale/programs/ld-ctype.c:2256 locale/programs/ld-ctype.c:3007
+#: locale/programs/ld-identification.c:452
+#: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332
+#: locale/programs/ld-monetary.c:942 locale/programs/ld-name.c:307
+#: locale/programs/ld-numeric.c:368 locale/programs/ld-paper.c:241
+#: locale/programs/ld-telephone.c:313 locale/programs/ld-time.c:1221
+#: locale/programs/repertoire.c:313
#, c-format
msgid "%1$s: definition does not end with `END %1$s'"
msgstr "%1$s: la definició no acaba en «END %1$s»"
-#: locale/programs/charmap.c:642
+#: locale/programs/charmap.c:643
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr "només es permeten definicions WIDTH després de la definició CHARMAP"
# El primer és el nom d'una variable (en majúscules). ivb
-#: locale/programs/charmap.c:650 locale/programs/charmap.c:713
+#: locale/programs/charmap.c:651 locale/programs/charmap.c:714
#, c-format
msgid "value for %s must be an integer"
msgstr "el valor de %s ha de ser un enter"
-#: locale/programs/charmap.c:841
+#: locale/programs/charmap.c:842
#, c-format
msgid "%s: error in state machine"
msgstr "%s: error a la màquina d’estats"
-#: locale/programs/charmap.c:849 locale/programs/ld-address.c:617
-#: locale/programs/ld-collate.c:2763 locale/programs/ld-collate.c:4117
-#: locale/programs/ld-ctype.c:2252 locale/programs/ld-ctype.c:3023
-#: locale/programs/ld-identification.c:467
-#: locale/programs/ld-measurement.c:253 locale/programs/ld-messages.c:347
-#: locale/programs/ld-monetary.c:958 locale/programs/ld-name.c:322
-#: locale/programs/ld-numeric.c:383 locale/programs/ld-paper.c:256
-#: locale/programs/ld-telephone.c:328 locale/programs/ld-time.c:1236
-#: locale/programs/locfile.c:825 locale/programs/repertoire.c:323
+#: locale/programs/charmap.c:850 locale/programs/ld-address.c:618
+#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4118
+#: locale/programs/ld-ctype.c:2253 locale/programs/ld-ctype.c:3024
+#: locale/programs/ld-identification.c:468
+#: locale/programs/ld-measurement.c:254 locale/programs/ld-messages.c:348
+#: locale/programs/ld-monetary.c:958 locale/programs/ld-name.c:323
+#: locale/programs/ld-numeric.c:384 locale/programs/ld-paper.c:257
+#: locale/programs/ld-telephone.c:329 locale/programs/ld-time.c:1237
+#: locale/programs/locfile.c:825 locale/programs/repertoire.c:324
#, c-format
msgid "%s: premature end of file"
msgstr "%s: final prematur del fitxer"
-#: locale/programs/charmap.c:868 locale/programs/charmap.c:879
+#: locale/programs/charmap.c:869 locale/programs/charmap.c:880
#, c-format
msgid "unknown character `%s'"
msgstr "el caràcter «%s» no és conegut"
-#: locale/programs/charmap.c:887
+#: locale/programs/charmap.c:888
#, c-format
msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
msgstr "el nombre d’octets de les seqüències d’inici i final del rang no són iguals: %d i %d"
-#: locale/programs/charmap.c:992 locale/programs/ld-collate.c:3043
-#: locale/programs/repertoire.c:418
+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3044
+#: locale/programs/repertoire.c:419
msgid "invalid names for character range"
msgstr "els noms del rang de caràcters no són vàlids"
# ivb (2001/11/05)
# ivb El rang també pot contenir dígits. El text original pot fer pensar
# ivb que _només_ s'accepten lletres majúscules.
-#: locale/programs/charmap.c:1004 locale/programs/repertoire.c:430
+#: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431
msgid "hexadecimal range format should use only capital characters"
msgstr "les lletres emprades en un rang amb format hexadecimal han de ser majúscules"
-#: locale/programs/charmap.c:1022 locale/programs/repertoire.c:448
+#: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449
#, c-format
msgid "<%s> and <%s> are invalid names for range"
msgstr "<%s> i <%s> no són noms de rang vàlids"
-#: locale/programs/charmap.c:1028 locale/programs/repertoire.c:455
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456
msgid "upper limit in range is smaller than lower limit"
msgstr "el límit superior del rang és menor que l’inferior"
-#: locale/programs/charmap.c:1086
+#: locale/programs/charmap.c:1087
msgid "resulting bytes for range not representable."
msgstr "els octets resultants del rang no són representables"
-#: locale/programs/ld-address.c:134 locale/programs/ld-collate.c:1557
-#: locale/programs/ld-ctype.c:420 locale/programs/ld-identification.c:132
-#: locale/programs/ld-measurement.c:93 locale/programs/ld-messages.c:96
-#: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:93
-#: locale/programs/ld-numeric.c:97 locale/programs/ld-paper.c:90
-#: locale/programs/ld-telephone.c:93 locale/programs/ld-time.c:158
+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1558
+#: locale/programs/ld-ctype.c:421 locale/programs/ld-identification.c:133
+#: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97
+#: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94
+#: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91
+#: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159
#, c-format
msgid "No definition for %s category found"
msgstr "no s’ha trobat cap definició de la categoria «%s»"
-#: locale/programs/ld-address.c:145 locale/programs/ld-address.c:183
-#: locale/programs/ld-address.c:201 locale/programs/ld-address.c:230
-#: locale/programs/ld-address.c:302 locale/programs/ld-address.c:321
-#: locale/programs/ld-address.c:334 locale/programs/ld-identification.c:145
-#: locale/programs/ld-measurement.c:104 locale/programs/ld-monetary.c:205
+#: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184
+#: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231
+#: locale/programs/ld-address.c:303 locale/programs/ld-address.c:322
+#: locale/programs/ld-address.c:335 locale/programs/ld-identification.c:146
+#: locale/programs/ld-measurement.c:105 locale/programs/ld-monetary.c:205
#: locale/programs/ld-monetary.c:249 locale/programs/ld-monetary.c:265
-#: locale/programs/ld-monetary.c:277 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:101
-#: locale/programs/ld-paper.c:110 locale/programs/ld-telephone.c:104
-#: locale/programs/ld-telephone.c:161 locale/programs/ld-time.c:174
-#: locale/programs/ld-time.c:195
+#: locale/programs/ld-monetary.c:277 locale/programs/ld-name.c:105
+#: locale/programs/ld-name.c:142 locale/programs/ld-numeric.c:112
+#: locale/programs/ld-numeric.c:126 locale/programs/ld-paper.c:102
+#: locale/programs/ld-paper.c:111 locale/programs/ld-telephone.c:105
+#: locale/programs/ld-telephone.c:162 locale/programs/ld-time.c:175
+#: locale/programs/ld-time.c:196
#, c-format
msgid "%s: field `%s' not defined"
msgstr "%s: no s’ha definit el camp «%s»"
-#: locale/programs/ld-address.c:157 locale/programs/ld-address.c:209
-#: locale/programs/ld-address.c:239 locale/programs/ld-address.c:277
-#: locale/programs/ld-name.c:116 locale/programs/ld-telephone.c:116
+#: locale/programs/ld-address.c:158 locale/programs/ld-address.c:210
+#: locale/programs/ld-address.c:240 locale/programs/ld-address.c:278
+#: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117
#, c-format
msgid "%s: field `%s' must not be empty"
msgstr "%s: el camp «%s» no ha d’estar buit"
-#: locale/programs/ld-address.c:169
+#: locale/programs/ld-address.c:170
#, c-format
msgid "%s: invalid escape `%%%c' sequence in field `%s'"
msgstr "%s: la seqüència d’escapada «%%%c» del camp «%s» no és vàlida"
@@ -1946,581 +1963,581 @@ msgstr "%s: la seqüència d’escapada «%%%c» del camp «%s» no és vàlida"
# ivb Pel que sembla hi ha un codi terminològic de llengua i un
# ivb codi bibliogràfic de llengua.
# ivb http://anubis.dkuug.dk/i18n/iso-639-2-dis.txt
-#: locale/programs/ld-address.c:220
+#: locale/programs/ld-address.c:221
#, c-format
msgid "%s: terminology language code `%s' not defined"
msgstr "%s: no s’ha definit el codi terminològic de llengua «%s»"
-#: locale/programs/ld-address.c:245
+#: locale/programs/ld-address.c:246
#, c-format
msgid "%s: field `%s' must not be defined"
msgstr "%s: no s’ha de definir el camp «%s»"
-#: locale/programs/ld-address.c:259 locale/programs/ld-address.c:288
+#: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289
#, c-format
msgid "%s: language abbreviation `%s' not defined"
msgstr "%s: no s’ha definit l’abreviatura de llengua «%s»"
-#: locale/programs/ld-address.c:266 locale/programs/ld-address.c:294
-#: locale/programs/ld-address.c:328 locale/programs/ld-address.c:340
+#: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295
+#: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341
#, c-format
msgid "%s: `%s' value does not match `%s' value"
msgstr "%s: el valor de «%s» no concorda amb el valor de «%s»"
-#: locale/programs/ld-address.c:313
+#: locale/programs/ld-address.c:314
#, c-format
msgid "%s: numeric country code `%d' not valid"
msgstr "%s: el codi numèric de país «%d» no és vàlid"
-#: locale/programs/ld-address.c:509 locale/programs/ld-address.c:546
-#: locale/programs/ld-address.c:584 locale/programs/ld-ctype.c:2630
-#: locale/programs/ld-identification.c:363
-#: locale/programs/ld-measurement.c:220 locale/programs/ld-messages.c:300
+#: locale/programs/ld-address.c:510 locale/programs/ld-address.c:547
+#: locale/programs/ld-address.c:585 locale/programs/ld-ctype.c:2631
+#: locale/programs/ld-identification.c:364
+#: locale/programs/ld-measurement.c:221 locale/programs/ld-messages.c:301
#: locale/programs/ld-monetary.c:700 locale/programs/ld-monetary.c:735
-#: locale/programs/ld-monetary.c:776 locale/programs/ld-name.c:279
-#: locale/programs/ld-numeric.c:262 locale/programs/ld-paper.c:223
-#: locale/programs/ld-telephone.c:287 locale/programs/ld-time.c:1125
-#: locale/programs/ld-time.c:1167
+#: locale/programs/ld-monetary.c:776 locale/programs/ld-name.c:280
+#: locale/programs/ld-numeric.c:263 locale/programs/ld-paper.c:224
+#: locale/programs/ld-telephone.c:288 locale/programs/ld-time.c:1126
+#: locale/programs/ld-time.c:1168
#, c-format
msgid "%s: field `%s' declared more than once"
msgstr "%s: el camp «%s» ha estat declarat més d’una volta"
-#: locale/programs/ld-address.c:513 locale/programs/ld-address.c:551
-#: locale/programs/ld-identification.c:367 locale/programs/ld-messages.c:310
+#: locale/programs/ld-address.c:514 locale/programs/ld-address.c:552
+#: locale/programs/ld-identification.c:368 locale/programs/ld-messages.c:311
#: locale/programs/ld-monetary.c:704 locale/programs/ld-monetary.c:739
-#: locale/programs/ld-name.c:283 locale/programs/ld-numeric.c:266
-#: locale/programs/ld-telephone.c:291 locale/programs/ld-time.c:1019
-#: locale/programs/ld-time.c:1088 locale/programs/ld-time.c:1130
+#: locale/programs/ld-name.c:284 locale/programs/ld-numeric.c:267
+#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:1020
+#: locale/programs/ld-time.c:1089 locale/programs/ld-time.c:1131
#, c-format
msgid "%s: unknown character in field `%s'"
msgstr "%s: el camp «%s» conté un caràcter desconegut"
-#: locale/programs/ld-address.c:598 locale/programs/ld-collate.c:3922
-#: locale/programs/ld-ctype.c:3003 locale/programs/ld-identification.c:448
-#: locale/programs/ld-measurement.c:234 locale/programs/ld-messages.c:329
-#: locale/programs/ld-monetary.c:940 locale/programs/ld-name.c:304
-#: locale/programs/ld-numeric.c:365 locale/programs/ld-paper.c:238
-#: locale/programs/ld-telephone.c:310 locale/programs/ld-time.c:1218
+#: locale/programs/ld-address.c:599 locale/programs/ld-collate.c:3923
+#: locale/programs/ld-ctype.c:3004 locale/programs/ld-identification.c:449
+#: locale/programs/ld-measurement.c:235 locale/programs/ld-messages.c:330
+#: locale/programs/ld-monetary.c:940 locale/programs/ld-name.c:305
+#: locale/programs/ld-numeric.c:366 locale/programs/ld-paper.c:239
+#: locale/programs/ld-telephone.c:311 locale/programs/ld-time.c:1219
#, c-format
msgid "%s: incomplete `END' line"
msgstr "%s: la línia «END» és incompleta"
-#: locale/programs/ld-address.c:608 locale/programs/ld-collate.c:543
-#: locale/programs/ld-collate.c:595 locale/programs/ld-collate.c:891
-#: locale/programs/ld-collate.c:904 locale/programs/ld-collate.c:2732
-#: locale/programs/ld-collate.c:2753 locale/programs/ld-collate.c:4107
-#: locale/programs/ld-ctype.c:1984 locale/programs/ld-ctype.c:2242
-#: locale/programs/ld-ctype.c:2828 locale/programs/ld-ctype.c:3014
-#: locale/programs/ld-identification.c:458
-#: locale/programs/ld-measurement.c:244 locale/programs/ld-messages.c:338
-#: locale/programs/ld-monetary.c:949 locale/programs/ld-name.c:313
-#: locale/programs/ld-numeric.c:374 locale/programs/ld-paper.c:247
-#: locale/programs/ld-telephone.c:319 locale/programs/ld-time.c:1227
+#: locale/programs/ld-address.c:609 locale/programs/ld-collate.c:544
+#: locale/programs/ld-collate.c:596 locale/programs/ld-collate.c:892
+#: locale/programs/ld-collate.c:905 locale/programs/ld-collate.c:2733
+#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4108
+#: locale/programs/ld-ctype.c:1985 locale/programs/ld-ctype.c:2243
+#: locale/programs/ld-ctype.c:2829 locale/programs/ld-ctype.c:3015
+#: locale/programs/ld-identification.c:459
+#: locale/programs/ld-measurement.c:245 locale/programs/ld-messages.c:339
+#: locale/programs/ld-monetary.c:949 locale/programs/ld-name.c:314
+#: locale/programs/ld-numeric.c:375 locale/programs/ld-paper.c:248
+#: locale/programs/ld-telephone.c:320 locale/programs/ld-time.c:1228
#, c-format
msgid "%s: syntax error"
msgstr "%s: error de sintaxi"
-#: locale/programs/ld-collate.c:418
+#: locale/programs/ld-collate.c:419
#, c-format
msgid "`%.*s' already defined in charmap"
msgstr "«%.*s» ja ha estat definit al mapa de caràcters"
-#: locale/programs/ld-collate.c:427
+#: locale/programs/ld-collate.c:428
#, c-format
msgid "`%.*s' already defined in repertoire"
msgstr "«%.*s» ja ha estat definit al repertori"
-#: locale/programs/ld-collate.c:434
+#: locale/programs/ld-collate.c:435
#, c-format
msgid "`%.*s' already defined as collating symbol"
msgstr "«%.*s» ja ha estat definit com a símbol d’ordenació"
-#: locale/programs/ld-collate.c:441
+#: locale/programs/ld-collate.c:442
#, c-format
msgid "`%.*s' already defined as collating element"
msgstr "«%.*s» ja ha estat definit com a element d’ordenació"
-#: locale/programs/ld-collate.c:472 locale/programs/ld-collate.c:498
+#: locale/programs/ld-collate.c:473 locale/programs/ld-collate.c:499
#, c-format
msgid "%s: `forward' and `backward' are mutually excluding each other"
msgstr "%s: «forward» i «backward» són mútuament excloents"
-#: locale/programs/ld-collate.c:482 locale/programs/ld-collate.c:508
-#: locale/programs/ld-collate.c:524
+#: locale/programs/ld-collate.c:483 locale/programs/ld-collate.c:509
+#: locale/programs/ld-collate.c:525
#, c-format
msgid "%s: `%s' mentioned more than once in definition of weight %d"
msgstr "%s: s’ha mencionat «%s» més d’una volta a la definició de pes %d"
-#: locale/programs/ld-collate.c:580
+#: locale/programs/ld-collate.c:581
#, c-format
msgid "%s: too many rules; first entry only had %d"
msgstr "%s: sobren regles; la primera entrada només en tenia %d"
-#: locale/programs/ld-collate.c:616
+#: locale/programs/ld-collate.c:617
#, c-format
msgid "%s: not enough sorting rules"
msgstr "%s: no hi ha suficients regles d’ordenació"
-#: locale/programs/ld-collate.c:781
+#: locale/programs/ld-collate.c:782
#, c-format
msgid "%s: empty weight string not allowed"
msgstr "%s: no es permet la cadena buida com a nom de pes"
-#: locale/programs/ld-collate.c:876
+#: locale/programs/ld-collate.c:877
#, c-format
msgid "%s: weights must use the same ellipsis symbol as the name"
msgstr "%s: els pesos han d’emprar el mateix símbol d’eŀlipsi que el nom"
-#: locale/programs/ld-collate.c:932
+#: locale/programs/ld-collate.c:933
#, c-format
msgid "%s: too many values"
msgstr "%s: sobren valors"
-#: locale/programs/ld-collate.c:1052 locale/programs/ld-collate.c:1227
+#: locale/programs/ld-collate.c:1053 locale/programs/ld-collate.c:1228
#, c-format
msgid "order for `%.*s' already defined at %s:%Zu"
msgstr "l’ordre de «%.*s» ja ha estat definit a %s:%Zu"
-#: locale/programs/ld-collate.c:1102
+#: locale/programs/ld-collate.c:1103
#, c-format
msgid "%s: the start and the end symbol of a range must stand for characters"
msgstr "%s: els símbols inicial i final d’un rang han de representar caràcters"
-#: locale/programs/ld-collate.c:1129
+#: locale/programs/ld-collate.c:1130
#, c-format
msgid "%s: byte sequences of first and last character must have the same length"
msgstr "%s: les seqüències d’octets del primer i darrer caràcter han de tenir la mateixa longitud"
-#: locale/programs/ld-collate.c:1171
+#: locale/programs/ld-collate.c:1172
#, c-format
msgid "%s: byte sequence of first character of range is not lower than that of the last character"
msgstr "%s: la seqüència d’octets del primer caràcter del rang no és menor que la del darrer caràcter"
-#: locale/programs/ld-collate.c:1296
+#: locale/programs/ld-collate.c:1297
#, c-format
msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
msgstr "%s: un rang simbòlic amb eŀlipsi no pot anar just darrere d’«order_start»"
-#: locale/programs/ld-collate.c:1300
+#: locale/programs/ld-collate.c:1301
#, c-format
msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'"
msgstr "%s: un rang simbòlic amb eŀlipsi no pot anar just davant d’«order_end»"
-#: locale/programs/ld-collate.c:1320 locale/programs/ld-ctype.c:1501
+#: locale/programs/ld-collate.c:1321 locale/programs/ld-ctype.c:1502
#, c-format
msgid "`%s' and `%.*s' are not valid names for symbolic range"
msgstr "«%s» i «%.*s» no són noms vàlids de rangs simbòlics"
-#: locale/programs/ld-collate.c:1370 locale/programs/ld-collate.c:3858
+#: locale/programs/ld-collate.c:1371 locale/programs/ld-collate.c:3859
#, c-format
msgid "%s: order for `%.*s' already defined at %s:%Zu"
msgstr "%s: l’ordre de «%.*s» ja ha estat definit a %s:%Zu"
-#: locale/programs/ld-collate.c:1379
+#: locale/programs/ld-collate.c:1380
#, c-format
msgid "%s: `%s' must be a character"
msgstr "%s: «%s» ha de ser un caràcter"
-#: locale/programs/ld-collate.c:1574
+#: locale/programs/ld-collate.c:1575
#, c-format
msgid "%s: `position' must be used for a specific level in all sections or none"
msgstr "%s: cal emprar «position» per a un nivell específic a totes les seccions o a cap"
-#: locale/programs/ld-collate.c:1599
+#: locale/programs/ld-collate.c:1600
#, c-format
msgid "symbol `%s' not defined"
msgstr "el símbol «%s» no ha estat definit"
-#: locale/programs/ld-collate.c:1675 locale/programs/ld-collate.c:1781
+#: locale/programs/ld-collate.c:1676 locale/programs/ld-collate.c:1782
#, c-format
msgid "symbol `%s' has the same encoding as"
msgstr "el símbol «%s» té la mateixa codificació que"
-#: locale/programs/ld-collate.c:1679 locale/programs/ld-collate.c:1785
+#: locale/programs/ld-collate.c:1680 locale/programs/ld-collate.c:1786
#, c-format
msgid "symbol `%s'"
msgstr "el símbol «%s»"
-#: locale/programs/ld-collate.c:1827
+#: locale/programs/ld-collate.c:1828
#, c-format
msgid "no definition of `UNDEFINED'"
msgstr "no s’ha definit «UNDEFINED»"
-#: locale/programs/ld-collate.c:1856
+#: locale/programs/ld-collate.c:1857
#, c-format
msgid "too many errors; giving up"
msgstr "hi ha massa errors: s’abandona"
-#: locale/programs/ld-collate.c:2658 locale/programs/ld-collate.c:4046
+#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4047
#, c-format
msgid "%s: nested conditionals not supported"
msgstr "%s: no es permeten els condicionals niats"
-#: locale/programs/ld-collate.c:2676
+#: locale/programs/ld-collate.c:2677
#, c-format
msgid "%s: more then one 'else'"
msgstr "%s: hi ha més d’una clàusula «else»"
-#: locale/programs/ld-collate.c:2851
+#: locale/programs/ld-collate.c:2852
#, c-format
msgid "%s: duplicate definition of `%s'"
msgstr "%s: la definició de «%s» és duplicada"
-#: locale/programs/ld-collate.c:2887
+#: locale/programs/ld-collate.c:2888
#, c-format
msgid "%s: duplicate declaration of section `%s'"
msgstr "%s: la declaració de la secció «%s» és duplicada"
-#: locale/programs/ld-collate.c:3023
+#: locale/programs/ld-collate.c:3024
#, c-format
msgid "%s: unknown character in collating symbol name"
msgstr "%s: el nom del símbol d’ordenació conté un caràcter desconegut"
-#: locale/programs/ld-collate.c:3152
+#: locale/programs/ld-collate.c:3153
#, c-format
msgid "%s: unknown character in equivalent definition name"
msgstr "%s: el nom de la definició equivalent conté un caràcter desconegut"
-#: locale/programs/ld-collate.c:3163
+#: locale/programs/ld-collate.c:3164
#, c-format
msgid "%s: unknown character in equivalent definition value"
msgstr "%s: el valor de la definició equivalent conté un caràcter desconegut"
-#: locale/programs/ld-collate.c:3173
+#: locale/programs/ld-collate.c:3174
#, c-format
msgid "%s: unknown symbol `%s' in equivalent definition"
msgstr "%s: la definició equivalent conté el símbol desconegut «%s»"
-#: locale/programs/ld-collate.c:3182
+#: locale/programs/ld-collate.c:3183
msgid "error while adding equivalent collating symbol"
msgstr "error en afegir un símbol d’ordenació equivalent"
-#: locale/programs/ld-collate.c:3220
+#: locale/programs/ld-collate.c:3221
#, c-format
msgid "duplicate definition of script `%s'"
msgstr "la definició de l’escriptura «%s» és duplicada"
-#: locale/programs/ld-collate.c:3268
+#: locale/programs/ld-collate.c:3269
#, c-format
msgid "%s: unknown section name `%.*s'"
msgstr "%s: el nom de secció «%.*s» no és conegut"
-#: locale/programs/ld-collate.c:3297
+#: locale/programs/ld-collate.c:3298
#, c-format
msgid "%s: multiple order definitions for section `%s'"
msgstr "%s: hi ha múltiples definicions d’ordre de la secció «%s»"
-#: locale/programs/ld-collate.c:3325
+#: locale/programs/ld-collate.c:3326
#, c-format
msgid "%s: invalid number of sorting rules"
msgstr "%s: el nombre de regles d’ordenació no és vàlid"
-#: locale/programs/ld-collate.c:3352
+#: locale/programs/ld-collate.c:3353
#, c-format
msgid "%s: multiple order definitions for unnamed section"
msgstr "%s: hi ha múltiples definicions d’ordre a la secció sense nom"
-#: locale/programs/ld-collate.c:3407 locale/programs/ld-collate.c:3537
-#: locale/programs/ld-collate.c:3900
+#: locale/programs/ld-collate.c:3408 locale/programs/ld-collate.c:3538
+#: locale/programs/ld-collate.c:3901
#, c-format
msgid "%s: missing `order_end' keyword"
msgstr "%s: manca la paraula clau «order_end»"
-#: locale/programs/ld-collate.c:3470
+#: locale/programs/ld-collate.c:3471
#, c-format
msgid "%s: order for collating symbol %.*s not yet defined"
msgstr "%s: l’ordre del símbol d’ordenació «%.*s» encara no ha estat definit"
-#: locale/programs/ld-collate.c:3488
+#: locale/programs/ld-collate.c:3489
#, c-format
msgid "%s: order for collating element %.*s not yet defined"
msgstr "%s: l’ordre de l’element d’ordenació «%.*s» encara no ha estat definit"
-#: locale/programs/ld-collate.c:3499
+#: locale/programs/ld-collate.c:3500
#, c-format
msgid "%s: cannot reorder after %.*s: symbol not known"
msgstr "%s: no s’ha pogut reordenar després de «%.*s»: el símbol no és conegut"
-#: locale/programs/ld-collate.c:3551 locale/programs/ld-collate.c:3912
+#: locale/programs/ld-collate.c:3552 locale/programs/ld-collate.c:3913
#, c-format
msgid "%s: missing `reorder-end' keyword"
msgstr "%s: manca la paraula clau «reorder-end»"
-#: locale/programs/ld-collate.c:3585 locale/programs/ld-collate.c:3783
+#: locale/programs/ld-collate.c:3586 locale/programs/ld-collate.c:3784
#, c-format
msgid "%s: section `%.*s' not known"
msgstr "%s: la secció «%.*s» no és coneguda"
-#: locale/programs/ld-collate.c:3650
+#: locale/programs/ld-collate.c:3651
#, c-format
msgid "%s: bad symbol <%.*s>"
msgstr "%s: el símbol <%.*s> no és vàlid"
-#: locale/programs/ld-collate.c:3846
+#: locale/programs/ld-collate.c:3847
#, c-format
msgid "%s: cannot have `%s' as end of ellipsis range"
msgstr "%s: «%s» no es pot trobar al final d’un rang amb eŀlipsi"
-#: locale/programs/ld-collate.c:3896
+#: locale/programs/ld-collate.c:3897
#, c-format
msgid "%s: empty category description not allowed"
msgstr "%s: no es permet una descripció buida de la categoria"
-#: locale/programs/ld-collate.c:3915
+#: locale/programs/ld-collate.c:3916
#, c-format
msgid "%s: missing `reorder-sections-end' keyword"
msgstr "%s: manca la paraula clau «reorder-sections-end»"
-#: locale/programs/ld-collate.c:4079
+#: locale/programs/ld-collate.c:4080
#, c-format
msgid "%s: '%s' without matching 'ifdef' or 'ifndef'"
msgstr "%s: s’ha trobat un «%s» sense el corresponent «ifdef» o «ifndef»"
-#: locale/programs/ld-collate.c:4097
+#: locale/programs/ld-collate.c:4098
#, c-format
msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'"
msgstr "%s: s’ha trobat un «endif» sense el corresponent «ifdef» o «ifndef»"
-#: locale/programs/ld-ctype.c:439
+#: locale/programs/ld-ctype.c:440
#, c-format
msgid "No character set name specified in charmap"
msgstr "no s’ha indicat cap nom de joc de caràcters al mapa de caràcters"
-#: locale/programs/ld-ctype.c:468
+#: locale/programs/ld-ctype.c:469
#, c-format
msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
msgstr "el caràcter L«\\u%0*x» de la classe «%s» ha de ser a la classe «%s»"
-#: locale/programs/ld-ctype.c:483
+#: locale/programs/ld-ctype.c:484
#, c-format
msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
msgstr "el caràcter L«\\u%0*x» de la classe «%s» no ha de ser a la classe «%s»"
-#: locale/programs/ld-ctype.c:497 locale/programs/ld-ctype.c:555
+#: locale/programs/ld-ctype.c:498 locale/programs/ld-ctype.c:556
#, c-format
msgid "internal error in %s, line %u"
msgstr "error intern a «%s», línia %u"
-#: locale/programs/ld-ctype.c:526
+#: locale/programs/ld-ctype.c:527
#, c-format
msgid "character '%s' in class `%s' must be in class `%s'"
msgstr "el caràcter «%s» de la classe «%s» ha de ser a la classe «%s»"
-#: locale/programs/ld-ctype.c:542
+#: locale/programs/ld-ctype.c:543
#, c-format
msgid "character '%s' in class `%s' must not be in class `%s'"
msgstr "el caràcter «%s» de la classe «%s» no ha de ser a la classe «%s»"
-#: locale/programs/ld-ctype.c:572 locale/programs/ld-ctype.c:610
+#: locale/programs/ld-ctype.c:573 locale/programs/ld-ctype.c:611
#, c-format
msgid "<SP> character not in class `%s'"
msgstr "el caràcter <SP> no és a la classe «%s»"
-#: locale/programs/ld-ctype.c:584 locale/programs/ld-ctype.c:621
+#: locale/programs/ld-ctype.c:585 locale/programs/ld-ctype.c:622
#, c-format
msgid "<SP> character must not be in class `%s'"
msgstr "el caràcter <SP> no ha de ser a la classe «%s»"
-#: locale/programs/ld-ctype.c:599
+#: locale/programs/ld-ctype.c:600
#, c-format
msgid "character <SP> not defined in character map"
msgstr "el caràcter <SP> no ha estat definit a la taula de caràcters"
-#: locale/programs/ld-ctype.c:735
+#: locale/programs/ld-ctype.c:736
#, c-format
msgid "`digit' category has not entries in groups of ten"
msgstr "les entrades de la categoria «digit» no estan agrupades de deu en deu"
-#: locale/programs/ld-ctype.c:784
+#: locale/programs/ld-ctype.c:785
#, c-format
msgid "no input digits defined and none of the standard names in the charmap"
msgstr "no s’han definit dígits d’entrada i cap dels noms estàndard es troba al mapa de caràcters"
-#: locale/programs/ld-ctype.c:849
+#: locale/programs/ld-ctype.c:850
#, c-format
msgid "not all characters used in `outdigit' are available in the charmap"
msgstr "no tots els caràcters emprats a «outdigit» es troben al mapa de caràcters"
-#: locale/programs/ld-ctype.c:866
+#: locale/programs/ld-ctype.c:867
#, c-format
msgid "not all characters used in `outdigit' are available in the repertoire"
msgstr "no tots els caràcters emprats a «outdigit» es troben al repertori"
-#: locale/programs/ld-ctype.c:1269
+#: locale/programs/ld-ctype.c:1270
#, c-format
msgid "character class `%s' already defined"
msgstr "la classe de caràcters «%s» ja ha estat definida"
-#: locale/programs/ld-ctype.c:1275
+#: locale/programs/ld-ctype.c:1276
#, c-format
msgid "implementation limit: no more than %Zd character classes allowed"
msgstr "límit d’implementació: no es permeten més de %Zd classes de caràcters"
-#: locale/programs/ld-ctype.c:1301
+#: locale/programs/ld-ctype.c:1302
#, c-format
msgid "character map `%s' already defined"
msgstr "el mapa de caràcters «%s» ja ha estat definit"
-#: locale/programs/ld-ctype.c:1307
+#: locale/programs/ld-ctype.c:1308
#, c-format
msgid "implementation limit: no more than %d character maps allowed"
msgstr "límit d’implementació: no es permeten més de %d taules de caràcters"
-#: locale/programs/ld-ctype.c:1572 locale/programs/ld-ctype.c:1697
-#: locale/programs/ld-ctype.c:1803 locale/programs/ld-ctype.c:2493
-#: locale/programs/ld-ctype.c:3489
+#: locale/programs/ld-ctype.c:1573 locale/programs/ld-ctype.c:1698
+#: locale/programs/ld-ctype.c:1804 locale/programs/ld-ctype.c:2494
+#: locale/programs/ld-ctype.c:3490
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: el camp «%s» no conté deu entrades exactament"
-#: locale/programs/ld-ctype.c:1600 locale/programs/ld-ctype.c:2174
+#: locale/programs/ld-ctype.c:1601 locale/programs/ld-ctype.c:2175
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
msgstr "el valor final <U%0*X> del rang és menor que l’inicial <U%0*X>"
-#: locale/programs/ld-ctype.c:1727
+#: locale/programs/ld-ctype.c:1728
msgid "start and end character sequence of range must have the same length"
msgstr "les seqüències de caràcters inicial i final del rang han de tenir la mateixa longitud"
-#: locale/programs/ld-ctype.c:1734
+#: locale/programs/ld-ctype.c:1735
msgid "to-value character sequence is smaller than from-value sequence"
msgstr "la seqüència de caràcters final és menor que la seqüència inicial"
-#: locale/programs/ld-ctype.c:2094 locale/programs/ld-ctype.c:2145
+#: locale/programs/ld-ctype.c:2095 locale/programs/ld-ctype.c:2146
msgid "premature end of `translit_ignore' definition"
msgstr "fi prematura de la definició «translit_ignore»"
-#: locale/programs/ld-ctype.c:2100 locale/programs/ld-ctype.c:2151
-#: locale/programs/ld-ctype.c:2193
+#: locale/programs/ld-ctype.c:2101 locale/programs/ld-ctype.c:2152
+#: locale/programs/ld-ctype.c:2194
msgid "syntax error"
msgstr "error de sintaxi"
-#: locale/programs/ld-ctype.c:2326
+#: locale/programs/ld-ctype.c:2327
#, c-format
msgid "%s: syntax error in definition of new character class"
msgstr "%s: error de sintaxi a la definició de nova classe de caràcters"
-#: locale/programs/ld-ctype.c:2341
+#: locale/programs/ld-ctype.c:2342
#, c-format
msgid "%s: syntax error in definition of new character map"
msgstr "%s: error de sintaxi a la definició de nou mapa de caràcters"
-#: locale/programs/ld-ctype.c:2515
+#: locale/programs/ld-ctype.c:2516
msgid "ellipsis range must be marked by two operands of same type"
msgstr "el rang amb eŀlipsi ha d’estar marcat per dos operands del mateix tipus"
-#: locale/programs/ld-ctype.c:2524
+#: locale/programs/ld-ctype.c:2525
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
msgstr "no s’ha d’emprar l’eŀlipsi absoluta «...» amb els valors de rang de noms simbòlics"
-#: locale/programs/ld-ctype.c:2539
+#: locale/programs/ld-ctype.c:2540
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
msgstr "cal emprar l’eŀlipsi simbòlica hexadecimal «..» amb els valors de rang UCS"
-#: locale/programs/ld-ctype.c:2553
+#: locale/programs/ld-ctype.c:2554
msgid "with character code range values one must use the absolute ellipsis `...'"
msgstr "cal emprar l’eŀlispi absoluta «...» amb els valors de rang de codis de caràcters"
-#: locale/programs/ld-ctype.c:2704
+#: locale/programs/ld-ctype.c:2705
#, c-format
msgid "duplicated definition for mapping `%s'"
msgstr "la definició del mapa «%s» és duplicada"
-#: locale/programs/ld-ctype.c:2790 locale/programs/ld-ctype.c:2934
+#: locale/programs/ld-ctype.c:2791 locale/programs/ld-ctype.c:2935
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
msgstr "%s: la secció «translit_start» no acaba amb «translit_end»"
-#: locale/programs/ld-ctype.c:2885
+#: locale/programs/ld-ctype.c:2886
#, c-format
msgid "%s: duplicate `default_missing' definition"
msgstr "%s: la definició de «default_missing» és duplicada"
-#: locale/programs/ld-ctype.c:2890
+#: locale/programs/ld-ctype.c:2891
msgid "previous definition was here"
msgstr "la definició prèvia es troba ací"
-#: locale/programs/ld-ctype.c:2912
+#: locale/programs/ld-ctype.c:2913
#, c-format
msgid "%s: no representable `default_missing' definition found"
msgstr "%s: no s’ha trobat cap definició representable de «default_missing»"
-#: locale/programs/ld-ctype.c:3065 locale/programs/ld-ctype.c:3149
-#: locale/programs/ld-ctype.c:3169 locale/programs/ld-ctype.c:3190
-#: locale/programs/ld-ctype.c:3211 locale/programs/ld-ctype.c:3232
-#: locale/programs/ld-ctype.c:3253 locale/programs/ld-ctype.c:3293
-#: locale/programs/ld-ctype.c:3314 locale/programs/ld-ctype.c:3381
-#: locale/programs/ld-ctype.c:3423 locale/programs/ld-ctype.c:3448
+#: locale/programs/ld-ctype.c:3066 locale/programs/ld-ctype.c:3150
+#: locale/programs/ld-ctype.c:3170 locale/programs/ld-ctype.c:3191
+#: locale/programs/ld-ctype.c:3212 locale/programs/ld-ctype.c:3233
+#: locale/programs/ld-ctype.c:3254 locale/programs/ld-ctype.c:3294
+#: locale/programs/ld-ctype.c:3315 locale/programs/ld-ctype.c:3382
+#: locale/programs/ld-ctype.c:3424 locale/programs/ld-ctype.c:3449
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no ha estat definit"
-#: locale/programs/ld-ctype.c:3070 locale/programs/ld-ctype.c:3154
-#: locale/programs/ld-ctype.c:3174 locale/programs/ld-ctype.c:3195
-#: locale/programs/ld-ctype.c:3216 locale/programs/ld-ctype.c:3237
-#: locale/programs/ld-ctype.c:3258 locale/programs/ld-ctype.c:3298
-#: locale/programs/ld-ctype.c:3319 locale/programs/ld-ctype.c:3386
+#: locale/programs/ld-ctype.c:3071 locale/programs/ld-ctype.c:3155
+#: locale/programs/ld-ctype.c:3175 locale/programs/ld-ctype.c:3196
+#: locale/programs/ld-ctype.c:3217 locale/programs/ld-ctype.c:3238
+#: locale/programs/ld-ctype.c:3259 locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:3320 locale/programs/ld-ctype.c:3387
#, c-format
msgid "%s: character `%s' in charmap not representable with one byte"
msgstr "%s: el caràcter «%s» del mapa de caràcters no es pot representar amb un sol octet"
-#: locale/programs/ld-ctype.c:3430 locale/programs/ld-ctype.c:3455
+#: locale/programs/ld-ctype.c:3431 locale/programs/ld-ctype.c:3456
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr "%s: el caràcter «%s», necessari com a valor per defecte, no es pot representar amb un sol octet"
-#: locale/programs/ld-ctype.c:3511
+#: locale/programs/ld-ctype.c:3512
#, c-format
msgid "no output digits defined and none of the standard names in the charmap"
msgstr "no s’han definit dígits d’eixida i cap del noms estàndard es troba al mapa de caràcters"
-#: locale/programs/ld-ctype.c:3802
+#: locale/programs/ld-ctype.c:3803
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
msgstr "%s: les dades de transliteració del locale «%s» no es troben disponibles"
-#: locale/programs/ld-ctype.c:3903
+#: locale/programs/ld-ctype.c:3904
#, c-format
msgid "%s: table for class \"%s\": %lu bytes\n"
msgstr "%s: taula de la classe «%s»: %lu octets\n"
-#: locale/programs/ld-ctype.c:3972
+#: locale/programs/ld-ctype.c:3973
#, c-format
msgid "%s: table for map \"%s\": %lu bytes\n"
msgstr "%s: taula del mapa «%s»: %lu octets\n"
-#: locale/programs/ld-ctype.c:4105
+#: locale/programs/ld-ctype.c:4106
#, c-format
msgid "%s: table for width: %lu bytes\n"
msgstr "%s: taula d’amplada: %lu bytes\n"
-#: locale/programs/ld-identification.c:169
+#: locale/programs/ld-identification.c:170
#, c-format
msgid "%s: no identification for category `%s'"
msgstr "%s: no hi ha cap identificació per a la categoria «%s»"
-#: locale/programs/ld-identification.c:434
+#: locale/programs/ld-identification.c:435
#, c-format
msgid "%s: duplicate category version definition"
msgstr "%s: la definició de versió de categoria és duplicada"
-#: locale/programs/ld-measurement.c:112
+#: locale/programs/ld-measurement.c:113
#, c-format
msgid "%s: invalid value for field `%s'"
msgstr "%s: el valor del camp «%s» no és vàlid"
-#: locale/programs/ld-messages.c:113 locale/programs/ld-messages.c:147
+#: locale/programs/ld-messages.c:114 locale/programs/ld-messages.c:148
#, c-format
msgid "%s: field `%s' undefined"
msgstr "%s: no s’ha definit el camp «%s»"
-#: locale/programs/ld-messages.c:120 locale/programs/ld-messages.c:154
-#: locale/programs/ld-monetary.c:255 locale/programs/ld-numeric.c:117
+#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:155
+#: locale/programs/ld-monetary.c:255 locale/programs/ld-numeric.c:118
#, c-format
msgid "%s: value for field `%s' must not be an empty string"
msgstr "%s: el valor del camp «%s» no ha de ser la cadena buida"
-#: locale/programs/ld-messages.c:136 locale/programs/ld-messages.c:170
+#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:171
#, c-format
msgid "%s: no correct regular expression for field `%s': %s"
msgstr "%s: no hi ha cap expressió regular correcta per al camp «%s»: %s"
@@ -2540,17 +2557,17 @@ msgstr "%s: el valor del camp «int_curr_symbol» no és un nom vàlid de l’es
msgid "%s: value for field `%s' must be in range %d...%d"
msgstr "%s: el valor del camp «%s» ha d’estar dins el rang %d...%d"
-#: locale/programs/ld-monetary.c:746 locale/programs/ld-numeric.c:273
+#: locale/programs/ld-monetary.c:746 locale/programs/ld-numeric.c:274
#, c-format
msgid "%s: value for field `%s' must be a single character"
msgstr "%s: el valor del camp «%s» ha de ser un sol caràcter"
-#: locale/programs/ld-monetary.c:843 locale/programs/ld-numeric.c:317
+#: locale/programs/ld-monetary.c:843 locale/programs/ld-numeric.c:318
#, c-format
msgid "%s: `-1' must be last entry in `%s' field"
msgstr "%s: «-1» ha de ser la darrera entrada del camp «%s»"
-#: locale/programs/ld-monetary.c:865 locale/programs/ld-numeric.c:334
+#: locale/programs/ld-monetary.c:865 locale/programs/ld-numeric.c:335
#, c-format
msgid "%s: values for field `%s' must be smaller than 127"
msgstr "%s: els valors del camp «%s» han de ser menors que 127"
@@ -2559,126 +2576,126 @@ msgstr "%s: els valors del camp «%s» han de ser menors que 127"
msgid "conversion rate value cannot be zero"
msgstr "el valor de la taxa de conversió no pot ser zero"
-#: locale/programs/ld-name.c:128 locale/programs/ld-telephone.c:125
-#: locale/programs/ld-telephone.c:148
+#: locale/programs/ld-name.c:129 locale/programs/ld-telephone.c:126
+#: locale/programs/ld-telephone.c:149
#, c-format
msgid "%s: invalid escape sequence in field `%s'"
msgstr "%s: la seqüència d’escapada del camp «%s» no és vàlida"
-#: locale/programs/ld-time.c:246
+#: locale/programs/ld-time.c:247
#, c-format
msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'"
msgstr "%s: el senyalador de direcció de la cadena %Zd del camp «era» no és ni «+» ni «-»"
-#: locale/programs/ld-time.c:257
+#: locale/programs/ld-time.c:258
#, c-format
msgid "%s: direction flag in string %Zd in `era' field is not a single character"
msgstr "%s: el senyalador de direcció de la cadena %Zd del camp «era» no és un sol caràcter"
-#: locale/programs/ld-time.c:270
+#: locale/programs/ld-time.c:271
#, c-format
msgid "%s: invalid number for offset in string %Zd in `era' field"
msgstr "%s: el número de desplaçament de la cadena %Zd del camp «era» no és vàlid"
-#: locale/programs/ld-time.c:278
+#: locale/programs/ld-time.c:279
#, c-format
msgid "%s: garbage at end of offset value in string %Zd in `era' field"
msgstr "%s: brossa al final del valor de desplaçament de la cadena %Zd del camp «era»"
-#: locale/programs/ld-time.c:329
+#: locale/programs/ld-time.c:330
#, c-format
msgid "%s: invalid starting date in string %Zd in `era' field"
msgstr "%s: la data de començament de la cadena %Zd del camp «era» no és vàlida"
-#: locale/programs/ld-time.c:338
+#: locale/programs/ld-time.c:339
#, c-format
msgid "%s: garbage at end of starting date in string %Zd in `era' field "
msgstr "%s: brossa al final de la data de començament de la cadena %Zd del camp «era» "
-#: locale/programs/ld-time.c:357
+#: locale/programs/ld-time.c:358
#, c-format
msgid "%s: starting date is invalid in string %Zd in `era' field"
msgstr "%s: la data de començament de la cadena %Zd del camp «era» no és vàlida"
-#: locale/programs/ld-time.c:406 locale/programs/ld-time.c:434
+#: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435
#, c-format
msgid "%s: invalid stopping date in string %Zd in `era' field"
msgstr "%s: la data d’acabament de la cadena %Zd del camp «era» no és vàlida"
-#: locale/programs/ld-time.c:415
+#: locale/programs/ld-time.c:416
#, c-format
msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
msgstr "%s: brossa al final de la data d’acabament de la cadena %Zd del camp «era»"
-#: locale/programs/ld-time.c:443
+#: locale/programs/ld-time.c:444
#, c-format
msgid "%s: missing era name in string %Zd in `era' field"
msgstr "%s: manca el nom de l’era a la cadena %Zd del camp «era»"
-#: locale/programs/ld-time.c:455
+#: locale/programs/ld-time.c:456
#, c-format
msgid "%s: missing era format in string %Zd in `era' field"
msgstr "%s: manca el format de l’era a la cadena %Zd del camp «era»"
-#: locale/programs/ld-time.c:496
+#: locale/programs/ld-time.c:497
#, c-format
msgid "%s: third operand for value of field `%s' must not be larger than %d"
msgstr "%s: el tercer operand del valor del camp «%s» no ha de ser major que %d"
-#: locale/programs/ld-time.c:504 locale/programs/ld-time.c:512
-#: locale/programs/ld-time.c:520
+#: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513
+#: locale/programs/ld-time.c:521
#, c-format
msgid "%s: values for field `%s' must not be larger than %d"
msgstr "%s: els valors del camp «%s» no han de ser majors que %d"
-#: locale/programs/ld-time.c:1003
+#: locale/programs/ld-time.c:1004
#, c-format
msgid "%s: too few values for field `%s'"
msgstr "%s: manquen valors al camp «%s»"
-#: locale/programs/ld-time.c:1048
+#: locale/programs/ld-time.c:1049
msgid "extra trailing semicolon"
msgstr "hi ha un punt i coma sobrant al final"
-#: locale/programs/ld-time.c:1051
+#: locale/programs/ld-time.c:1052
#, c-format
msgid "%s: too many values for field `%s'"
msgstr "%s: sobren valors al camp «%s»"
-#: locale/programs/linereader.c:129
+#: locale/programs/linereader.c:130
msgid "trailing garbage at end of line"
msgstr "brossa al final de la línia"
-#: locale/programs/linereader.c:297
+#: locale/programs/linereader.c:298
msgid "garbage at end of number"
msgstr "brossa al final del número"
-#: locale/programs/linereader.c:409
+#: locale/programs/linereader.c:410
msgid "garbage at end of character code specification"
msgstr "brossa al final de l’especificació de codi de caràcter"
-#: locale/programs/linereader.c:495
+#: locale/programs/linereader.c:496
msgid "unterminated symbolic name"
msgstr "el nom simbòlic no està acabat"
-#: locale/programs/linereader.c:622
+#: locale/programs/linereader.c:623
msgid "illegal escape sequence at end of string"
msgstr "hi ha una seqüència d’escapada no permesa al final de la cadena"
-#: locale/programs/linereader.c:626 locale/programs/linereader.c:854
+#: locale/programs/linereader.c:627 locale/programs/linereader.c:855
msgid "unterminated string"
msgstr "la cadena no està acabada"
-#: locale/programs/linereader.c:668
+#: locale/programs/linereader.c:669
msgid "non-symbolic character value should not be used"
msgstr "no s’han d’emprar valors de caràcters no simbòlics"
-#: locale/programs/linereader.c:815
+#: locale/programs/linereader.c:816
#, c-format
msgid "symbol `%.*s' not in charmap"
msgstr "el símbol «%.*s» no es troba al mapa de caràcters"
-#: locale/programs/linereader.c:836
+#: locale/programs/linereader.c:837
#, c-format
msgid "symbol `%.*s' not in repertoire map"
msgstr "el símbol «%.*s» no es troba al mapa de repertori"
@@ -2688,42 +2705,42 @@ msgstr "el símbol «%.*s» no es troba al mapa de repertori"
msgid "unknown name \"%s\""
msgstr "el nom «%s» no és conegut"
-#: locale/programs/locale.c:74
+#: locale/programs/locale.c:72
msgid "System information:"
msgstr "Informació del sistema:"
# Més ajudes. ivb
-#: locale/programs/locale.c:76
+#: locale/programs/locale.c:74
msgid "Write names of available locales"
msgstr "Mostra els noms dels locales disponibles."
-#: locale/programs/locale.c:78
+#: locale/programs/locale.c:76
msgid "Write names of available charmaps"
msgstr "Mostra els noms dels mapes de caràcters disponibles."
# ivb (2001/10/30)
# ivb Aquesta línia dóna pas a un conjunt d'opcions que modif. l'eixida.
-#: locale/programs/locale.c:79
+#: locale/programs/locale.c:77
msgid "Modify output format:"
msgstr "Modificadors del format de l’eixida:"
-#: locale/programs/locale.c:80
+#: locale/programs/locale.c:78
msgid "Write names of selected categories"
msgstr "Mostra els noms de les categories seleccionades."
-#: locale/programs/locale.c:81
+#: locale/programs/locale.c:79
msgid "Write names of selected keywords"
msgstr "Mostra els noms de les paraules clau seleccionades."
-#: locale/programs/locale.c:82
+#: locale/programs/locale.c:80
msgid "Print more information"
msgstr "Mostra més informació."
-#: locale/programs/locale.c:87
+#: locale/programs/locale.c:85
msgid "Get locale-specific information."
msgstr "Obté informació específica del locale."
-#: locale/programs/locale.c:90
+#: locale/programs/locale.c:88
msgid ""
"NAME\n"
"[-a|-m]"
@@ -2731,27 +2748,27 @@ msgstr ""
"NOM\n"
"[-a | -m]"
-#: locale/programs/locale.c:194
+#: locale/programs/locale.c:192
#, c-format
msgid "Cannot set LC_CTYPE to default locale"
msgstr "no s’ha pogut establir LC_CTYPE al locale per defecte"
-#: locale/programs/locale.c:196
+#: locale/programs/locale.c:194
#, c-format
msgid "Cannot set LC_MESSAGES to default locale"
msgstr "no s’ha pogut establir LC_MESSAGES al locale per defecte"
-#: locale/programs/locale.c:209
+#: locale/programs/locale.c:207
#, c-format
msgid "Cannot set LC_COLLATE to default locale"
msgstr "no s’ha pogut establir LC_COLLATE al locale per defecte"
-#: locale/programs/locale.c:225
+#: locale/programs/locale.c:223
#, c-format
msgid "Cannot set LC_ALL to default locale"
msgstr "no s’ha pogut establir LC_ALL al locale per defecte"
-#: locale/programs/locale.c:521
+#: locale/programs/locale.c:519
#, c-format
msgid "while preparing output"
msgstr "en preparar l’eixida"
@@ -2765,19 +2782,19 @@ msgstr "Fitxers d’entrada:"
msgid "Symbolic character names defined in FILE"
msgstr "Els noms simbòlics dels caràcters es defineixen al FITXER."
-#: locale/programs/localedef.c:122
+#: locale/programs/localedef.c:123
msgid "Source definitions are found in FILE"
msgstr "Les definicions font es troben al FITXER."
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:125
msgid "FILE contains mapping from symbolic names to UCS4 values"
msgstr "El FITXER conté un mapa de noms simbòlics a valors UCS4."
-#: locale/programs/localedef.c:128
+#: locale/programs/localedef.c:129
msgid "Create output even if warning messages were issued"
msgstr "Crea fitxers d’eixida encara que s’hagen emès missatges d’avís."
-#: locale/programs/localedef.c:129
+#: locale/programs/localedef.c:130
msgid "Create old-style tables"
msgstr "Crea taules de l’estil antic."
@@ -2785,57 +2802,57 @@ msgstr "Crea taules de l’estil antic."
# ivb Localedef crea diversos fitxers en un directori: és plural.
# ivb Però, el prefix és un prefix d'un camí, com «/usr/local» en
# ivb «/usr/local/share/doc».
-#: locale/programs/localedef.c:130
+#: locale/programs/localedef.c:131
msgid "Optional output file prefix"
msgstr "Prefix opcional dels fitxers d’eixida."
-#: locale/programs/localedef.c:131
-msgid "Be strictly POSIX conform"
+#: locale/programs/localedef.c:132
+msgid "Strictly conform to POSIX"
msgstr "S’ajusta estrictament a POSIX."
-#: locale/programs/localedef.c:133
+#: locale/programs/localedef.c:134
msgid "Suppress warnings and information messages"
msgstr "Descarta els avisos i els missatges informatius."
-#: locale/programs/localedef.c:134
+#: locale/programs/localedef.c:135
msgid "Print more messages"
msgstr "Mostra més missatges."
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:136
msgid "Archive control:"
msgstr "Control d’arxius:"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:138
msgid "Don't add new data to archive"
msgstr "No afegeix dades noves a l’arxiu."
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:140
msgid "Add locales named by parameters to archive"
msgstr "Afegeix a l’arxiu els locales esmentats pels paràmetres."
-#: locale/programs/localedef.c:140
+#: locale/programs/localedef.c:141
msgid "Replace existing archive content"
msgstr "Reemplaça el contingut existent a l’arxiu."
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:143
msgid "Remove locales named by parameters from archive"
msgstr "Elimina de l’arxiu els locales esmentats pels paràmetres."
-#: locale/programs/localedef.c:143
+#: locale/programs/localedef.c:144
msgid "List content of archive"
msgstr "Llista el contingut de l’arxiu."
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:146
msgid "locale.alias file to consult when making archive"
msgstr "Fitxer «locale.alias» a consultar en crear l’arxiu."
# ivb (2001/10/28)
# ivb Pose el punt final pq és la descripció curta de l'ordre.
-#: locale/programs/localedef.c:150
+#: locale/programs/localedef.c:151
msgid "Compile locale specification"
msgstr "Compiŀla una especificació de locale."
-#: locale/programs/localedef.c:153
+#: locale/programs/localedef.c:154
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -2845,28 +2862,28 @@ msgstr ""
"[--add-to-archive | --delete-from-archive] FITXER…\n"
"--list-archive [FITXER]"
-#: locale/programs/localedef.c:228
+#: locale/programs/localedef.c:229
#, c-format
msgid "cannot create directory for output files"
msgstr "no s’ha pogut crear el directori per als fitxers d’eixida"
-#: locale/programs/localedef.c:239
+#: locale/programs/localedef.c:240
#, c-format
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "FATAL: el sistema no defineix «_POSIX2_LOCALEDEF»"
-#: locale/programs/localedef.c:253 locale/programs/localedef.c:269
-#: locale/programs/localedef.c:601 locale/programs/localedef.c:621
+#: locale/programs/localedef.c:254 locale/programs/localedef.c:270
+#: locale/programs/localedef.c:602 locale/programs/localedef.c:622
#, c-format
msgid "cannot open locale definition file `%s'"
msgstr "no s’ha pogut obrir el fitxer «%s» de definició del locale"
-#: locale/programs/localedef.c:281
+#: locale/programs/localedef.c:282
#, c-format
msgid "cannot write output files to `%s'"
msgstr "no s’han pogut escriure els fitxers d’eixida a «%s»"
-#: locale/programs/localedef.c:367
+#: locale/programs/localedef.c:368
#, c-format
msgid ""
"System's directory for character maps : %s\n"
@@ -2879,107 +2896,106 @@ msgstr ""
" camí als locales : %s\n"
"%s"
-#: locale/programs/localedef.c:569
+#: locale/programs/localedef.c:570
#, c-format
msgid "circular dependencies between locale definitions"
msgstr "hi ha dependències circulars entre les definicions dels locales"
-#: locale/programs/localedef.c:575
+#: locale/programs/localedef.c:576
#, c-format
msgid "cannot add already read locale `%s' a second time"
msgstr "no es pot afegir una altra volta el locale ja llegit «%s»"
-#: locale/programs/locarchive.c:113 locale/programs/locarchive.c:347
-#: nss/makedb.c:290
+#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:367
#, c-format
-msgid "cannot create temporary file"
-msgstr "no s’ha pogut crear un fitxer temporal"
+msgid "cannot create temporary file: %s"
+msgstr "no s’ha pogut crear un fitxer temporal: %s"
-#: locale/programs/locarchive.c:143 locale/programs/locarchive.c:393
+#: locale/programs/locarchive.c:155 locale/programs/locarchive.c:413
#, c-format
msgid "cannot initialize archive file"
msgstr "no s’ha pogut iniciar el fitxer arxiu"
-#: locale/programs/locarchive.c:150 locale/programs/locarchive.c:400
+#: locale/programs/locarchive.c:162 locale/programs/locarchive.c:420
#, c-format
msgid "cannot resize archive file"
msgstr "no s’ha pogut redimensionar el fitxer arxiu"
-#: locale/programs/locarchive.c:163 locale/programs/locarchive.c:413
-#: locale/programs/locarchive.c:619
+#: locale/programs/locarchive.c:177 locale/programs/locarchive.c:435
+#: locale/programs/locarchive.c:645
#, c-format
msgid "cannot map archive header"
msgstr "no s’ha pogut mapar la capçalera de l’arxiu"
# ivb (2002/10/21)
# ivb Un «locale archive» conté diversos locales -> «arxiu de locales».
-#: locale/programs/locarchive.c:185
+#: locale/programs/locarchive.c:199
#, c-format
msgid "failed to create new locale archive"
msgstr "no s’ha pogut crear el nou arxiu de locales"
-#: locale/programs/locarchive.c:197
+#: locale/programs/locarchive.c:211
#, c-format
msgid "cannot change mode of new locale archive"
msgstr "no s’ha pogut canviar el mode del nou arxiu de locales"
-#: locale/programs/locarchive.c:296
+#: locale/programs/locarchive.c:311
#, c-format
msgid "cannot read data from locale archive"
msgstr "no s’han pogut llegir les dades de l’arxiu de locales"
-#: locale/programs/locarchive.c:327
+#: locale/programs/locarchive.c:342
#, c-format
msgid "cannot map locale archive file"
msgstr "no s’ha pogut mapar el fitxer arxiu de locales"
-#: locale/programs/locarchive.c:421
+#: locale/programs/locarchive.c:443
#, c-format
msgid "cannot lock new archive"
msgstr "no s’ha pogut blocar el nou arxiu"
-#: locale/programs/locarchive.c:485
+#: locale/programs/locarchive.c:509
#, c-format
msgid "cannot extend locale archive file"
msgstr "no s’ha pogut estendre el fitxer arxiu de locales"
-#: locale/programs/locarchive.c:494
+#: locale/programs/locarchive.c:518
#, c-format
msgid "cannot change mode of resized locale archive"
msgstr "no s’ha pogut canviar el mode de l’arxiu de locales redimensionat"
-#: locale/programs/locarchive.c:502
+#: locale/programs/locarchive.c:526
#, c-format
msgid "cannot rename new archive"
msgstr "no s’ha pogut reanomenar el nou arxiu"
-#: locale/programs/locarchive.c:555
+#: locale/programs/locarchive.c:579
#, c-format
msgid "cannot open locale archive \"%s\""
msgstr "no s’ha pogut obrir l’arxiu «%s» de locales"
-#: locale/programs/locarchive.c:560
+#: locale/programs/locarchive.c:584
#, c-format
msgid "cannot stat locale archive \"%s\""
msgstr "ha fallat stat() sobre l’arxiu «%s» de locales"
-#: locale/programs/locarchive.c:579
+#: locale/programs/locarchive.c:603
#, c-format
msgid "cannot lock locale archive \"%s\""
msgstr "no s’ha pogut blocar l’arxiu «%s» de locales"
-#: locale/programs/locarchive.c:602
+#: locale/programs/locarchive.c:626
#, c-format
msgid "cannot read archive header"
msgstr "no s’ha pogut llegir la capçalera de l’arxiu"
-#: locale/programs/locarchive.c:666
+#: locale/programs/locarchive.c:697
#, c-format
msgid "locale '%s' already exists"
msgstr "el locale «%s» ja existeix"
-#: locale/programs/locarchive.c:928 locale/programs/locarchive.c:943
-#: locale/programs/locarchive.c:955 locale/programs/locarchive.c:967
+#: locale/programs/locarchive.c:959 locale/programs/locarchive.c:974
+#: locale/programs/locarchive.c:986 locale/programs/locarchive.c:998
#: locale/programs/locfile.c:343
#, c-format
msgid "cannot add to locale archive"
@@ -2987,44 +3003,44 @@ msgstr "no s’ha pogut afegir a l’arxiu de locales"
# ivb (2002/10/21)
# ivb El fitxer conté àlies de diversos locales (locale.alias).
-#: locale/programs/locarchive.c:1125
+#: locale/programs/locarchive.c:1156
#, c-format
msgid "locale alias file `%s' not found"
msgstr "no s’ha trobat el fitxer «%s» d’àlies de locales"
# ivb (2002/10/21)
# ivb És un missatge, no un error.
-#: locale/programs/locarchive.c:1275
+#: locale/programs/locarchive.c:1306
#, c-format
msgid "Adding %s\n"
msgstr "S’està afegint «%s»\n"
-#: locale/programs/locarchive.c:1281
+#: locale/programs/locarchive.c:1312
#, c-format
msgid "stat of \"%s\" failed: %s: ignored"
msgstr "ha fallat stat() sobre «%s»: %s: es descarta"
-#: locale/programs/locarchive.c:1287
+#: locale/programs/locarchive.c:1318
#, c-format
msgid "\"%s\" is no directory; ignored"
msgstr "«%s» no és un directori: es descarta"
-#: locale/programs/locarchive.c:1294
+#: locale/programs/locarchive.c:1325
#, c-format
msgid "cannot open directory \"%s\": %s: ignored"
msgstr "no s’ha pogut obrir el directori «%s»: %s: es descarta"
-#: locale/programs/locarchive.c:1366
+#: locale/programs/locarchive.c:1397
#, c-format
msgid "incomplete set of locale files in \"%s\""
msgstr "el joc de fitxers de locale a «%s» no és complet"
-#: locale/programs/locarchive.c:1430
+#: locale/programs/locarchive.c:1461
#, c-format
msgid "cannot read all files in \"%s\": ignored"
msgstr "no s’han pogut llegir tots els fitxers de «%s»: es descarta"
-#: locale/programs/locarchive.c:1500
+#: locale/programs/locarchive.c:1531
#, c-format
msgid "locale \"%s\" not in archive"
msgstr "el locale «%s» no es troba a l’arxiu"
@@ -3070,24 +3086,24 @@ msgstr "no s’ha d’indicar cap altra paraula clau quan s’empre «copy»"
msgid "`%1$s' definition does not end with `END %1$s'"
msgstr "la definició «%1$s» no acaba en «END %1$s»"
-#: locale/programs/repertoire.c:228 locale/programs/repertoire.c:269
-#: locale/programs/repertoire.c:294
+#: locale/programs/repertoire.c:229 locale/programs/repertoire.c:270
+#: locale/programs/repertoire.c:295
#, c-format
msgid "syntax error in repertoire map definition: %s"
msgstr "error de sintaxi a la definició del mapa de repertori: %s"
-#: locale/programs/repertoire.c:270
+#: locale/programs/repertoire.c:271
msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
msgstr "no s’ha especificat un valor <Uxxxx> o <Uxxxxxxxx>"
# ivb (2001/11/05)
# ivb Apareix quan no es troba el repertori en un arbre de repertoris.
-#: locale/programs/repertoire.c:330
+#: locale/programs/repertoire.c:331
#, c-format
msgid "cannot save new repertoire map"
msgstr "no s’ha pogut afegir el nou mapa de repertori"
-#: locale/programs/repertoire.c:341
+#: locale/programs/repertoire.c:342
#, c-format
msgid "repertoire map file `%s' not found"
msgstr "no s’ha trobat el fitxer «%s» de mapa de repertori"
@@ -3118,23 +3134,23 @@ msgstr "sobren arguments"
msgid "needs to be installed setuid `root'"
msgstr "ha d’estar instaŀlat amb setuid a «root»"
-#: malloc/mcheck.c:348
+#: malloc/mcheck.c:347
msgid "memory is consistent, library is buggy\n"
msgstr "la memòria és consistent; la biblioteca té errors\n"
-#: malloc/mcheck.c:351
+#: malloc/mcheck.c:350
msgid "memory clobbered before allocated block\n"
msgstr "s’ha sobreescrit la memòria d’abans del bloc reservat\n"
-#: malloc/mcheck.c:354
+#: malloc/mcheck.c:353
msgid "memory clobbered past end of allocated block\n"
msgstr "s’ha sobreescrit la memòria de després del bloc reservat\n"
-#: malloc/mcheck.c:357
+#: malloc/mcheck.c:356
msgid "block freed twice\n"
msgstr "s’ha alliberat el bloc dues voltes\n"
-#: malloc/mcheck.c:360
+#: malloc/mcheck.c:359
msgid "bogus mcheck_status, library is buggy\n"
msgstr "el valor d’«mcheck_status» és estrany; la biblioteca té errors\n"
@@ -3222,35 +3238,43 @@ msgid "No program name given"
msgstr "No s’ha indicat un nom de programa"
# Més ajudes. ivb
-#: malloc/memusagestat.c:55
+#: malloc/memusagestat.c:56
msgid "Name output file"
msgstr "Especifica el fitxer d’eixida."
-#: malloc/memusagestat.c:56
+#: malloc/memusagestat.c:57
+msgid "STRING"
+msgstr "CADENA"
+
+#: malloc/memusagestat.c:57
msgid "Title string used in output graphic"
msgstr "Cadena amb el títol a emprar al gràfic d’eixida."
-#: malloc/memusagestat.c:57
+#: malloc/memusagestat.c:58
msgid "Generate output linear to time (default is linear to number of function calls)"
msgstr "Genera una eixida lineal respecte el temps (per defecte és lineal respecte el nombre de crides a funció)."
-#: malloc/memusagestat.c:59
+#: malloc/memusagestat.c:62
msgid "Also draw graph for total memory consumption"
msgstr "També mostra un gràfic del consum total de memòria."
-#: malloc/memusagestat.c:60
+#: malloc/memusagestat.c:63
+msgid "VALUE"
+msgstr "VALOR"
+
+#: malloc/memusagestat.c:64
msgid "Make output graphic VALUE pixels wide"
msgstr "Fa el gràfic d’eixida de VALOR píxels d’amplada."
-#: malloc/memusagestat.c:61
+#: malloc/memusagestat.c:65
msgid "Make output graphic VALUE pixels high"
msgstr "Fa el gràfic d’eixida de VALOR píxels d’altura."
-#: malloc/memusagestat.c:66
+#: malloc/memusagestat.c:70
msgid "Generate graphic from memory profiling data"
msgstr "Genera un gràfic amb les dades de perfilat de memòria."
-#: malloc/memusagestat.c:69
+#: malloc/memusagestat.c:73
msgid "DATAFILE [OUTFILE]"
msgstr "FITXER_DADES [FITXER_EIXIDA]"
@@ -3262,7 +3286,7 @@ msgstr "error desconegut del sistema"
msgid "unable to free arguments"
msgstr "no s’han pogut alliberar els arguments"
-#: nis/nis_error.h:1 nis/ypclnt.c:832 nis/ypclnt.c:920 posix/regcomp.c:131
+#: nis/nis_error.h:1 nis/ypclnt.c:831 nis/ypclnt.c:919 posix/regcomp.c:133
#: sysdeps/gnu/errlist.c:20
msgid "Success"
msgstr "Èxit"
@@ -3304,7 +3328,7 @@ msgid "First/next chain broken"
msgstr "S’ha trencat la cadena de primer/següent"
#. TRANS Permission denied; the file permissions do not allow the attempted operation.
-#: nis/nis_error.h:11 nis/ypclnt.c:877 sysdeps/gnu/errlist.c:157
+#: nis/nis_error.h:11 nis/ypclnt.c:876 sysdeps/gnu/errlist.c:157
msgid "Permission denied"
msgstr "S’ha denegat el permís"
@@ -3467,131 +3491,131 @@ msgstr "L’entrada LOCAL de l’UID %d al directori «%s» no és única\n"
# ivb (2001/10/30)
# ivb Crec que es refereix a un tipus de servei de noms -> masculí.
-#: nis/nis_print.c:50
+#: nis/nis_print.c:51
msgid "UNKNOWN"
msgstr "DESCONEGUT"
# ivb (2001/11/01)
# ivb D'acord amb «nis/rpcsvc/nis_object.x».
-#: nis/nis_print.c:108
+#: nis/nis_print.c:109
msgid "BOGUS OBJECT\n"
msgstr "OBJECTE NO INICIAT\n"
-#: nis/nis_print.c:111
+#: nis/nis_print.c:112
msgid "NO OBJECT\n"
msgstr "CAP OBJECTE\n"
-#: nis/nis_print.c:114
+#: nis/nis_print.c:115
msgid "DIRECTORY\n"
msgstr "DIRECTORI\n"
-#: nis/nis_print.c:117
+#: nis/nis_print.c:118
msgid "GROUP\n"
msgstr "GRUP\n"
-#: nis/nis_print.c:120
+#: nis/nis_print.c:121
msgid "TABLE\n"
msgstr "TAULA\n"
-#: nis/nis_print.c:123
+#: nis/nis_print.c:124
msgid "ENTRY\n"
msgstr "ENTRADA\n"
-#: nis/nis_print.c:126
+#: nis/nis_print.c:127
msgid "LINK\n"
msgstr "ENLLAÇ\n"
-#: nis/nis_print.c:129
+#: nis/nis_print.c:130
msgid "PRIVATE\n"
msgstr "PRIVAT\n"
-#: nis/nis_print.c:132
+#: nis/nis_print.c:133
msgid "(Unknown object)\n"
msgstr "(Objecte desconegut)\n"
-#: nis/nis_print.c:166
+#: nis/nis_print.c:167
#, c-format
msgid "Name : `%s'\n"
msgstr "Nom : «%s»\n"
-#: nis/nis_print.c:167
+#: nis/nis_print.c:168
#, c-format
msgid "Type : %s\n"
msgstr "Tipus : %s\n"
-#: nis/nis_print.c:172
+#: nis/nis_print.c:173
msgid "Master Server :\n"
msgstr "Servidor mestre :\n"
# ivb (2001/10/28)
# ivb Es refereix a un servidor rèplica, no a replicar.
-#: nis/nis_print.c:174
+#: nis/nis_print.c:175
msgid "Replicate :\n"
msgstr "Rèplica :\n"
-#: nis/nis_print.c:175
+#: nis/nis_print.c:176
#, c-format
msgid "\tName : %s\n"
msgstr "\tNom : %s\n"
-#: nis/nis_print.c:176
+#: nis/nis_print.c:177
msgid "\tPublic Key : "
msgstr "\tClau pública: "
-#: nis/nis_print.c:180
+#: nis/nis_print.c:181
msgid "None.\n"
msgstr "Cap.\n"
# ivb (2001/10/28)
# ivb Xicoteta diferència-Home de l'infern ;)
-#: nis/nis_print.c:183
+#: nis/nis_print.c:184
#, c-format
msgid "Diffie-Hellmann (%d bits)\n"
msgstr "Diffie‐Hellmann (%d bits)\n"
-#: nis/nis_print.c:188
+#: nis/nis_print.c:189
#, c-format
msgid "RSA (%d bits)\n"
msgstr "RSA (%d bits)\n"
-#: nis/nis_print.c:191
+#: nis/nis_print.c:192
msgid "Kerberos.\n"
msgstr "Kerberos.\n"
# ivb (2001/10/30)
# ivb Es refereix a una clau pública -> femení.
-#: nis/nis_print.c:194
+#: nis/nis_print.c:195
#, c-format
msgid "Unknown (type = %d, bits = %d)\n"
msgstr "Desconeguda (tipus = %d, bits = %d)\n"
-#: nis/nis_print.c:205
+#: nis/nis_print.c:206
#, c-format
msgid "\tUniversal addresses (%u)\n"
msgstr "\tAdreces universals (%u)\n"
-#: nis/nis_print.c:227
+#: nis/nis_print.c:228
msgid "Time to live : "
msgstr "Temps de vida : "
-#: nis/nis_print.c:229
+#: nis/nis_print.c:230
msgid "Default Access rights :\n"
msgstr "Drets d’accés per defecte :\n"
-#: nis/nis_print.c:238
+#: nis/nis_print.c:239
#, c-format
msgid "\tType : %s\n"
msgstr "\tTipus : %s\n"
-#: nis/nis_print.c:239
+#: nis/nis_print.c:240
msgid "\tAccess rights: "
msgstr "\tDrets d’accés: "
-#: nis/nis_print.c:253
+#: nis/nis_print.c:254
msgid "Group Flags :"
msgstr "Senyaladors del grup :"
-#: nis/nis_print.c:256
+#: nis/nis_print.c:257
msgid ""
"\n"
"Group Members :\n"
@@ -3599,12 +3623,12 @@ msgstr ""
"\n"
"Membres del grup :\n"
-#: nis/nis_print.c:268
+#: nis/nis_print.c:269
#, c-format
msgid "Table Type : %s\n"
msgstr "Tipus de taula : %s\n"
-#: nis/nis_print.c:269
+#: nis/nis_print.c:270
#, c-format
msgid "Number of Columns : %d\n"
msgstr "Nombre de columnes : %d\n"
@@ -3612,85 +3636,85 @@ msgstr "Nombre de columnes : %d\n"
# ivb (2000/10/28)
# ivb Açò és correcte segons nis/rpcsvc/nis_object.x, és «caràcter
# ivb separador» i no «separador de caràcters».
-#: nis/nis_print.c:270
+#: nis/nis_print.c:271
#, c-format
msgid "Character Separator : %c\n"
msgstr "Caràcter separador : %c\n"
-#: nis/nis_print.c:271
+#: nis/nis_print.c:272
#, c-format
msgid "Search Path : %s\n"
msgstr "Camí de cerca : %s\n"
-#: nis/nis_print.c:272
+#: nis/nis_print.c:273
msgid "Columns :\n"
msgstr "Columnes :\n"
-#: nis/nis_print.c:275
+#: nis/nis_print.c:276
#, c-format
msgid "\t[%d]\tName : %s\n"
msgstr "\t[%d]\tNom : %s\n"
-#: nis/nis_print.c:277
+#: nis/nis_print.c:278
msgid "\t\tAttributes : "
msgstr "\t\tAtributs : "
-#: nis/nis_print.c:279
+#: nis/nis_print.c:280
msgid "\t\tAccess Rights : "
msgstr "\t\tDrets d’accés : "
-#: nis/nis_print.c:289
+#: nis/nis_print.c:290
msgid "Linked Object Type : "
msgstr "Tipus de l’objecte enllaçat : "
-#: nis/nis_print.c:291
+#: nis/nis_print.c:292
#, c-format
msgid "Linked to : %s\n"
msgstr "Enllaçat amb : %s\n"
-#: nis/nis_print.c:301
+#: nis/nis_print.c:302
#, c-format
msgid "\tEntry data of type %s\n"
msgstr "\tDades de l’entrada de tipus «%s»\n"
-#: nis/nis_print.c:304
+#: nis/nis_print.c:305
#, c-format
msgid "\t[%u] - [%u bytes] "
msgstr "\t[%u] — [%u octets] "
-#: nis/nis_print.c:307
+#: nis/nis_print.c:308
msgid "Encrypted data\n"
msgstr "Dades xifrades\n"
-#: nis/nis_print.c:309
+#: nis/nis_print.c:310
msgid "Binary data\n"
msgstr "Dades binàries\n"
-#: nis/nis_print.c:325
+#: nis/nis_print.c:326
#, c-format
msgid "Object Name : %s\n"
msgstr "Nom de l’objecte : %s\n"
-#: nis/nis_print.c:326
+#: nis/nis_print.c:327
#, c-format
msgid "Directory : %s\n"
msgstr "Directori : %s\n"
-#: nis/nis_print.c:327
+#: nis/nis_print.c:328
#, c-format
msgid "Owner : %s\n"
msgstr "Propietari : %s\n"
-#: nis/nis_print.c:328
+#: nis/nis_print.c:329
#, c-format
msgid "Group : %s\n"
msgstr "Grup : %s\n"
-#: nis/nis_print.c:329
+#: nis/nis_print.c:330
msgid "Access Rights : "
msgstr "Drets d’accés : "
-#: nis/nis_print.c:331
+#: nis/nis_print.c:332
#, c-format
msgid ""
"\n"
@@ -3699,90 +3723,90 @@ msgstr ""
"\n"
"Temps de vida : "
-#: nis/nis_print.c:334
+#: nis/nis_print.c:335
#, c-format
msgid "Creation Time : %s"
msgstr "Data de creació : %s"
-#: nis/nis_print.c:336
+#: nis/nis_print.c:337
#, c-format
msgid "Mod. Time : %s"
msgstr "Data modificació : %s"
-#: nis/nis_print.c:337
+#: nis/nis_print.c:338
msgid "Object Type : "
msgstr "Tipus d’objecte : "
-#: nis/nis_print.c:357
+#: nis/nis_print.c:358
#, c-format
msgid " Data Length = %u\n"
msgstr " Longitud de les dades = %u\n"
-#: nis/nis_print.c:371
+#: nis/nis_print.c:372
#, c-format
msgid "Status : %s\n"
msgstr "Estat : %s\n"
-#: nis/nis_print.c:372
+#: nis/nis_print.c:373
#, c-format
msgid "Number of objects : %u\n"
msgstr "Nombre d’objectes : %u\n"
-#: nis/nis_print.c:376
+#: nis/nis_print.c:377
#, c-format
msgid "Object #%d:\n"
msgstr "Objecte #%d:\n"
-#: nis/nis_print_group_entry.c:117
+#: nis/nis_print_group_entry.c:116
#, c-format
msgid "Group entry for \"%s.%s\" group:\n"
msgstr "Entrada de grup per al grup «%s.%s»:\n"
-#: nis/nis_print_group_entry.c:125
+#: nis/nis_print_group_entry.c:124
msgid " Explicit members:\n"
msgstr " Membres explícits:\n"
-#: nis/nis_print_group_entry.c:130
+#: nis/nis_print_group_entry.c:129
msgid " No explicit members\n"
msgstr " No hi ha membres explícits.\n"
-#: nis/nis_print_group_entry.c:133
+#: nis/nis_print_group_entry.c:132
msgid " Implicit members:\n"
msgstr " Membres implícits:\n"
-#: nis/nis_print_group_entry.c:138
+#: nis/nis_print_group_entry.c:137
msgid " No implicit members\n"
msgstr " No hi ha membres implícits.\n"
-#: nis/nis_print_group_entry.c:141
+#: nis/nis_print_group_entry.c:140
msgid " Recursive members:\n"
msgstr " Membres recursius:\n"
-#: nis/nis_print_group_entry.c:146
+#: nis/nis_print_group_entry.c:145
msgid " No recursive members\n"
msgstr " No hi ha membres recursius.\n"
-#: nis/nis_print_group_entry.c:149
+#: nis/nis_print_group_entry.c:148
msgid " Explicit nonmembers:\n"
msgstr " No‐membres explícits:\n"
-#: nis/nis_print_group_entry.c:154
+#: nis/nis_print_group_entry.c:153
msgid " No explicit nonmembers\n"
msgstr " No hi ha no‐membres explícits.\n"
-#: nis/nis_print_group_entry.c:157
+#: nis/nis_print_group_entry.c:156
msgid " Implicit nonmembers:\n"
msgstr " No‐membres implícits:\n"
-#: nis/nis_print_group_entry.c:162
+#: nis/nis_print_group_entry.c:161
msgid " No implicit nonmembers\n"
msgstr " No hi ha no‐membres implícits.\n"
-#: nis/nis_print_group_entry.c:165
+#: nis/nis_print_group_entry.c:164
msgid " Recursive nonmembers:\n"
msgstr " No‐membres recursius:\n"
-#: nis/nis_print_group_entry.c:170
+#: nis/nis_print_group_entry.c:169
msgid " No recursive nonmembers\n"
msgstr " No hi ha no‐membres recursius.\n"
@@ -3824,102 +3848,102 @@ msgstr "netname2user: l’entrada LOCAL de «%s» al directori «%s» no és ún
msgid "netname2user: should not have uid 0"
msgstr "netname2user: no ha de tenir l’UID 0"
-#: nis/ypclnt.c:835
+#: nis/ypclnt.c:834
msgid "Request arguments bad"
msgstr "Els arguments de la petició són incorrectes"
-#: nis/ypclnt.c:838
+#: nis/ypclnt.c:837
msgid "RPC failure on NIS operation"
msgstr "El procediment RPC ha fallat en una operació NIS"
-#: nis/ypclnt.c:841
+#: nis/ypclnt.c:840
msgid "Can't bind to server which serves this domain"
msgstr "No s’ha pogut enllaçar amb el servidor d’aquest domini"
-#: nis/ypclnt.c:844
+#: nis/ypclnt.c:843
msgid "No such map in server's domain"
msgstr "El mapa no és al domini del servidor"
-#: nis/ypclnt.c:847
+#: nis/ypclnt.c:846
msgid "No such key in map"
msgstr "La clau no és al mapa"
-#: nis/ypclnt.c:850
+#: nis/ypclnt.c:849
msgid "Internal NIS error"
msgstr "Error intern de NIS"
-#: nis/ypclnt.c:853
+#: nis/ypclnt.c:852
msgid "Local resource allocation failure"
msgstr "No s’ha pogut assignar un recurs local"
-#: nis/ypclnt.c:856
+#: nis/ypclnt.c:855
msgid "No more records in map database"
msgstr "No hi ha més registres a la base de dades del mapa"
-#: nis/ypclnt.c:859
+#: nis/ypclnt.c:858
msgid "Can't communicate with portmapper"
msgstr "No s’ha pogut comunicar amb el mapador de ports"
-#: nis/ypclnt.c:862
+#: nis/ypclnt.c:861
msgid "Can't communicate with ypbind"
msgstr "No s’ha pogut comunicar amb «ypbind»"
-#: nis/ypclnt.c:865
+#: nis/ypclnt.c:864
msgid "Can't communicate with ypserv"
msgstr "No s’ha pogut comunicar amb «ypserv»"
-#: nis/ypclnt.c:868
+#: nis/ypclnt.c:867
msgid "Local domain name not set"
msgstr "No s’ha establert nom del domini local"
-#: nis/ypclnt.c:871
+#: nis/ypclnt.c:870
msgid "NIS map database is bad"
msgstr "La base de dades de mapes NIS és feta malbé"
-#: nis/ypclnt.c:874
+#: nis/ypclnt.c:873
msgid "NIS client/server version mismatch - can't supply service"
msgstr "Les versions de client i servidor NIS difereixen; no es pot donar servei"
-#: nis/ypclnt.c:880
+#: nis/ypclnt.c:879
msgid "Database is busy"
msgstr "La base de dades es troba ocupada"
-#: nis/ypclnt.c:883
+#: nis/ypclnt.c:882
msgid "Unknown NIS error code"
msgstr "Codi d’error desconegut de NIS"
-#: nis/ypclnt.c:923
+#: nis/ypclnt.c:922
msgid "Internal ypbind error"
msgstr "Error intern d’«ypbind»"
-#: nis/ypclnt.c:926
+#: nis/ypclnt.c:925
msgid "Domain not bound"
msgstr "El domini no és vinculat"
-#: nis/ypclnt.c:929
+#: nis/ypclnt.c:928
msgid "System resource allocation failure"
msgstr "No s’han pogut assignar recursos del sistema"
-#: nis/ypclnt.c:932
+#: nis/ypclnt.c:931
msgid "Unknown ypbind error"
msgstr "Error desconegut d’«ypbind»"
-#: nis/ypclnt.c:973
+#: nis/ypclnt.c:972
msgid "yp_update: cannot convert host to netname\n"
msgstr "yp_update: no s’ha pogut convertir el nom d’estació a nom de xarxa\n"
-#: nis/ypclnt.c:991
+#: nis/ypclnt.c:990
msgid "yp_update: cannot get server address\n"
msgstr "yp_update: no s’ha pogut obtenir l’adreça del servidor\n"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/aicache.c:82 nscd/hstcache.c:493
+#: nscd/aicache.c:82 nscd/hstcache.c:494
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "no s’ha trobat «%s» a la memòria cau de «hosts»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/aicache.c:84 nscd/hstcache.c:495
+#: nscd/aicache.c:84 nscd/hstcache.c:496
#, c-format
msgid "Reloading \"%s\" in hosts cache!"
msgstr "es torna a carregar «%s» a la memòria cau de «hosts»"
@@ -3937,7 +3961,7 @@ msgstr "s’afegeix una nova entrada «%s» de tipus %s a la memòria cau de «%
msgid " (first)"
msgstr " (primer)"
-#: nscd/cache.c:285 nscd/connections.c:1002
+#: nscd/cache.c:285 nscd/connections.c:1019
#, c-format
msgid "cannot stat() file `%s': %s"
msgstr "ha fallat stat() sobre el fitxer «%s»: %s"
@@ -3953,83 +3977,83 @@ msgstr "neteja de la memòria cau de «%s», hora %ld"
msgid "considering %s entry \"%s\", timeout %<PRIu64>"
msgstr "es considera l’entrada %s «%s», expiració %<PRIu64>"
-#: nscd/connections.c:570
+#: nscd/connections.c:571
#, c-format
msgid "invalid persistent database file \"%s\": %s"
msgstr "el fitxer de base de dades persistent «%s» no és vàlid: %s"
-#: nscd/connections.c:578
+#: nscd/connections.c:579
msgid "uninitialized header"
msgstr "la capçalera no es troba iniciada"
-#: nscd/connections.c:583
+#: nscd/connections.c:584
msgid "header size does not match"
msgstr "la mida de la capçalera no concorda"
-#: nscd/connections.c:593
+#: nscd/connections.c:594
msgid "file size does not match"
msgstr "la mida del fitxer no concorda"
-#: nscd/connections.c:610
+#: nscd/connections.c:611
msgid "verification failed"
msgstr "la verificació ha fallat"
-#: nscd/connections.c:624
+#: nscd/connections.c:625
#, c-format
msgid "suggested size of table for database %s larger than the persistent database's table"
msgstr "la mida de taula suggerida per a la base de dades «%s» és major que la de la base de dades persistent"
-#: nscd/connections.c:635 nscd/connections.c:720
+#: nscd/connections.c:636 nscd/connections.c:721
#, c-format
msgid "cannot create read-only descriptor for \"%s\"; no mmap"
msgstr "no s’ha pogut crear un descriptor de només lectura per a «%s»; no s’emprarà mmap()"
-#: nscd/connections.c:651
+#: nscd/connections.c:652
#, c-format
msgid "cannot access '%s'"
msgstr "no s’ha pogut accedir a «%s»"
-#: nscd/connections.c:699
+#: nscd/connections.c:700
#, c-format
msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart"
msgstr "la base de dades de «%s» està corrupta o sent emprada concurrentment; elimineu «%s» manualment si cal i reinicieu"
-#: nscd/connections.c:706
+#: nscd/connections.c:707
#, c-format
msgid "cannot create %s; no persistent database used"
msgstr "no s’ha pogut crear «%s»; no s’emprarà una base de dades persistent"
-#: nscd/connections.c:709
+#: nscd/connections.c:710
#, c-format
msgid "cannot create %s; no sharing possible"
msgstr "no s’ha pogut crear «%s»; no es podrà compartir"
-#: nscd/connections.c:780
+#: nscd/connections.c:781
#, c-format
msgid "cannot write to database file %s: %s"
msgstr "no s’ha pogut escriure al fitxer de base de dades «%s»: %s"
-#: nscd/connections.c:819
+#: nscd/connections.c:820
#, c-format
msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
msgstr "no s’ha pogut indicar que el connector es tanque en fer exec(): %s; s’inhabilita el mode paranoic"
-#: nscd/connections.c:868
+#: nscd/connections.c:869
#, c-format
msgid "cannot open socket: %s"
msgstr "no s’ha pogut obrir el connector: %s"
-#: nscd/connections.c:888 nscd/connections.c:952
+#: nscd/connections.c:889 nscd/connections.c:953
#, c-format
msgid "cannot change socket to nonblocking mode: %s"
msgstr "no s’ha pogut canviar el connector al mode no blocador: %s"
-#: nscd/connections.c:896 nscd/connections.c:962
+#: nscd/connections.c:897 nscd/connections.c:963
#, c-format
msgid "cannot set socket to close on exec: %s"
msgstr "no s’ha pogut indicar que el connector es tanque en fer exec(): %s"
-#: nscd/connections.c:909
+#: nscd/connections.c:910
#, c-format
msgid "cannot enable socket to accept connections: %s"
msgstr "no s’ha pogut habilitar el connector per a acceptar connexions: %s"
@@ -4037,36 +4061,36 @@ msgstr "no s’ha pogut habilitar el connector per a acceptar connexions: %s"
# Cap usa quote(). ivb
# Missatge de depuració. ivb
# Allò traçat és el fitxer, segons el codi. ivb
-#: nscd/connections.c:986
+#: nscd/connections.c:1003
#, c-format
msgid "register trace file %s for database %s"
msgstr "es registra el fitxer traçat «%s» per a la base de dades «%s»"
-#: nscd/connections.c:1116
+#: nscd/connections.c:1133
#, c-format
msgid "provide access to FD %d, for %s"
msgstr "es proporciona accés al descriptor de fitxer %d, per a «%s»"
-#: nscd/connections.c:1128
+#: nscd/connections.c:1145
#, c-format
msgid "cannot handle old request version %d; current version is %d"
msgstr "no s’ha pogut atendre la petició amb versió antiga %d; la versió actual és %d"
-#: nscd/connections.c:1150
+#: nscd/connections.c:1167
#, c-format
msgid "request from %ld not handled due to missing permission"
msgstr "no s’atén la petició de %ld per manca de permissos"
-#: nscd/connections.c:1155
+#: nscd/connections.c:1172
#, c-format
msgid "request from '%s' [%ld] not handled due to missing permission"
msgstr "no s’atén la petició de «%s» (%ld) per manca de permissos"
-#: nscd/connections.c:1160
+#: nscd/connections.c:1177
msgid "request not handled due to missing permission"
msgstr "no s’atén la petició per manca de permissos"
-#: nscd/connections.c:1198 nscd/connections.c:1251
+#: nscd/connections.c:1215 nscd/connections.c:1268
#, c-format
msgid "cannot write result: %s"
msgstr "no s’ha pogut escriure el resultat: %s"
@@ -4076,129 +4100,129 @@ msgstr "no s’ha pogut escriure el resultat: %s"
# ivb dimoni «nscd» per consultar la memòria cau o invalidar-la. Per
# ivb això faig servir «programa de control» (com «ndc» amb «named» o
# ivb «chronyc» amb «chronyd»).
-#: nscd/connections.c:1342
+#: nscd/connections.c:1359
#, c-format
msgid "error getting caller's id: %s"
msgstr "error en obtenir l’identificador del programa de control: %s"
-#: nscd/connections.c:1402
+#: nscd/connections.c:1419
#, c-format
msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
msgstr "no s’ha pogut obrir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic"
-#: nscd/connections.c:1416
+#: nscd/connections.c:1433
#, c-format
msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
msgstr "no s’ha pogut llegir «/proc/self/cmdline»: %s; s’inhabilita el mode paranoic"
-#: nscd/connections.c:1456
+#: nscd/connections.c:1473
#, c-format
msgid "cannot change to old UID: %s; disabling paranoia mode"
msgstr "no s’ha pogut tornar a l’UID vell: %s; s’inhabilita el mode paranoic"
-#: nscd/connections.c:1466
+#: nscd/connections.c:1483
#, c-format
msgid "cannot change to old GID: %s; disabling paranoia mode"
msgstr "no s’ha pogut tornar al GID vell: %s; s’inhabilita el mode paranoic"
-#: nscd/connections.c:1479
+#: nscd/connections.c:1496
#, c-format
msgid "cannot change to old working directory: %s; disabling paranoia mode"
msgstr "no s’ha pogut tornar al directori vell de treball: %s; s’inhabilita el mode paranoic"
-#: nscd/connections.c:1525
+#: nscd/connections.c:1542
#, c-format
msgid "re-exec failed: %s; disabling paranoia mode"
msgstr "ha fallat la reexecució: %s; s’inhabilita el mode paranoic"
-#: nscd/connections.c:1534
+#: nscd/connections.c:1551
#, c-format
msgid "cannot change current working directory to \"/\": %s"
msgstr "no s’ha pogut canviar el directori de treball a «/»: %s"
-#: nscd/connections.c:1727
+#: nscd/connections.c:1744
#, c-format
msgid "short read while reading request: %s"
msgstr "lectura incompleta en llegir la petició: %s"
-#: nscd/connections.c:1760
+#: nscd/connections.c:1777
#, c-format
msgid "key length in request too long: %d"
msgstr "la longitud de la clau de la petició és massa gran: %d"
-#: nscd/connections.c:1773
+#: nscd/connections.c:1790
#, c-format
msgid "short read while reading request key: %s"
msgstr "lectura incompleta en llegir la clau de la petició: %s"
-#: nscd/connections.c:1782
+#: nscd/connections.c:1800
#, c-format
msgid "handle_request: request received (Version = %d) from PID %ld"
msgstr "handle_request: s’ha rebut una petició (amb versió %d) del PID %ld"
-#: nscd/connections.c:1787
+#: nscd/connections.c:1805
#, c-format
msgid "handle_request: request received (Version = %d)"
msgstr "handle_request: s’ha rebut una petició (amb versió %d)"
-#: nscd/connections.c:1999 nscd/connections.c:2227
+#: nscd/connections.c:2069 nscd/connections.c:2271
#, c-format
msgid "disabled inotify after read error %d"
msgstr "s’inhabilita «inotify» per l’error de lectura amb codi %d"
-#: nscd/connections.c:2374
+#: nscd/connections.c:2394
msgid "could not initialize conditional variable"
msgstr "no s’ha pogut iniciar la variable condicional"
-#: nscd/connections.c:2382
+#: nscd/connections.c:2402
msgid "could not start clean-up thread; terminating"
msgstr "no s’ha pogut iniciar el fil d’execució de neteja; s’està finalitzant"
-#: nscd/connections.c:2396
+#: nscd/connections.c:2416
msgid "could not start any worker thread; terminating"
msgstr "no s’ha pogut iniciar cap fil d’execució treballador; s’està finalitzant"
-#: nscd/connections.c:2447 nscd/connections.c:2448 nscd/connections.c:2465
-#: nscd/connections.c:2474 nscd/connections.c:2492 nscd/connections.c:2503
-#: nscd/connections.c:2514
+#: nscd/connections.c:2467 nscd/connections.c:2468 nscd/connections.c:2485
+#: nscd/connections.c:2494 nscd/connections.c:2512 nscd/connections.c:2523
+#: nscd/connections.c:2534
#, c-format
msgid "Failed to run nscd as user '%s'"
msgstr "no s’ha pogut executar «nscd» com a l’usuari «%s»"
-#: nscd/connections.c:2466
+#: nscd/connections.c:2486
#, c-format
msgid "initial getgrouplist failed"
msgstr "ha fallat getgrouplist() inicial"
-#: nscd/connections.c:2475
+#: nscd/connections.c:2495
#, c-format
msgid "getgrouplist failed"
msgstr "ha fallat getgrouplist()"
-#: nscd/connections.c:2493
+#: nscd/connections.c:2513
#, c-format
msgid "setgroups failed"
msgstr "ha fallat setgroups()"
-#: nscd/grpcache.c:407 nscd/hstcache.c:440 nscd/initgrcache.c:411
-#: nscd/pwdcache.c:383 nscd/servicescache.c:338
+#: nscd/grpcache.c:413 nscd/hstcache.c:441 nscd/initgrcache.c:419
+#: nscd/pwdcache.c:391 nscd/servicescache.c:346
#, c-format
msgid "short write in %s: %s"
msgstr "escriptura incompleta a «%s»: %s"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/grpcache.c:452 nscd/initgrcache.c:77
+#: nscd/grpcache.c:458 nscd/initgrcache.c:77
#, c-format
msgid "Haven't found \"%s\" in group cache!"
msgstr "no s’ha trobat «%s» a la memòria cau de «group»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/grpcache.c:454 nscd/initgrcache.c:79
+#: nscd/grpcache.c:460 nscd/initgrcache.c:79
#, c-format
msgid "Reloading \"%s\" in group cache!"
msgstr "es torna a carregar «%s» a la memòria cau de «group»"
-#: nscd/grpcache.c:533
+#: nscd/grpcache.c:539
#, c-format
msgid "Invalid numeric gid \"%s\"!"
msgstr "«%s» no és un identificador numèric de grup vàlid"
@@ -4226,13 +4250,13 @@ msgid "Reloading \"%s\" in netgroup cache!"
msgstr "es torna a carregar «%s» a la memòria cau de «netgroup»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/netgroupcache.c:467
+#: nscd/netgroupcache.c:475
#, c-format
msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "no s’ha trobat «%s (%s,%s,%s)» a la memòria cau de «netgroup»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/netgroupcache.c:470
+#: nscd/netgroupcache.c:478
#, c-format
msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
msgstr "es torna a carregar «%s (%s,%s,%s)» a la memòria cau de «netgroup»"
@@ -4288,7 +4312,7 @@ msgstr "Empra una memòria cau diferent per a cada usuari."
msgid "Name Service Cache Daemon."
msgstr "Dimoni de memòria cau del servei de noms."
-#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:208
+#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:206
#, c-format
msgid "wrong number of arguments"
msgstr "el nombre d’arguments és incorrecte"
@@ -4303,46 +4327,46 @@ msgstr "error en llegir el fitxer de configuració; açò és fatal"
msgid "already running"
msgstr "ja es troba en marxa"
-#: nscd/nscd.c:201 nscd/nscd.c:259
+#: nscd/nscd.c:201
#, c-format
msgid "cannot fork"
msgstr "ha fallat fork()"
-#: nscd/nscd.c:268
+#: nscd/nscd.c:259
#, c-format
msgid "cannot change current working directory to \"/\""
msgstr "no s’ha pogut canviar el directori de treball a «/»"
-#: nscd/nscd.c:276
+#: nscd/nscd.c:267
msgid "Could not create log file"
msgstr "no s’ha pogut crear el fitxer de registre"
-#: nscd/nscd.c:348 nscd/nscd.c:373 nscd/nscd_stat.c:173
+#: nscd/nscd.c:339 nscd/nscd.c:364 nscd/nscd_stat.c:173
#, c-format
msgid "Only root is allowed to use this option!"
msgstr "només root pot emprar aquesta opció"
-#: nscd/nscd.c:388
+#: nscd/nscd.c:379
#, c-format
msgid "'%s' is not a known database"
msgstr "«%s» no és una base de dades coneguda"
-#: nscd/nscd.c:413 nscd/nscd_stat.c:192
+#: nscd/nscd.c:404 nscd/nscd_stat.c:192
#, c-format
msgid "write incomplete"
msgstr "escriptura incompleta"
-#: nscd/nscd.c:424
+#: nscd/nscd.c:415
#, c-format
msgid "cannot read invalidate ACK"
msgstr "no s’ha pogut llegir l’ACK d’invalidació"
-#: nscd/nscd.c:430
+#: nscd/nscd.c:421
#, c-format
msgid "invalidation failed"
msgstr "la invalidació ha fallat"
-#: nscd/nscd.c:440
+#: nscd/nscd.c:431
#, c-format
msgid "secure services not implemented anymore"
msgstr "ja no s’implementen els serveis segurs"
@@ -4517,18 +4541,18 @@ msgstr ""
"%15s comprovar «/etc/%s» per si hi ha hagut canvis?\n"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/pwdcache.c:428
+#: nscd/pwdcache.c:436
#, c-format
msgid "Haven't found \"%s\" in password cache!"
msgstr "no s’ha trobat «%s» a la memòria cau de «passwd»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/pwdcache.c:430
+#: nscd/pwdcache.c:438
#, c-format
msgid "Reloading \"%s\" in password cache!"
msgstr "es torna a carregar «%s» a la memòria cau de «passwd»"
-#: nscd/pwdcache.c:511
+#: nscd/pwdcache.c:519
#, c-format
msgid "Invalid numeric uid \"%s\"!"
msgstr "«%s» no és un identificador numèric d’usuari vàlid"
@@ -4636,13 +4660,13 @@ msgstr ""
"%15u fallades de CAV\n"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/servicescache.c:387
+#: nscd/servicescache.c:395
#, c-format
msgid "Haven't found \"%s\" in services cache!"
msgstr "no s’ha trobat «%s» a la memòria cau de «services»"
# El nom de la base de dades s’usa més a sovint que la descripció. ivb
-#: nscd/servicescache.c:389
+#: nscd/servicescache.c:397
#, c-format
msgid "Reloading \"%s\" in services cache!"
msgstr "es torna a carregar «%s» a la memòria cau de «services»"
@@ -4651,6 +4675,10 @@ msgstr "es torna a carregar «%s» a la memòria cau de «services»"
msgid "database [key ...]"
msgstr "BASE_DE_DADES [CLAU…]"
+#: nss/getent.c:58
+msgid "CONFIG"
+msgstr "CONFIG"
+
# Més ajudes. ivb
#: nss/getent.c:58
msgid "Service configuration to be used"
@@ -4683,32 +4711,32 @@ msgstr "Bases de dades acceptades:\n"
msgid "Unknown database: %s\n"
msgstr "la base de dades no és coneguda: %s\n"
-#: nss/makedb.c:118
+#: nss/makedb.c:119
msgid "Convert key to lower case"
msgstr "Converteix la clau a minúscules."
-#: nss/makedb.c:121
+#: nss/makedb.c:122
msgid "Do not print messages while building database"
msgstr "No mostra cap missatge mentre es crea la base de dades."
-#: nss/makedb.c:123
+#: nss/makedb.c:124
msgid "Print content of database file, one entry a line"
msgstr "Mostra el contingut del fitxer de base de dades, a entrada per línia."
-#: nss/makedb.c:124
+#: nss/makedb.c:125
msgid "CHAR"
msgstr "CARÀCTER"
# No tinc massa clar el significat. ivb
-#: nss/makedb.c:125
+#: nss/makedb.c:126
msgid "Generated line not part of iteration"
msgstr "Línia generada a excloure de la iteració."
-#: nss/makedb.c:130
+#: nss/makedb.c:131
msgid "Create simple database from textual input."
msgstr "Crea una base de dades simple partint de l’entrada textual."
-#: nss/makedb.c:133
+#: nss/makedb.c:134
msgid ""
"INPUT-FILE OUTPUT-FILE\n"
"-o OUTPUT-FILE INPUT-FILE\n"
@@ -4718,71 +4746,76 @@ msgstr ""
"-o FITXER_EIXIDA FITXER_ENTRADA\n"
"-u FITXER_ENTRADA"
-#: nss/makedb.c:229
+#: nss/makedb.c:227
#, c-format
msgid "cannot open database file `%s'"
msgstr "no s’ha pogut obrir el fitxer de base de dades «%s»"
-#: nss/makedb.c:274
+#: nss/makedb.c:272
#, c-format
msgid "no entries to be processed"
msgstr "no hi ha cap entrada que processar"
-#: nss/makedb.c:284
+#: nss/makedb.c:282
#, c-format
msgid "cannot create temporary file name"
msgstr "no s’ha pogut crear un nom de fitxer temporal"
-#: nss/makedb.c:306
+#: nss/makedb.c:288
+#, c-format
+msgid "cannot create temporary file"
+msgstr "no s’ha pogut crear un fitxer temporal"
+
+#: nss/makedb.c:304
#, c-format
msgid "cannot stat newly created file"
msgstr "ha fallat stat() sobre el nou fitxer temporal"
-#: nss/makedb.c:317
+#: nss/makedb.c:315
#, c-format
msgid "cannot rename temporary file"
msgstr "no s’ha pogut reanomenar el fitxer temporal"
-#: nss/makedb.c:533 nss/makedb.c:556
+#: nss/makedb.c:531 nss/makedb.c:554
#, c-format
msgid "cannot create search tree"
msgstr "no s’ha pogut crear l’arbre de cerca"
-#: nss/makedb.c:562
+#: nss/makedb.c:560
msgid "duplicate key"
msgstr "la clau és duplicada"
-#: nss/makedb.c:574
+#: nss/makedb.c:572
#, c-format
msgid "problems while reading `%s'"
msgstr "problemes en llegir «%s»"
-#: nss/makedb.c:801
+#: nss/makedb.c:799
#, c-format
msgid "failed to write new database file"
msgstr "no s’ha pogut escriure el nou fitxer de base de dades"
-#: nss/makedb.c:814
+#: nss/makedb.c:812
#, c-format
msgid "cannot stat database file"
msgstr "ha fallat stat() sobre el fitxer de base de dades"
-#: nss/makedb.c:819
+#: nss/makedb.c:817
#, c-format
msgid "cannot map database file"
msgstr "no s’ha pogut mapar el fitxer de base de dades"
-#: nss/makedb.c:822
+#: nss/makedb.c:820
#, c-format
msgid "file not a database file"
msgstr "el fitxer no és un fitxer de base dades"
-#: nss/makedb.c:873
+#: nss/makedb.c:871
#, c-format
msgid "cannot set file creation context for `%s'"
msgstr "no s’ha pogut establir el context de creació per a «%s»"
-#: ports/sysdeps/unix/sysv/linux/ia64/makecontext.c:62
+#: ports/sysdeps/unix/sysv/linux/ia64/makecontext.c:58
#, c-format
msgid "makecontext: does not know how to handle more than 8 arguments\n"
msgstr "makecontext: no es poden tractar més de 8 arguments\n"
@@ -4838,131 +4871,131 @@ msgstr "indefinida"
msgid "Unrecognized variable `%s'"
msgstr "la variable «%s» no és reconeguda"
-#: posix/getopt.c:593 posix/getopt.c:622
+#: posix/getopt.c:592 posix/getopt.c:621
#, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
msgstr "%s: l’opció «%s» és ambígua; possibilitats:"
-#: posix/getopt.c:663 posix/getopt.c:667
+#: posix/getopt.c:662 posix/getopt.c:666
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: l’opció «--%s» no admet arguments\n"
-#: posix/getopt.c:676 posix/getopt.c:681
+#: posix/getopt.c:675 posix/getopt.c:680
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr "%s: l’opció «%c%s» no admet arguments\n"
-#: posix/getopt.c:724 posix/getopt.c:743
+#: posix/getopt.c:723 posix/getopt.c:742
#, c-format
msgid "%s: option '--%s' requires an argument\n"
msgstr "%s: l’opció «--%s» necessita un argument\n"
-#: posix/getopt.c:781 posix/getopt.c:784
+#: posix/getopt.c:780 posix/getopt.c:783
#, c-format
msgid "%s: unrecognized option '--%s'\n"
msgstr "%s: l’opció «--%s» no és reconeguda\n"
-#: posix/getopt.c:792 posix/getopt.c:795
+#: posix/getopt.c:791 posix/getopt.c:794
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
msgstr "%s: l’opció «%c%s» no és reconeguda\n"
-#: posix/getopt.c:844 posix/getopt.c:847
+#: posix/getopt.c:843 posix/getopt.c:846
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: l’opció «%c» no és vàlida\n"
-#: posix/getopt.c:900 posix/getopt.c:917 posix/getopt.c:1127
-#: posix/getopt.c:1145
+#: posix/getopt.c:899 posix/getopt.c:916 posix/getopt.c:1126
+#: posix/getopt.c:1144
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: l’opció «%c» necessita un argument\n"
-#: posix/getopt.c:973 posix/getopt.c:989
+#: posix/getopt.c:972 posix/getopt.c:988
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
msgstr "%s: l’opció «-W %s» és ambígua\n"
-#: posix/getopt.c:1013 posix/getopt.c:1031
+#: posix/getopt.c:1012 posix/getopt.c:1030
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr "%s: l’opció «-W %s» no admet arguments\n"
-#: posix/getopt.c:1052 posix/getopt.c:1070
+#: posix/getopt.c:1051 posix/getopt.c:1069
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
msgstr "%s: l’opció «-W %s» necessita un argument\n"
-#: posix/regcomp.c:134
+#: posix/regcomp.c:136
msgid "No match"
msgstr "No hi ha cap coincidència"
-#: posix/regcomp.c:137
+#: posix/regcomp.c:139
msgid "Invalid regular expression"
msgstr "L’expressió regular no és vàlida"
-#: posix/regcomp.c:140
+#: posix/regcomp.c:142
msgid "Invalid collation character"
msgstr "El caràcter d’ordenació no és vàlid"
-#: posix/regcomp.c:143
+#: posix/regcomp.c:145
msgid "Invalid character class name"
msgstr "El nom de la classe de caràcters no és vàlid"
-#: posix/regcomp.c:146
+#: posix/regcomp.c:148
msgid "Trailing backslash"
msgstr "Hi ha una barra invertida sobrant al final"
-#: posix/regcomp.c:149
+#: posix/regcomp.c:151
msgid "Invalid back reference"
msgstr "La referència cap enrere no és vàlida"
-#: posix/regcomp.c:152
+#: posix/regcomp.c:154
msgid "Unmatched [ or [^"
msgstr "«[» o «[^» desaparellat"
-#: posix/regcomp.c:155
+#: posix/regcomp.c:157
msgid "Unmatched ( or \\("
msgstr "«(» o «\\(» desaparellat"
-#: posix/regcomp.c:158
+#: posix/regcomp.c:160
msgid "Unmatched \\{"
msgstr "«\\{» desaparellat"
-#: posix/regcomp.c:161
+#: posix/regcomp.c:163
msgid "Invalid content of \\{\\}"
msgstr "El contingut de «\\{\\}» no és vàlid"
-#: posix/regcomp.c:164
+#: posix/regcomp.c:166
msgid "Invalid range end"
msgstr "El final del rang no és vàlid"
-#: posix/regcomp.c:167
+#: posix/regcomp.c:169
msgid "Memory exhausted"
msgstr "La memòria s’ha exhaurit"
-#: posix/regcomp.c:170
+#: posix/regcomp.c:172
msgid "Invalid preceding regular expression"
msgstr "L’expressió regular precedent és incorrecta"
-#: posix/regcomp.c:173
+#: posix/regcomp.c:175
msgid "Premature end of regular expression"
msgstr "Fi prematura de l’expressió regular"
-#: posix/regcomp.c:176
+#: posix/regcomp.c:178
msgid "Regular expression too big"
msgstr "L’expressió regular és massa llarga"
-#: posix/regcomp.c:179
+#: posix/regcomp.c:181
msgid "Unmatched ) or \\)"
msgstr "«)» o «\\)» desaparellat"
-#: posix/regcomp.c:679
+#: posix/regcomp.c:681
msgid "No previous regular expression"
msgstr "No hi ha expressió regular prèvia"
-#: posix/wordexp.c:1830
+#: posix/wordexp.c:1840
msgid "parameter null or not set"
msgstr "el paràmetre és nul o no s’ha establert"
@@ -4997,27 +5030,27 @@ msgstr "Error desconegut del sistema de resolució"
# ivb (2002/02/08)
# ivb En realitat es refereic a la paraula clau d'«/etc/host.conf» «trim»,
# ivb però crec que així queda més clar.
-#: resolv/res_hconf.c:122
+#: resolv/res_hconf.c:121
#, c-format
msgid "%s: line %d: cannot specify more than %d trim domains"
msgstr "%s: línia %d: no es poden especificar més de %d dominis a retallar"
-#: resolv/res_hconf.c:143
+#: resolv/res_hconf.c:142
#, c-format
msgid "%s: line %d: list delimiter not followed by domain"
msgstr "%s: línia %d: cal un domini a continuació del delimitador de llista"
-#: resolv/res_hconf.c:202
+#: resolv/res_hconf.c:201
#, c-format
msgid "%s: line %d: expected `on' or `off', found `%s'\n"
msgstr "%s: línia %d: cal «on» o «off», però s’ha trobat «%s»\n"
-#: resolv/res_hconf.c:245
+#: resolv/res_hconf.c:244
#, c-format
msgid "%s: line %d: bad command `%s'\n"
msgstr "%s: línia %d: l’ordre «%s» no és vàlida\n"
-#: resolv/res_hconf.c:280
+#: resolv/res_hconf.c:279
#, c-format
msgid "%s: line %d: ignoring trailing garbage `%s'\n"
msgstr "%s: línia %d: es descarta la brossa «%s» al final de la línia\n"
@@ -5212,7 +5245,7 @@ msgstr "%s%sSenyal desconegut %d\n"
msgid "Unknown signal"
msgstr "Senyal desconegut"
-#: string/_strerror.c:46 sysdeps/mach/_strerror.c:86
+#: string/_strerror.c:45 sysdeps/mach/_strerror.c:86
msgid "Unknown error "
msgstr "Error desconegut "
@@ -5230,11 +5263,11 @@ msgstr "Senyal de temps real %d"
msgid "Unknown signal %d"
msgstr "Senyal desconegut %d"
-#: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:134
+#: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:135
#: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:188 sunrpc/svc_tcp.c:233
#: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229
-#: sunrpc/xdr.c:630 sunrpc/xdr.c:790 sunrpc/xdr_array.c:97
-#: sunrpc/xdr_rec.c:151 sunrpc/xdr_ref.c:76
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:97
+#: sunrpc/xdr_rec.c:152 sunrpc/xdr_ref.c:76
msgid "out of memory\n"
msgstr "no resta memòria\n"
@@ -5403,260 +5436,260 @@ msgstr "problema amb el sondeig de la difusió"
msgid "Cannot receive reply to broadcast"
msgstr "no s’ha pogut rebre una resposta a la difusió"
-#: sunrpc/rpc_main.c:277
+#: sunrpc/rpc_main.c:281
#, c-format
msgid "%s: output would overwrite %s\n"
msgstr "%s: l’eixida sobreescriuria «%s»\n"
-#: sunrpc/rpc_main.c:284
+#: sunrpc/rpc_main.c:288
#, c-format
msgid "%s: unable to open %s: %m\n"
msgstr "%s: no s’ha pogut obrir «%s»: %m\n"
-#: sunrpc/rpc_main.c:296
+#: sunrpc/rpc_main.c:300
#, c-format
msgid "%s: while writing output %s: %m"
msgstr "%s: en escriure a l’eixida «%s»: %m"
-#: sunrpc/rpc_main.c:332 sunrpc/rpc_main.c:371
+#: sunrpc/rpc_main.c:336 sunrpc/rpc_main.c:375
#, c-format
msgid "cannot find C preprocessor: %s\n"
msgstr "no s’ha pogut trobar el preprocessador de C: %s\n"
-#: sunrpc/rpc_main.c:407
+#: sunrpc/rpc_main.c:411
#, c-format
msgid "%s: C preprocessor failed with signal %d\n"
msgstr "%s: el preprocessador de C ha fallat amb el senyal %d\n"
-#: sunrpc/rpc_main.c:410
+#: sunrpc/rpc_main.c:414
#, c-format
msgid "%s: C preprocessor failed with exit code %d\n"
msgstr "%s: el preprocessador de C ha fallat amb el codi d’eixida %d\n"
-#: sunrpc/rpc_main.c:450
+#: sunrpc/rpc_main.c:454
#, c-format
msgid "illegal nettype: `%s'\n"
msgstr "el tipus de xarxa no és permès: «%s»\n"
-#: sunrpc/rpc_main.c:1085
+#: sunrpc/rpc_main.c:1089
#, c-format
msgid "rpcgen: too many defines\n"
msgstr "rpcgen: hi ha massa definicions\n"
-#: sunrpc/rpc_main.c:1097
+#: sunrpc/rpc_main.c:1101
#, c-format
msgid "rpcgen: arglist coding error\n"
msgstr "rpcgen: error en codificar els arguments\n"
#. TRANS: the file will not be removed; this is an
#. TRANS: informative message.
-#: sunrpc/rpc_main.c:1130
+#: sunrpc/rpc_main.c:1134
#, c-format
msgid "file `%s' already exists and may be overwritten\n"
msgstr "el fitxer «%s» ja existeix i podria ser sobreescrit\n"
-#: sunrpc/rpc_main.c:1175
+#: sunrpc/rpc_main.c:1179
#, c-format
msgid "Cannot specify more than one input file!\n"
msgstr "no es pot especificar més d’un fitxer d’entrada\n"
-#: sunrpc/rpc_main.c:1345
+#: sunrpc/rpc_main.c:1349
#, c-format
msgid "This implementation doesn't support newstyle or MT-safe code!\n"
msgstr "aquesta implementació no accepta l’estil nou ni el codi compatible amb MT\n"
-#: sunrpc/rpc_main.c:1354
+#: sunrpc/rpc_main.c:1358
#, c-format
msgid "Cannot use netid flag with inetd flag!\n"
msgstr "no es pot emprar l’opció IDXARXA («-n») amb l’opció d’inetd («-I»)\n"
-#: sunrpc/rpc_main.c:1363
+#: sunrpc/rpc_main.c:1367
#, c-format
msgid "Cannot use netid flag without TIRPC!\n"
msgstr "no es pot emprar l’opció IDXARXA («-n») sense TIRPC\n"
-#: sunrpc/rpc_main.c:1370
+#: sunrpc/rpc_main.c:1374
#, c-format
msgid "Cannot use table flags with newstyle!\n"
msgstr "no es poden emprar opcions de taula amb l’estil nou («-N»)\n"
-#: sunrpc/rpc_main.c:1389
+#: sunrpc/rpc_main.c:1393
#, c-format
msgid "\"infile\" is required for template generation flags.\n"
msgstr "cal FITXER_ENTRADA per als senyaladors de generació de plantilles\n"
-#: sunrpc/rpc_main.c:1394
+#: sunrpc/rpc_main.c:1398
#, c-format
msgid "Cannot have more than one file generation flag!\n"
msgstr "no es pot tenir més d’un senyalador de generació de fitxers\n"
-#: sunrpc/rpc_main.c:1403
+#: sunrpc/rpc_main.c:1407
#, c-format
msgid "usage: %s infile\n"
msgstr "Forma d’ús: %s FITXER_ENTRADA\n"
-#: sunrpc/rpc_main.c:1404
+#: sunrpc/rpc_main.c:1408
#, c-format
msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
msgstr ""
" %s [-abkCLNTM] [-DNOM[=VALOR]] [-i MIDA] [-I [-K SEGONS]]\n"
" [-Y CAMÍ] FITXER_ENTRADA\n"
-#: sunrpc/rpc_main.c:1406
+#: sunrpc/rpc_main.c:1410
#, c-format
msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
msgstr ""
" %s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o FITXER_EIXIDA]\n"
" [FITXER_ENTRADA]\n"
-#: sunrpc/rpc_main.c:1408
+#: sunrpc/rpc_main.c:1412
#, c-format
msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
msgstr " %s [-s TIPUS_DE_XARXA]… [-o FITXER_EIXIDA] [FITXER_ENTRADA]\n"
-#: sunrpc/rpc_main.c:1409
+#: sunrpc/rpc_main.c:1413
#, c-format
msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
msgstr " %s [-n IDXARXA]… [-o FITXER_EIXIDA] [FITXER_ENTRADA]\n"
-#: sunrpc/rpc_main.c:1417
+#: sunrpc/rpc_main.c:1421
#, c-format
msgid "options:\n"
msgstr ""
"Opcions:\n"
"\n"
-#: sunrpc/rpc_main.c:1418
+#: sunrpc/rpc_main.c:1422
#, c-format
msgid "-a\t\tgenerate all files, including samples\n"
msgstr " -a Genera tots els fitxers, incloent els exemples.\n"
-#: sunrpc/rpc_main.c:1419
+#: sunrpc/rpc_main.c:1423
#, c-format
msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n"
msgstr ""
" -b Mode de compatibilitat cap enrere (genera codi per a\n"
" SunOS 4.1).\n"
-#: sunrpc/rpc_main.c:1420
+#: sunrpc/rpc_main.c:1424
#, c-format
msgid "-c\t\tgenerate XDR routines\n"
msgstr " -c Genera rutines XDR.\n"
-#: sunrpc/rpc_main.c:1421
+#: sunrpc/rpc_main.c:1425
#, c-format
msgid "-C\t\tANSI C mode\n"
msgstr " -C Mode ANSI C.\n"
-#: sunrpc/rpc_main.c:1422
+#: sunrpc/rpc_main.c:1426
#, c-format
msgid "-Dname[=value]\tdefine a symbol (same as #define)\n"
msgstr " -DNOM[=VALOR] Defineix un símbol (equival a «#define»).\n"
-#: sunrpc/rpc_main.c:1423
+#: sunrpc/rpc_main.c:1427
#, c-format
msgid "-h\t\tgenerate header file\n"
msgstr " -h Genera un fitxer de capçaleres.\n"
-#: sunrpc/rpc_main.c:1424
+#: sunrpc/rpc_main.c:1428
#, c-format
msgid "-i size\t\tsize at which to start generating inline code\n"
msgstr " -i MIDA Indica la MIDA on començar a generar codi en línia.\n"
-#: sunrpc/rpc_main.c:1425
+#: sunrpc/rpc_main.c:1429
#, c-format
msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n"
msgstr ""
" -I Genera codi de compatibilitat amb «inetd» per al\n"
" servidor (per a SunOS 4.1).\n"
-#: sunrpc/rpc_main.c:1426
+#: sunrpc/rpc_main.c:1430
#, c-format
msgid "-K seconds\tserver exits after K seconds of inactivity\n"
msgstr ""
" -K SEGONS Fa que el servidor isca després del nombre indicat de\n"
" SEGONS d’inactivitat.\n"
-#: sunrpc/rpc_main.c:1427
+#: sunrpc/rpc_main.c:1431
#, c-format
msgid "-l\t\tgenerate client side stubs\n"
msgstr " -l Genera esquelets per a la part del client.\n"
-#: sunrpc/rpc_main.c:1428
+#: sunrpc/rpc_main.c:1432
#, c-format
msgid "-L\t\tserver errors will be printed to syslog\n"
msgstr " -L Fa que els errors del servidor s’envien a «syslog».\n"
-#: sunrpc/rpc_main.c:1429
+#: sunrpc/rpc_main.c:1433
#, c-format
msgid "-m\t\tgenerate server side stubs\n"
msgstr " -m Genera esquelets per a la part del servidor.\n"
-#: sunrpc/rpc_main.c:1430
+#: sunrpc/rpc_main.c:1434
#, c-format
msgid "-M\t\tgenerate MT-safe code\n"
msgstr " -M Genera codi compatible amb múltiples fils d’execució.\n"
# Sembla que «netid» és una expressió de la jerga RPC. ivb
-#: sunrpc/rpc_main.c:1431
+#: sunrpc/rpc_main.c:1435
#, c-format
msgid "-n netid\tgenerate server code that supports named netid\n"
msgstr " -n NETID Genera codi compatible amb el NETID indicat.\n"
-#: sunrpc/rpc_main.c:1432
+#: sunrpc/rpc_main.c:1436
#, c-format
msgid "-N\t\tsupports multiple arguments and call-by-value\n"
msgstr " -N Permet arguments múltiples i pas d’arguments per valor.\n"
-#: sunrpc/rpc_main.c:1433
+#: sunrpc/rpc_main.c:1437
#, c-format
msgid "-o outfile\tname of the output file\n"
msgstr " -o FITXER_EIXIDA Nom del fitxer d’eixida.\n"
-#: sunrpc/rpc_main.c:1434
+#: sunrpc/rpc_main.c:1438
#, c-format
msgid "-s nettype\tgenerate server code that supports named nettype\n"
msgstr ""
" -s TIPUS_DE_XARXA Genera codi de servidor compatible amb el TIPUS_DE_XARXA\n"
" indicat.\n"
-#: sunrpc/rpc_main.c:1435
+#: sunrpc/rpc_main.c:1439
#, c-format
msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n"
msgstr ""
" -Sc Genera codi d’exemple per a un client que empra\n"
" procediments remots.\n"
-#: sunrpc/rpc_main.c:1436
+#: sunrpc/rpc_main.c:1440
#, c-format
msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n"
msgstr ""
" -Ss Genera codi d’exemple per a un servidor que defineix\n"
" procediments remots.\n"
-#: sunrpc/rpc_main.c:1437
+#: sunrpc/rpc_main.c:1441
#, c-format
msgid "-Sm \t\tgenerate makefile template \n"
msgstr " -Sm Genera una plantilla de fitxer «Makefile».\n"
-#: sunrpc/rpc_main.c:1438
+#: sunrpc/rpc_main.c:1442
#, c-format
msgid "-t\t\tgenerate RPC dispatch table\n"
msgstr " -t Genera una taula de despatxat de crides RPC.\n"
-#: sunrpc/rpc_main.c:1439
+#: sunrpc/rpc_main.c:1443
#, c-format
msgid "-T\t\tgenerate code to support RPC dispatch tables\n"
msgstr ""
" -T Genera codi per a treballar amb taules de despatxat de\n"
" crides RPC.\n"
-#: sunrpc/rpc_main.c:1440
+#: sunrpc/rpc_main.c:1444
#, c-format
msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n"
msgstr " -Y CAMÍ Directori on es troba el preprocessador de C (cpp).\n"
-#: sunrpc/rpc_main.c:1442
+#: sunrpc/rpc_main.c:1446
#, c-format
msgid ""
"\n"
@@ -6465,44 +6498,45 @@ msgstr "Hi ha massa usuaris"
msgid "Disk quota exceeded"
msgstr "S’ha excedit la quota de disc"
-#. 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.
-#: sysdeps/gnu/errlist.c:787
-msgid "Stale NFS file handle"
-msgstr "L’indicador del fitxer NFS és obsolet"
+#. TRANS Stale file handle. 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 "L’indicador del fitxer és obsolet"
#. 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:799
+#: sysdeps/gnu/errlist.c:800
msgid "Object is remote"
msgstr "L’objecte és remot"
#. TRANS ???
-#: sysdeps/gnu/errlist.c:808
+#: sysdeps/gnu/errlist.c:809
msgid "RPC struct is bad"
msgstr "L’estructura RPC és feta malbé"
#. TRANS ???
-#: sysdeps/gnu/errlist.c:817
+#: sysdeps/gnu/errlist.c:818
msgid "RPC version wrong"
msgstr "La versió d’RPC no és correcta"
#. TRANS ???
-#: sysdeps/gnu/errlist.c:826
+#: sysdeps/gnu/errlist.c:827
msgid "RPC program not available"
msgstr "El programa RPC no es troba disponible"
#. TRANS ???
-#: sysdeps/gnu/errlist.c:835
+#: sysdeps/gnu/errlist.c:836
msgid "RPC program version wrong"
msgstr "La versió del programa RPC no és correcta"
#. TRANS ???
-#: sysdeps/gnu/errlist.c:844
+#: sysdeps/gnu/errlist.c:845
msgid "RPC bad procedure for program"
msgstr "El procediment RPC no és vàlid per al programa"
@@ -6510,7 +6544,7 @@ msgstr "El procediment RPC no és vàlid per al programa"
#. 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:856
+#: sysdeps/gnu/errlist.c:857
msgid "No locks available"
msgstr "No hi ha blocatges disponibles"
@@ -6519,17 +6553,17 @@ msgstr "No hi ha blocatges disponibles"
#. 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:869
+#: sysdeps/gnu/errlist.c:870
msgid "Inappropriate file type or format"
msgstr "El format o tipus de fitxer no és l’apropiat"
#. TRANS ???
-#: sysdeps/gnu/errlist.c:878
+#: sysdeps/gnu/errlist.c:879
msgid "Authentication error"
msgstr "Error d’autenticació"
#. TRANS ???
-#: sysdeps/gnu/errlist.c:887
+#: sysdeps/gnu/errlist.c:888
msgid "Need authenticator"
msgstr "Cal un autenticador"
@@ -6538,7 +6572,7 @@ msgstr "Cal un autenticador"
#. 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:900
+#: sysdeps/gnu/errlist.c:901
msgid "Function not implemented"
msgstr "La funció no està implementada"
@@ -6554,13 +6588,13 @@ msgstr "La funció no està implementada"
#. TRANS
#. TRANS If the entire function is not available at all in the implementation,
#. TRANS it returns @code{ENOSYS} instead.
-#: sysdeps/gnu/errlist.c:920
+#: sysdeps/gnu/errlist.c:921
msgid "Not supported"
msgstr "No se’n permet l’ú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.
-#: sysdeps/gnu/errlist.c:930
+#: sysdeps/gnu/errlist.c:931
msgid "Invalid or incomplete multibyte or wide character"
msgstr "El caràcter estès o multioctet no és vàlid o complet"
@@ -6570,7 +6604,7 @@ msgstr "El caràcter estès o multioctet no és vàlid o complet"
#. 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:944
+#: sysdeps/gnu/errlist.c:945
msgid "Inappropriate operation for background process"
msgstr "L’operació no és adequada per a un procés de fons"
@@ -6579,75 +6613,75 @@ msgstr "L’operació no és adequada per a un procés de fons"
#. 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:955
+#: sysdeps/gnu/errlist.c:956
msgid "Translator died"
msgstr "El traductor ha mort"
#. 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:966
+#: sysdeps/gnu/errlist.c:967
msgid "?"
msgstr "?"
#. TRANS You did @strong{what}?
-#: sysdeps/gnu/errlist.c:975
+#: sysdeps/gnu/errlist.c:976
msgid "You really blew it this time"
msgstr "Ara sí que te l’has carregat"
# ivb (2001/11/05)
# ivb Ací qualsevol posa el que li dóna la gana, sembla!
#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: sysdeps/gnu/errlist.c:984
+#: sysdeps/gnu/errlist.c:985
msgid "Computer bought the farm"
msgstr "El tio Pep se’n va a Murooo, tio Peeep"
#. TRANS This error code has no purpose.
-#: sysdeps/gnu/errlist.c:993
+#: sysdeps/gnu/errlist.c:994
msgid "Gratuitous error"
msgstr "Error injustificat"
-#: sysdeps/gnu/errlist.c:1001
+#: sysdeps/gnu/errlist.c:1002
msgid "Bad message"
msgstr "El missatge no és vàlid"
-#: sysdeps/gnu/errlist.c:1009
+#: sysdeps/gnu/errlist.c:1010
msgid "Identifier removed"
msgstr "L’identificador ha estat eliminat"
-#: sysdeps/gnu/errlist.c:1017
+#: sysdeps/gnu/errlist.c:1018
msgid "Multihop attempted"
msgstr "S’ha intentat un salt múltiple"
-#: sysdeps/gnu/errlist.c:1025
+#: sysdeps/gnu/errlist.c:1026
msgid "No data available"
msgstr "No hi ha dades disponibles"
-#: sysdeps/gnu/errlist.c:1033
+#: sysdeps/gnu/errlist.c:1034
msgid "Link has been severed"
msgstr "S’ha tallat l’enllaç"
-#: sysdeps/gnu/errlist.c:1041
+#: sysdeps/gnu/errlist.c:1042
msgid "No message of desired type"
msgstr "No hi ha missatges del tipus desitjat"
-#: sysdeps/gnu/errlist.c:1049
+#: sysdeps/gnu/errlist.c:1050
msgid "Out of streams resources"
msgstr "No resten recursos del tipus flux"
-#: sysdeps/gnu/errlist.c:1057
+#: sysdeps/gnu/errlist.c:1058
msgid "Device not a stream"
msgstr "El dispositiu no és un flux"
-#: sysdeps/gnu/errlist.c:1065
+#: sysdeps/gnu/errlist.c:1066
msgid "Value too large for defined data type"
msgstr "El valor és massa gran per al tipus de dada definit"
-#: sysdeps/gnu/errlist.c:1073
+#: sysdeps/gnu/errlist.c:1074
msgid "Protocol error"
msgstr "Error de protocol"
-#: sysdeps/gnu/errlist.c:1081
+#: sysdeps/gnu/errlist.c:1082
msgid "Timer expired"
msgstr "El temporitzador ha expirat"
@@ -6655,84 +6689,84 @@ msgstr "El temporitzador ha expirat"
#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
#. TRANS the normal result is for the operations affected to complete with this
#. TRANS error; @pxref{Cancel AIO Operations}.
-#: sysdeps/gnu/errlist.c:1093
+#: sysdeps/gnu/errlist.c:1094
msgid "Operation canceled"
msgstr "L’operació ha estat canceŀlada"
-#: sysdeps/gnu/errlist.c:1101
+#: sysdeps/gnu/errlist.c:1102
msgid "Interrupted system call should be restarted"
msgstr "Caldria reiniciar la crida al sistema interrompuda"
-#: sysdeps/gnu/errlist.c:1109
+#: sysdeps/gnu/errlist.c:1110
msgid "Channel number out of range"
msgstr "El número de canal és fora de rang"
-#: sysdeps/gnu/errlist.c:1117
+#: sysdeps/gnu/errlist.c:1118
msgid "Level 2 not synchronized"
msgstr "El nivell 2 no està sincronitzat"
-#: sysdeps/gnu/errlist.c:1125
+#: sysdeps/gnu/errlist.c:1126
msgid "Level 3 halted"
msgstr "S’ha aturat el nivell 3"
-#: sysdeps/gnu/errlist.c:1133
+#: sysdeps/gnu/errlist.c:1134
msgid "Level 3 reset"
msgstr "S’ha reiniciat el nivell 3"
-#: sysdeps/gnu/errlist.c:1141
+#: sysdeps/gnu/errlist.c:1142
msgid "Link number out of range"
msgstr "El nombre d’enllaços és fora de rang"
-#: sysdeps/gnu/errlist.c:1149
+#: sysdeps/gnu/errlist.c:1150
msgid "Protocol driver not attached"
msgstr "No hi ha programa de control associat al protocol"
-#: sysdeps/gnu/errlist.c:1157
+#: sysdeps/gnu/errlist.c:1158
msgid "No CSI structure available"
msgstr "No hi ha estructures CSI disponibles"
-#: sysdeps/gnu/errlist.c:1165
+#: sysdeps/gnu/errlist.c:1166
msgid "Level 2 halted"
msgstr "S’ha aturat el nivell 2"
-#: sysdeps/gnu/errlist.c:1173
+#: sysdeps/gnu/errlist.c:1174
msgid "Invalid exchange"
msgstr "L’intercanvi no és vàlid"
-#: sysdeps/gnu/errlist.c:1181
+#: sysdeps/gnu/errlist.c:1182
msgid "Invalid request descriptor"
msgstr "El descriptor de petició no és vàlid"
-#: sysdeps/gnu/errlist.c:1189
+#: sysdeps/gnu/errlist.c:1190
msgid "Exchange full"
msgstr "L’intercanvi és ple"
# Algun sistema de fitxers té nodes-a a banda de nodes-i. ivb
-#: sysdeps/gnu/errlist.c:1197
+#: sysdeps/gnu/errlist.c:1198
msgid "No anode"
msgstr "No hi ha node‐a"
-#: sysdeps/gnu/errlist.c:1205
+#: sysdeps/gnu/errlist.c:1206
msgid "Invalid request code"
msgstr "El codi de petició no és vàlid"
-#: sysdeps/gnu/errlist.c:1213
+#: sysdeps/gnu/errlist.c:1214
msgid "Invalid slot"
msgstr "La ranura no és vàlida"
-#: sysdeps/gnu/errlist.c:1221
+#: sysdeps/gnu/errlist.c:1222
msgid "File locking deadlock error"
msgstr "Interbloqueig pel blocatge d’un fitxer"
-#: sysdeps/gnu/errlist.c:1229
+#: sysdeps/gnu/errlist.c:1230
msgid "Bad font file format"
msgstr "El fitxer de font no té un format vàlid"
-#: sysdeps/gnu/errlist.c:1237
+#: sysdeps/gnu/errlist.c:1238
msgid "Machine is not on the network"
msgstr "La màquina no es troba a la xarxa"
-#: sysdeps/gnu/errlist.c:1245
+#: sysdeps/gnu/errlist.c:1246
msgid "Package not installed"
msgstr "El paquet no es troba instaŀlat"
@@ -6741,116 +6775,116 @@ msgstr "El paquet no es troba instaŀlat"
# ivb es pot entendre «advertise» com el fet d'exportar recurs pel
# ivb seu ús en un sistema de fitxers remot. Gràcies als amics del
# ivb de.po!!
-#: sysdeps/gnu/errlist.c:1253
+#: sysdeps/gnu/errlist.c:1254
msgid "Advertise error"
msgstr "Error d’exportació"
-#: sysdeps/gnu/errlist.c:1261
+#: sysdeps/gnu/errlist.c:1262
msgid "Srmount error"
msgstr "Error a «srmount»"
-#: sysdeps/gnu/errlist.c:1269
+#: sysdeps/gnu/errlist.c:1270
msgid "Communication error on send"
msgstr "Error de comunicacions a l’enviament"
-#: sysdeps/gnu/errlist.c:1277
+#: sysdeps/gnu/errlist.c:1278
msgid "RFS specific error"
msgstr "Error específic d’RFS"
-#: sysdeps/gnu/errlist.c:1285
+#: sysdeps/gnu/errlist.c:1286
msgid "Name not unique on network"
msgstr "El nom no és únic a la xarxa"
-#: sysdeps/gnu/errlist.c:1293
+#: sysdeps/gnu/errlist.c:1294
msgid "File descriptor in bad state"
msgstr "El descriptor de fitxer és fet malbé"
-#: sysdeps/gnu/errlist.c:1301
+#: sysdeps/gnu/errlist.c:1302
msgid "Remote address changed"
msgstr "L’adreça remota ha canviat"
-#: sysdeps/gnu/errlist.c:1309
+#: sysdeps/gnu/errlist.c:1310
msgid "Can not access a needed shared library"
msgstr "No s’ha pogut accedir a una biblioteca compartida necessària"
-#: sysdeps/gnu/errlist.c:1317
+#: sysdeps/gnu/errlist.c:1318
msgid "Accessing a corrupted shared library"
msgstr "Accés una biblioteca compartida corrupta"
-#: sysdeps/gnu/errlist.c:1325
+#: sysdeps/gnu/errlist.c:1326
msgid ".lib section in a.out corrupted"
msgstr "La secció «.lib» de l’a.out és corrupta"
-#: sysdeps/gnu/errlist.c:1333
+#: sysdeps/gnu/errlist.c:1334
msgid "Attempting to link in too many shared libraries"
msgstr "S’ha intentat enllaçar massa biblioteques compartides"
-#: sysdeps/gnu/errlist.c:1341
+#: sysdeps/gnu/errlist.c:1342
msgid "Cannot exec a shared library directly"
msgstr "No es pot executar directament una biblioteca compartida"
-#: sysdeps/gnu/errlist.c:1349
+#: sysdeps/gnu/errlist.c:1350
msgid "Streams pipe error"
msgstr "Error a la canonada entre fluxos"
-#: sysdeps/gnu/errlist.c:1357
+#: sysdeps/gnu/errlist.c:1358
msgid "Structure needs cleaning"
msgstr "L’estructura necessita una neteja"
-#: sysdeps/gnu/errlist.c:1365
+#: sysdeps/gnu/errlist.c:1366
msgid "Not a XENIX named type file"
msgstr "El fitxer no és d’un tipus XENIX amb nom"
-#: sysdeps/gnu/errlist.c:1373
+#: sysdeps/gnu/errlist.c:1374
msgid "No XENIX semaphores available"
msgstr "No hi ha semàfors XENIX disponibles"
-#: sysdeps/gnu/errlist.c:1381
+#: sysdeps/gnu/errlist.c:1382
msgid "Is a named type file"
msgstr "El fitxer és d’un tipus amb nom"
-#: sysdeps/gnu/errlist.c:1389
+#: sysdeps/gnu/errlist.c:1390
msgid "Remote I/O error"
msgstr "Error en una E/S remota"
-#: sysdeps/gnu/errlist.c:1397
+#: sysdeps/gnu/errlist.c:1398
msgid "No medium found"
msgstr "No s’ha trobat el mitjà"
-#: sysdeps/gnu/errlist.c:1405
+#: sysdeps/gnu/errlist.c:1406
msgid "Wrong medium type"
msgstr "El tipus de mitjà no és vàlid"
-#: sysdeps/gnu/errlist.c:1413
+#: sysdeps/gnu/errlist.c:1414
msgid "Required key not available"
msgstr "La clau requerida no es troba disponible"
-#: sysdeps/gnu/errlist.c:1421
+#: sysdeps/gnu/errlist.c:1422
msgid "Key has expired"
msgstr "La clau ha expirat"
-#: sysdeps/gnu/errlist.c:1429
+#: sysdeps/gnu/errlist.c:1430
msgid "Key has been revoked"
msgstr "La clau ha estat revocada"
-#: sysdeps/gnu/errlist.c:1437
+#: sysdeps/gnu/errlist.c:1438
msgid "Key was rejected by service"
msgstr "El servei ha rebutjat la clau"
-#: sysdeps/gnu/errlist.c:1445
+#: sysdeps/gnu/errlist.c:1446
msgid "Owner died"
msgstr "El propietari ha mort"
-#: sysdeps/gnu/errlist.c:1453
+#: sysdeps/gnu/errlist.c:1454
msgid "State not recoverable"
msgstr "L’estat no és recuperable"
# RFKill és el nom d’un subsistema de Linux. ivb
-#: sysdeps/gnu/errlist.c:1461
+#: sysdeps/gnu/errlist.c:1462
msgid "Operation not possible due to RF-kill"
msgstr "L’operació no és possible degut a RFKill"
-#: sysdeps/gnu/errlist.c:1469
+#: sysdeps/gnu/errlist.c:1470
msgid "Memory page has hardware error"
msgstr "La pàgina de memòria té un error de maquinari"
@@ -7135,7 +7169,7 @@ msgstr "%s: error en tancar «%s»: %s\n"
msgid "expected continuation line not found"
msgstr "cal una línia de continuació, però se’n troba cap"
-#: timezone/zic.c:887 timezone/zic.c:2411 timezone/zic.c:2425
+#: timezone/zic.c:887 timezone/zic.c:2413 timezone/zic.c:2427
msgid "time overflow"
msgstr "desbordament de l’hora"
@@ -7283,97 +7317,97 @@ msgstr "%s: no s’ha pogut crear «%s»: %s\n"
msgid "%s: Error writing %s\n"
msgstr "%s: error en escriure «%s»\n"
-#: timezone/zic.c:1964
+#: timezone/zic.c:1966
msgid "no POSIX environment variable for zone"
msgstr "no s’ha establert una variable d’entorn POSIX per a la zona"
-#: timezone/zic.c:2131
+#: timezone/zic.c:2133
msgid "can't determine time zone abbreviation to use just after until time"
msgstr "no s’ha pogut determinar l’abreviatura de zona horària a emprar just després de la data límit (until)"
-#: timezone/zic.c:2175
+#: timezone/zic.c:2177
msgid "too many transitions?!"
msgstr "hi ha massa transicions?!"
-#: timezone/zic.c:2190
+#: timezone/zic.c:2192
msgid "internal error - addtype called with bad isdst"
msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «isdst»"
-#: timezone/zic.c:2194
+#: timezone/zic.c:2196
msgid "internal error - addtype called with bad ttisstd"
msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «ttisstd»"
-#: timezone/zic.c:2198
+#: timezone/zic.c:2200
msgid "internal error - addtype called with bad ttisgmt"
msgstr "error intern: s’ha cridat addtype() amb un valor erroni per a «ttisgmt»"
-#: timezone/zic.c:2217
+#: timezone/zic.c:2219
msgid "too many local time types"
msgstr "hi ha massa tipus d’hora local"
-#: timezone/zic.c:2221
+#: timezone/zic.c:2223
msgid "UTC offset out of range"
msgstr "el desplaçament respecte UTC és fora de rang"
-#: timezone/zic.c:2245
+#: timezone/zic.c:2247
msgid "too many leap seconds"
msgstr "hi ha massa segons intercalars"
-#: timezone/zic.c:2251
+#: timezone/zic.c:2253
msgid "repeated leap second moment"
msgstr "el moment de segon intercalar és repetit"
-#: timezone/zic.c:2301
+#: timezone/zic.c:2303
msgid "Wild result from command execution"
msgstr "l’execució de l’ordre ha donat un resultat estrany"
-#: timezone/zic.c:2302
+#: timezone/zic.c:2304
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: l’ordre ha estat «%s», el resultat ha estat %d\n"
# ivb (2001/10/30)
# ivb Es refereix a les cometes dobles «"».
-#: timezone/zic.c:2393
+#: timezone/zic.c:2395
msgid "Odd number of quotation marks"
msgstr "el nombre de cometes és senar"
-#: timezone/zic.c:2470
+#: timezone/zic.c:2472
msgid "use of 2/29 in non leap-year"
msgstr "s’ha emprat el dia 29 de febrer en un any no bixest"
-#: timezone/zic.c:2505
+#: timezone/zic.c:2507
msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
msgstr "la regla va més enllà de l’inici o fi del mes; no funcionarà en les versions de «zic» anteriors a 2004"
-#: timezone/zic.c:2536
+#: timezone/zic.c:2538
msgid "time zone abbreviation lacks alphabetic at start"
msgstr "l’abreviatura de la zona horària no comença per un caràcter alfabètic"
-#: timezone/zic.c:2538
+#: timezone/zic.c:2540
msgid "time zone abbreviation has fewer than 3 alphabetics"
msgstr "l’abreviatura de la zona horària té menys de 3 caràcters alfabètics"
-#: timezone/zic.c:2540
+#: timezone/zic.c:2542
msgid "time zone abbreviation has too many alphabetics"
msgstr "l’abreviatura de la zona horària té massa caràcters alfabètics"
-#: timezone/zic.c:2550
+#: timezone/zic.c:2552
msgid "time zone abbreviation differs from POSIX standard"
msgstr "l’abreviatura de la zona horària difereix de l’estàndard POSIX"
-#: timezone/zic.c:2562
+#: timezone/zic.c:2564
msgid "too many, or too long, time zone abbreviations"
msgstr "hi ha massa abreviatures de zona horària (o són massa llargues)"
-#: timezone/zic.c:2602
+#: timezone/zic.c:2604
#, c-format
msgid "%s: Can't create directory %s: %s\n"
msgstr "%s: no s’ha pogut crear el directori «%s»: %s\n"
# ivb (2001/10/28)
# ivb Resulta d'assignar un «int» a un «long».
-#: timezone/zic.c:2623
+#: timezone/zic.c:2625
#, c-format
msgid "%s: %d did not sign extend correctly\n"
msgstr "%s: el signe de %d no s’ha estès correctament\n"
diff --git a/libc/po/uk.po b/libc/po/uk.po
new file mode 100644
index 000000000..c90144b43
--- /dev/null
+++ b/libc/po/uk.po
@@ -0,0 +1,7151 @@
+# Ukrainian translation for libc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the glibc package.
+#
+# Yuri Chornoivan <yurchor@ukr.net>, 2013.
+# Volodymyr M. Lisivka <lvm@mystery.lviv.net>, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: libc 2.17.90.20130724\n"
+"POT-Creation-Date: 2013-07-24 23:29-0700\n"
+"PO-Revision-Date: 2013-08-19 16:26+0300\n"
+"Last-Translator: Volodymyr M. Lisivka <lvm@mystery.lviv.net>\n"
+"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: argp/argp-help.c:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: параметр ARGP_HELP_FMT потребує значення"
+
+#: argp/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: невідомий параметр ARGP_HELP_FMT"
+
+#: argp/argp-help.c:250
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Мотлох у ARGP_HELP_FMT: %s"
+
+#: argp/argp-help.c:1214
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Обов’язкові і додаткові аргументи до довгих форм запису параметрів є також об’язковими або додатковими для всіх відповідних скорочених форм запису."
+
+#: argp/argp-help.c:1600
+msgid "Usage:"
+msgstr "Користування:"
+
+#: argp/argp-help.c:1604
+msgid " or: "
+msgstr " або: "
+
+#: argp/argp-help.c:1616
+msgid " [OPTION...]"
+msgstr " [ПАРАМЕТР...]"
+
+#: argp/argp-help.c:1643
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Виконайте команду «%s --help» або «%s --usage», щоб дізнатися більше.\n"
+
+#: argp/argp-help.c:1671
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Повідомляйте про вади на адресу %s.\n"
+
+#: argp/argp-parse.c:101
+msgid "Give this help list"
+msgstr "Показати ці довідкові дані"
+
+#: argp/argp-parse.c:102
+msgid "Give a short usage message"
+msgstr "Отримати коротке повідомлення щодо використання"
+
+#: 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:115
+#: nss/makedb.c:120
+msgid "NAME"
+msgstr "НАЗВА"
+
+#: argp/argp-parse.c:104
+msgid "Set the program name"
+msgstr "Встановити назву програми"
+
+#: argp/argp-parse.c:105
+msgid "SECS"
+msgstr "СЕКУНДИ"
+
+#: argp/argp-parse.c:106
+msgid "Hang for SECS seconds (default 3600)"
+msgstr "Затриматися на СЕК секунд (типово, на 3600)"
+
+#: argp/argp-parse.c:167
+msgid "Print program version"
+msgstr "Вивести дані щодо версії програми"
+
+#: argp/argp-parse.c:183
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ПОМИЛКА ПРОГРАМИ) Невідома версія!?"
+
+#: argp/argp-parse.c:623
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: занадто багато аргументів\n"
+
+#: argp/argp-parse.c:766
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ПОМИЛКА ПРОГРАМИ) Параметр має розпізнаватися!?"
+
+#: assert/assert-perr.c:35
+#, c-format
+msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+msgstr "%s%s%s:%u: %s%sНеочікувана помилка: %s.\n"
+
+#: assert/assert.c:101
+#, c-format
+msgid ""
+"%s%s%s:%u: %s%sAssertion `%s' failed.\n"
+"%n"
+msgstr ""
+"%s%s%s:%u: %s%sНе пройдено перевірку «%s».\n"
+"%n"
+
+#: catgets/gencat.c:110
+msgid "Create C header file NAME containing symbol definitions"
+msgstr "Створити файл заголовків C з назвою НАЗВА, де будуть міститися визначення символів."
+
+#: catgets/gencat.c:112
+msgid "Do not use existing catalog, force new output file"
+msgstr "Не використовувати наявний каталог, примусово вивести дані до нового файла"
+
+#: catgets/gencat.c:113 nss/makedb.c:120
+msgid "Write output to file NAME"
+msgstr "Вивести дані до файла з назвою НАЗВА."
+
+#: 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 ""
+"Створити каталог повідомлень.\vЯкщо як файл ВХІДНИЙ-ФАЙЛ\n"
+"вказано -, вивід відбуватиметься у стандартний вивід.\n"
+
+#: catgets/gencat.c:123
+msgid ""
+"-o OUTPUT-FILE [INPUT-FILE]...\n"
+"[OUTPUT-FILE [INPUT-FILE]...]"
+msgstr ""
+"-o ФАЙЛ-ВИВЕДЕННЯ [ФАЙЛ-ВХІДНИХ-ДАНИХ]...\n"
+"[ФАЙЛ-ВИВЕДЕННЯ [ФАЙЛ-ВХІДНИХ-ДАНИХ]...]"
+
+#: catgets/gencat.c:229 debug/pcprofiledump.c:209 elf/ldconfig.c:307
+#: elf/pldd.c:219 elf/sln.c:85 elf/sprof.c:372 iconv/iconv_prog.c:408
+#: iconv/iconvconfig.c:379 locale/programs/locale.c:277
+#: locale/programs/localedef.c:364 login/programs/pt_chown.c:88
+#: malloc/memusagestat.c:563 nscd/nscd.c:450 nss/getent.c:965 nss/makedb.c:369
+#: posix/getconf.c:1121 sunrpc/rpcinfo.c:691
+#: sysdeps/unix/sysv/linux/lddlibc4.c:61
+#, c-format
+msgid ""
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"Настанови щодо звітування про вади можна знайти тут:\n"
+"%s.\n"
+
+#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
+#: elf/ldconfig.c:323 elf/ldd.bash.in:38 elf/pldd.c:235 elf/sotruss.ksh:75
+#: elf/sprof.c:389 iconv/iconv_prog.c:425 iconv/iconvconfig.c:396
+#: locale/programs/locale.c:294 locale/programs/localedef.c:390
+#: login/programs/pt_chown.c:62 malloc/memusage.sh:71
+#: malloc/memusagestat.c:579 nscd/nscd.c:466 nss/getent.c:86 nss/makedb.c:385
+#: posix/getconf.c:1103 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 ""
+"© Free Software Foundation, Inc., %s\n"
+"Це програмне забезпечення є вільним, умови копіювання викладено у його початкових кодах. Умовами ліцензування програми НЕ передбачено жодних гарантій, зокрема гарантій працездатності або придатності для певної мети.\n"
+
+#: catgets/gencat.c:250 debug/pcprofiledump.c:230 debug/xtrace.sh:68
+#: elf/ldconfig.c:328 elf/pldd.c:240 elf/sprof.c:395 iconv/iconv_prog.c:430
+#: iconv/iconvconfig.c:401 locale/programs/locale.c:299
+#: locale/programs/localedef.c:395 malloc/memusage.sh:75
+#: malloc/memusagestat.c:584 nscd/nscd.c:471 nss/getent.c:91 nss/makedb.c:390
+#: posix/getconf.c:1108
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Автор — %s.\n"
+
+#: catgets/gencat.c:281
+msgid "*standard input*"
+msgstr "*стандартний ввід*"
+
+#: catgets/gencat.c:287 iconv/iconv_charmap.c:167 iconv/iconv_prog.c:293
+#: nss/makedb.c:246
+#, c-format
+msgid "cannot open input file `%s'"
+msgstr "не вдається відкрити вхідний файл «%s»"
+
+#: catgets/gencat.c:416 catgets/gencat.c:491
+msgid "illegal set number"
+msgstr "некоректний номер набору"
+
+#: catgets/gencat.c:443
+msgid "duplicate set definition"
+msgstr "дублювання визначення набору"
+
+#: catgets/gencat.c:445 catgets/gencat.c:617 catgets/gencat.c:669
+msgid "this is the first definition"
+msgstr "це перше визначення"
+
+#: catgets/gencat.c:516
+#, c-format
+msgid "unknown set `%s'"
+msgstr "невідомий набір «%s»"
+
+#: catgets/gencat.c:557
+msgid "invalid quote character"
+msgstr "некоректний символ лапок"
+
+#: catgets/gencat.c:570
+#, c-format
+msgid "unknown directive `%s': line ignored"
+msgstr "невідома інструкція «%s»: рядок проігноровано"
+
+#: catgets/gencat.c:615
+msgid "duplicated message number"
+msgstr "дублювання номеру повідомлення"
+
+#: catgets/gencat.c:666
+msgid "duplicated message identifier"
+msgstr "дублювання ідентифікатора повідомлення"
+
+#: catgets/gencat.c:723
+msgid "invalid character: message ignored"
+msgstr "некоректний символ: повідомлення проігноровано"
+
+#: catgets/gencat.c:766
+msgid "invalid line"
+msgstr "некоректний рядок"
+
+#: catgets/gencat.c:820
+msgid "malformed line ignored"
+msgstr "рядок з помилковим форматування проігноровано"
+
+#: catgets/gencat.c:984 catgets/gencat.c:1025
+#, c-format
+msgid "cannot open output file `%s'"
+msgstr "не вдалося відкрити файл «%s» для виведення даних"
+
+#: catgets/gencat.c:1187 locale/programs/linereader.c:560
+msgid "invalid escape sequence"
+msgstr "некоректна екранована послідовність символів"
+
+#: catgets/gencat.c:1209
+msgid "unterminated message"
+msgstr "незавершене повідомлення"
+
+#: catgets/gencat.c:1233
+#, c-format
+msgid "while opening old catalog file"
+msgstr "під час спроби відкрити старий файл каталогу"
+
+#: catgets/gencat.c:1324
+#, c-format
+msgid "conversion modules not available"
+msgstr "модулі перетворення недоступні"
+
+#: catgets/gencat.c:1350
+#, c-format
+msgid "cannot determine escape character"
+msgstr "не вдалося визначити символ екранування"
+
+#: debug/pcprofiledump.c:53
+msgid "Don't buffer output"
+msgstr "Не буферизувати виведення даних"
+
+#: debug/pcprofiledump.c:58
+msgid "Dump information generated by PC profiling."
+msgstr "Дані дампу, створені засобом профілювання комп’ютера."
+
+#: debug/pcprofiledump.c:61
+msgid "[FILE]"
+msgstr "[ФАЙЛ]"
+
+#: debug/pcprofiledump.c:108
+#, c-format
+msgid "cannot open input file"
+msgstr "не вдалося відкрити вхідний файл."
+
+#: debug/pcprofiledump.c:115
+#, c-format
+msgid "cannot read header"
+msgstr "не вдалося прочитати заголовок"
+
+#: debug/pcprofiledump.c:179
+#, c-format
+msgid "invalid pointer size"
+msgstr "некоректний розмір вказівника"
+
+#: debug/xtrace.sh:26 debug/xtrace.sh:44
+msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
+msgstr "Користування: xtrace [ПАРАМЕТР]... ПРОГРАМА [ПАРАМЕТР ПРОГРАМИ]...\\n"
+
+#: debug/xtrace.sh:32 elf/sotruss.ksh:56 elf/sotruss.ksh:67
+#: elf/sotruss.ksh:135 malloc/memusage.sh:26
+msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n"
+msgstr "Виконайте команду «%s --help» або «%s --usage», щоб дізнатися більше."
+
+#: debug/xtrace.sh:38
+msgid "%s: option '%s' requires an argument.\\n"
+msgstr "%s: до параметра «%s» слід додати аргумент"
+
+#: 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 ""
+"Трасувати програму з виведенням поточної виконуваної функції.\n"
+"\n"
+" --data=ФАЙЛ не запускати програму, просто вивести дані з файла ФАЙЛ.\n"
+"\n"
+" -?,--help вивести цю довідку і завершити виконання\n"
+" --usage вивести коротке повідомлення щодо користування\n"
+" -V,--version вивести дані щодо версії і завершити виконання\n"
+"\n"
+"Обов’язкові аргументи до довгих форм запису параметрів є також об’язковими для\n"
+"відповідних скорочених форм запису.\n"
+"\n"
+
+#: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.ksh:49
+#: malloc/memusage.sh:64
+msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n"
+msgstr "Настанови щодо звітування про вади можна знайти тут:\\\\n%s.\\\\n"
+
+#: debug/xtrace.sh:125
+msgid "xtrace: unrecognized option \\`$1'\\n"
+msgstr "xtrace: нерозпізнаний параметр \\`$1'\\n"
+
+#: debug/xtrace.sh:138
+msgid "No program name given\\n"
+msgstr "Не вказано назви програми\\n"
+
+#: debug/xtrace.sh:146
+#, sh-format
+msgid "executable \\`$program' not found\\n"
+msgstr "не знайдено виконуваного файла \\`$program'\\n"
+
+#: debug/xtrace.sh:150
+#, sh-format
+msgid "\\`$program' is no executable\\n"
+msgstr "файл \\`$program' не є виконуваним\\n"
+
+#: dlfcn/dlinfo.c:63
+msgid "RTLD_SELF used in code not dynamically loaded"
+msgstr "Використаний у коді символ RTLD_SELF не завантажується динамічно"
+
+#: dlfcn/dlinfo.c:72
+msgid "unsupported dlinfo request"
+msgstr "непідтримуваний запит до dlinfo"
+
+#: dlfcn/dlmopen.c:63
+msgid "invalid namespace"
+msgstr "некоректний простір назв"
+
+#: dlfcn/dlmopen.c:68
+msgid "invalid mode"
+msgstr "некоректний режим"
+
+#: dlfcn/dlopen.c:64
+msgid "invalid mode parameter"
+msgstr "некоректний параметр режиму"
+
+#: elf/cache.c:69
+msgid "unknown"
+msgstr "невідомий"
+
+#: elf/cache.c:126
+msgid "Unknown OS"
+msgstr "Невідома ОС"
+
+#: elf/cache.c:131
+#, c-format
+msgid ", OS ABI: %s %d.%d.%d"
+msgstr ", ABI ОС: %s %d.%d.%d"
+
+#: elf/cache.c:148 elf/ldconfig.c:1318
+#, c-format
+msgid "Can't open cache file %s\n"
+msgstr "Не вдалося відкрити файл кешу %s\n"
+
+#: elf/cache.c:162
+#, c-format
+msgid "mmap of cache file failed.\n"
+msgstr "Спроба виконати mmap для файла кешу зазнала невдачі.\n"
+
+#: elf/cache.c:166 elf/cache.c:180
+#, c-format
+msgid "File is not a cache file.\n"
+msgstr "Файл не є файлом кешу.\n"
+
+#: elf/cache.c:213 elf/cache.c:223
+#, c-format
+msgid "%d libs found in cache `%s'\n"
+msgstr "У кеші «%2$s» знайдено %1$d бібліотек\n"
+
+#: elf/cache.c:417
+#, c-format
+msgid "Can't create temporary cache file %s"
+msgstr "Не вдалося створити тимчасовий файл кешу %s"
+
+#: elf/cache.c:425 elf/cache.c:435 elf/cache.c:439 elf/cache.c:444
+#, c-format
+msgid "Writing of cache data failed"
+msgstr "Спроба запису до файла кешу зазнала невдачі"
+
+#: elf/cache.c:449
+#, c-format
+msgid "Changing access rights of %s to %#o failed"
+msgstr "Спроба змінити права доступу до %s на %#o зазнала невдачі"
+
+#: elf/cache.c:454
+#, c-format
+msgid "Renaming of %s to %s failed"
+msgstr "Спроба перейменувати %s на %s зазнала невдачі"
+
+#: elf/dl-close.c:384 elf/dl-open.c:470
+msgid "cannot create scope list"
+msgstr "не вдалося створити список областей дії"
+
+#: elf/dl-close.c:777
+msgid "shared object not open"
+msgstr "об’єкт спільного використання не відкрито"
+
+#: elf/dl-deps.c:112
+msgid "DST not allowed in SUID/SGID programs"
+msgstr "DST заборонено використовувати у програмах з бітами SUID/SGID"
+
+#: elf/dl-deps.c:125
+msgid "empty dynamic string token substitution"
+msgstr "порожня заміна динамічної рядкової лексеми"
+
+#: elf/dl-deps.c:131
+#, c-format
+msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
+msgstr "неможливо завантажити допоміжний «%s» через порожню заміну динамічної рядкової лексеми\n"
+
+#: elf/dl-deps.c:479
+msgid "cannot allocate dependency list"
+msgstr "не вдалося розмістити список залежностей у пам’яті"
+
+#: elf/dl-deps.c:516 elf/dl-deps.c:576
+msgid "cannot allocate symbol search list"
+msgstr "не вдалося розмістити список символів для пошуку у пам’яті"
+
+#: elf/dl-deps.c:556
+msgid "Filters not supported with LD_TRACE_PRELINKING"
+msgstr "Підтримки фільтрів разом з LD_TRACE_PRELINKING не передбачено"
+
+#: elf/dl-error.c:76
+msgid "DYNAMIC LINKER BUG!!!"
+msgstr "ВАДА ДИНАМІЧНОГО КОМПОНУВАЛЬНИКА!!!"
+
+#: elf/dl-error.c:123
+msgid "error while loading shared libraries"
+msgstr "помилка під час спроби завантажити бібліотеки спільного використання"
+
+#: elf/dl-fptr.c:87 ports/sysdeps/hppa/dl-fptr.c:93
+msgid "cannot map pages for fdesc table"
+msgstr "не можна відображати сторінки для таблиці fdesc"
+
+#: elf/dl-fptr.c:191 ports/sysdeps/hppa/dl-fptr.c:206
+msgid "cannot map pages for fptr table"
+msgstr "не можна відображати сторінки для таблиці fptr"
+
+#: elf/dl-fptr.c:220 ports/sysdeps/hppa/dl-fptr.c:235
+msgid "internal error: symidx out of range of fptr table"
+msgstr "внутрішня помилка: symidx перебуває поза межами таблиці fptr"
+
+#: elf/dl-hwcaps.c:184 elf/dl-hwcaps.c:196
+msgid "cannot create capability list"
+msgstr "не вдалося створити список можливостей"
+
+#: elf/dl-load.c:465
+msgid "cannot allocate name record"
+msgstr "не вдалося розмістити запис назви у пам’яті"
+
+#: elf/dl-load.c:542 elf/dl-load.c:658 elf/dl-load.c:743 elf/dl-load.c:862
+msgid "cannot create cache for search path"
+msgstr "не вдалося створити кеш для шляху пошуку"
+
+#: elf/dl-load.c:633
+msgid "cannot create RUNPATH/RPATH copy"
+msgstr "не вдалося створити копію RUNPATH/RPATH"
+
+#: elf/dl-load.c:729
+msgid "cannot create search path array"
+msgstr "не вдалося створити масив шляхів пошуку"
+
+#: elf/dl-load.c:934
+msgid "cannot stat shared object"
+msgstr "не вдалося виконати статистичну обробку об’єкта спільного використання"
+
+#: elf/dl-load.c:1012
+msgid "cannot open zero fill device"
+msgstr "не вдалося відкрити пристрій заповнення нулями"
+
+#: elf/dl-load.c:1059 elf/dl-load.c:2342
+msgid "cannot create shared object descriptor"
+msgstr "не вдалося створити дескриптор об’єкта спільного використання"
+
+#: elf/dl-load.c:1078 elf/dl-load.c:1755 elf/dl-load.c:1858
+msgid "cannot read file data"
+msgstr "не вдалося прочитати дані файла"
+
+#: elf/dl-load.c:1124
+msgid "ELF load command alignment not page-aligned"
+msgstr "Вирівнювання команди завантаження ELF виконано не за сторінками пам’яті"
+
+#: elf/dl-load.c:1131
+msgid "ELF load command address/offset not properly aligned"
+msgstr "адреса або зміщення команди завантаження ELF неправильно вирівняно"
+
+#: elf/dl-load.c:1216
+msgid "cannot allocate TLS data structures for initial thread"
+msgstr "не вдалося розмістити структури даних TLS для початкового потоку обробки"
+
+#: elf/dl-load.c:1239
+msgid "cannot handle TLS data"
+msgstr "не вдалося обробити дані TLS"
+
+#: elf/dl-load.c:1258
+msgid "object file has no loadable segments"
+msgstr "у об’єктному файлі немає придатних до завантаження сегментів"
+
+#: elf/dl-load.c:1294
+msgid "failed to map segment from shared object"
+msgstr "не вдалося відобразити сегмент з об’єкта спільного використання"
+
+#: elf/dl-load.c:1320
+msgid "cannot dynamically load executable"
+msgstr "не вдалося завантажити виконуваний файл у динамічному режимі"
+
+#: elf/dl-load.c:1383 elf/dl-load.c:1492
+msgid "cannot change memory protections"
+msgstr "зміна захисту області пам’яті неможлива"
+
+#: elf/dl-load.c:1402
+msgid "cannot map zero-fill pages"
+msgstr "не вдалося відобразити сторінки заповнення нулями"
+
+#: elf/dl-load.c:1416
+msgid "object file has no dynamic section"
+msgstr "у об’єктному файлі немає динамічного розділу"
+
+#: elf/dl-load.c:1439
+msgid "shared object cannot be dlopen()ed"
+msgstr "об’єкт спільного використання не може бути відкрито за допомогою dlopen()"
+
+#: elf/dl-load.c:1452
+msgid "cannot allocate memory for program header"
+msgstr "не вдалося отримати пам’ять для заголовка програми"
+
+#: elf/dl-load.c:1469 elf/dl-open.c:195
+msgid "invalid caller"
+msgstr "некоректна функція виклику"
+
+#: elf/dl-load.c:1512
+msgid "cannot enable executable stack as shared object requires"
+msgstr "не вдалося увімкнути стек виконання, як цього вимагає об’єкт спільного використання"
+
+#: elf/dl-load.c:1525
+msgid "cannot close file descriptor"
+msgstr "не вдалося закрити дескриптор файла"
+
+#: elf/dl-load.c:1755
+msgid "file too short"
+msgstr "файл є надто коротким"
+
+#: elf/dl-load.c:1791
+msgid "invalid ELF header"
+msgstr "некоректний заголовок ELF"
+
+#: elf/dl-load.c:1803
+msgid "ELF file data encoding not big-endian"
+msgstr "байти у даних файла ELF впорядковано не у зворотному порядку"
+
+#: elf/dl-load.c:1805
+msgid "ELF file data encoding not little-endian"
+msgstr "байти у даних файла ELF впорядковано не у прямому порядку"
+
+#: elf/dl-load.c:1809
+msgid "ELF file version ident does not match current one"
+msgstr "ідентифікатор версії файла ELF не відповідає поточному"
+
+#: elf/dl-load.c:1813
+msgid "ELF file OS ABI invalid"
+msgstr "некоректний ABI ОС у файлі ELF"
+
+#: elf/dl-load.c:1816
+msgid "ELF file ABI version invalid"
+msgstr "некоректна версія ABI у файлі ELF"
+
+#: elf/dl-load.c:1819
+msgid "nonzero padding in e_ident"
+msgstr "ненульове доповнення у e_ident"
+
+#: elf/dl-load.c:1822
+msgid "internal error"
+msgstr "внутрішня помилка"
+
+#: elf/dl-load.c:1829
+msgid "ELF file version does not match current one"
+msgstr "версія файла ELF не збігається з поточною"
+
+#: elf/dl-load.c:1837
+msgid "only ET_DYN and ET_EXEC can be loaded"
+msgstr "можна завантажити лише ET_DYN і ET_EXEC"
+
+#: elf/dl-load.c:1843
+msgid "ELF file's phentsize not the expected size"
+msgstr "phentsize файла ELF не є очікуваним"
+
+#: elf/dl-load.c:2361
+msgid "wrong ELF class: ELFCLASS64"
+msgstr "помилковий клас ELF: ELFCLASS64"
+
+#: elf/dl-load.c:2362
+msgid "wrong ELF class: ELFCLASS32"
+msgstr "помилковий клас ELF: ELFCLASS32"
+
+#: elf/dl-load.c:2365
+msgid "cannot open shared object file"
+msgstr "не вдалося відкрити файл об’єктів спільного використання"
+
+#: elf/dl-lookup.c:753 ports/sysdeps/mips/dl-lookup.c:771
+msgid "relocation error"
+msgstr "помилка пересування"
+
+#: elf/dl-lookup.c:780 ports/sysdeps/mips/dl-lookup.c:798
+msgid "symbol lookup error"
+msgstr "помилка під час пошуку символів"
+
+#: elf/dl-open.c:102
+msgid "cannot extend global scope"
+msgstr "не вдалося розширити загальну область"
+
+#: elf/dl-open.c:520
+msgid "TLS generation counter wrapped! Please report this."
+msgstr "Переповнено лічильник створення TLS! Будь ласка, повідомте про цю помилку розробникам."
+
+#: elf/dl-open.c:542
+msgid "cannot load any more object with static TLS"
+msgstr "неможливо продовжувати завантаження інших об’єктів зі статичним TLS"
+
+#: elf/dl-open.c:599
+msgid "invalid mode for dlopen()"
+msgstr "некоректний режим для dlopen()"
+
+#: elf/dl-open.c:616
+msgid "no more namespaces available for dlmopen()"
+msgstr "більше немає просторів назв для dlmopen()"
+
+#: elf/dl-open.c:634
+msgid "invalid target namespace in dlmopen()"
+msgstr "некоректний простір назв призначення у dlmopen()"
+
+#: elf/dl-reloc.c:120
+msgid "cannot allocate memory in static TLS block"
+msgstr "не вдалося отримати область пам’яті у статичному блоці TLS"
+
+#: elf/dl-reloc.c:212
+msgid "cannot make segment writable for relocation"
+msgstr "не вдалося створити сегмент придатний до запису для пересування"
+
+#: elf/dl-reloc.c:275
+#, c-format
+msgid "%s: no PLTREL found in object %s\n"
+msgstr "%s: у об’єкті %s не знайдено PLTREL\n"
+
+#: elf/dl-reloc.c:286
+#, c-format
+msgid "%s: out of memory to store relocation results for %s\n"
+msgstr "%s: не вистачає пам’яті для зберігання результатів пересування для %s\n"
+
+#: elf/dl-reloc.c:302
+msgid "cannot restore segment prot after reloc"
+msgstr "не вдалося відновити захист сегмент після пересування"
+
+#: elf/dl-reloc.c:331
+msgid "cannot apply additional memory protection after relocation"
+msgstr "не вдалося застосувати додатковий захист пам’яті після пересування"
+
+#: elf/dl-sym.c:153
+msgid "RTLD_NEXT used in code not dynamically loaded"
+msgstr "Використаний у коді символ RTLD_NEXT не завантажується динамічно"
+
+#: elf/dl-tls.c:875
+msgid "cannot create TLS data structures"
+msgstr "не вдалося створити структури даних TLS"
+
+#: elf/dl-version.c:166
+msgid "version lookup error"
+msgstr "помилка під час пошуку версії"
+
+#: elf/dl-version.c:296
+msgid "cannot allocate version reference table"
+msgstr "не вдалося розмістити таблицю посилань на версії"
+
+#: elf/ldconfig.c:141
+msgid "Print cache"
+msgstr "Вивести кеш"
+
+#: elf/ldconfig.c:142
+msgid "Generate verbose messages"
+msgstr "Режим докладних повідомлень"
+
+#: elf/ldconfig.c:143
+msgid "Don't build cache"
+msgstr "Не збирати кеш"
+
+#: elf/ldconfig.c:144
+msgid "Don't generate links"
+msgstr "Не створювати посилань"
+
+#: elf/ldconfig.c:145
+msgid "Change to and use ROOT as root directory"
+msgstr "Перейти до каталогу КОРІНЬ і використовувати його як кореневий"
+
+#: elf/ldconfig.c:145
+msgid "ROOT"
+msgstr "КОРІНЬ"
+
+#: elf/ldconfig.c:146
+msgid "CACHE"
+msgstr "КЕШ"
+
+#: elf/ldconfig.c:146
+msgid "Use CACHE as cache file"
+msgstr "Використовувати КЕШ як файл кешу"
+
+#: elf/ldconfig.c:147
+msgid "CONF"
+msgstr "КОНФ"
+
+#: elf/ldconfig.c:147
+msgid "Use CONF as configuration file"
+msgstr "Використовувати КОНФ як файл налаштувань"
+
+#: elf/ldconfig.c:148
+msgid "Only process directories specified on the command line. Don't build cache."
+msgstr "Обробляти лише каталоги, вказані у командному рядку. Не будувати кеш."
+
+#: elf/ldconfig.c:149
+msgid "Manually link individual libraries."
+msgstr "Під’єднати окремі бібліотеки вручну."
+
+#: elf/ldconfig.c:150
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: elf/ldconfig.c:150
+msgid "Format to use: new, old or compat (default)"
+msgstr "Формат, яким слід скористатися: new, old або compat (типовий)"
+
+#: elf/ldconfig.c:151
+msgid "Ignore auxiliary cache file"
+msgstr "Ігнорувати допоміжний файл кешу"
+
+#: elf/ldconfig.c:159
+msgid "Configure Dynamic Linker Run Time Bindings."
+msgstr "Налаштувати прив’язки динамічного компонувальника під час виконання."
+
+#: elf/ldconfig.c:346
+#, c-format
+msgid "Path `%s' given more than once"
+msgstr "Шлях «%s» вказано декілька разів"
+
+#: elf/ldconfig.c:386
+#, c-format
+msgid "%s is not a known library type"
+msgstr "%s не є відомим типом бібліотеки"
+
+#: elf/ldconfig.c:414
+#, c-format
+msgid "Can't stat %s"
+msgstr "Не вдалося отримати статистичні дані щодо %s"
+
+#: elf/ldconfig.c:488
+#, c-format
+msgid "Can't stat %s\n"
+msgstr "Не вдалося отримати статистичні дані щодо %s\n"
+
+#: elf/ldconfig.c:498
+#, c-format
+msgid "%s is not a symbolic link\n"
+msgstr "%s не є символічним посиланням\n"
+
+#: elf/ldconfig.c:517
+#, c-format
+msgid "Can't unlink %s"
+msgstr "Не вдалося від’єднати %s"
+
+#: elf/ldconfig.c:523
+#, c-format
+msgid "Can't link %s to %s"
+msgstr "Не вдалося під’єднати %s до %s"
+
+#: elf/ldconfig.c:529
+msgid " (changed)\n"
+msgstr " (змінено)\n"
+
+#: elf/ldconfig.c:531
+msgid " (SKIPPED)\n"
+msgstr " (ПРОПУЩЕНО)\n"
+
+#: elf/ldconfig.c:586
+#, c-format
+msgid "Can't find %s"
+msgstr "Не вдалося знайти %s"
+
+#: elf/ldconfig.c:602 elf/ldconfig.c:775 elf/ldconfig.c:834 elf/ldconfig.c:868
+#, c-format
+msgid "Cannot lstat %s"
+msgstr "Не вдалося обробити lstat %s"
+
+#: elf/ldconfig.c:609
+#, c-format
+msgid "Ignored file %s since it is not a regular file."
+msgstr "Файл %s проігноровано, оскільки він не є звичайним файлом."
+
+#: elf/ldconfig.c:618
+#, c-format
+msgid "No link created since soname could not be found for %s"
+msgstr "Зв’язку не створено, оскільки не вдалося знайти бібліотеку so для %s"
+
+#: elf/ldconfig.c:701
+#, c-format
+msgid "Can't open directory %s"
+msgstr "Не вдалося відкрити каталог %s"
+
+#: elf/ldconfig.c:793 elf/ldconfig.c:855 elf/readlib.c:90
+#, c-format
+msgid "Input file %s not found.\n"
+msgstr "Файл вхідних даних %s не знайдено.\n"
+
+#: elf/ldconfig.c:800
+#, c-format
+msgid "Cannot stat %s"
+msgstr "Не вдалося отримати статистичні дані щодо %s"
+
+#: elf/ldconfig.c:929
+#, c-format
+msgid "libc5 library %s in wrong directory"
+msgstr "Бібліотека libc5 %s зберігається у помилковому каталозі"
+
+#: elf/ldconfig.c:932
+#, c-format
+msgid "libc6 library %s in wrong directory"
+msgstr "Бібліотека libc6 %s зберігається у помилковому каталозі"
+
+#: elf/ldconfig.c:935
+#, c-format
+msgid "libc4 library %s in wrong directory"
+msgstr "Бібліотека libc4 %s зберігається у помилковому каталозі"
+
+#: elf/ldconfig.c:963
+#, c-format
+msgid "libraries %s and %s in directory %s have same soname but different type."
+msgstr "бібліотеки %s і %s у каталозі %s мають однакові назви so, але належать до різних типів."
+
+#: elf/ldconfig.c:1072
+#, c-format
+msgid "Warning: ignoring configuration file that cannot be opened: %s"
+msgstr "Попередження: ігноруємо файл налаштувань, який не вдалося відкрити: %s"
+
+#: elf/ldconfig.c:1138
+#, c-format
+msgid "%s:%u: bad syntax in hwcap line"
+msgstr "%s:%u: помилковий синтаксис у рядку hwcap"
+
+#: elf/ldconfig.c:1144
+#, c-format
+msgid "%s:%u: hwcap index %lu above maximum %u"
+msgstr "%s:%u: індекс hwcap %lu перевищує максимальне значення %u"
+
+#: elf/ldconfig.c:1151 elf/ldconfig.c:1159
+#, c-format
+msgid "%s:%u: hwcap index %lu already defined as %s"
+msgstr "%s:%u: індекс hwcap %lu вже визначено як %s"
+
+#: elf/ldconfig.c:1162
+#, c-format
+msgid "%s:%u: duplicate hwcap %lu %s"
+msgstr "%s:%u: дублювання hwcap %lu %s"
+
+#: elf/ldconfig.c:1184
+#, c-format
+msgid "need absolute file name for configuration file when using -r"
+msgstr "якщо використано -r, слід вказати абсолютну назву файла для файла налаштувань"
+
+#: elf/ldconfig.c:1191 locale/programs/xmalloc.c:64 malloc/obstack.c:432
+#: malloc/obstack.c:434 posix/getconf.c:1076 posix/getconf.c:1296
+#, c-format
+msgid "memory exhausted"
+msgstr "пам’ять вичерпано"
+
+#: elf/ldconfig.c:1223
+#, c-format
+msgid "%s:%u: cannot read directory %s"
+msgstr "%s:%u: не вдалося прочитати каталог %s"
+
+#: elf/ldconfig.c:1267
+#, c-format
+msgid "relative path `%s' used to build cache"
+msgstr "відносний шлях «%s» використано для збирання кешу"
+
+#: elf/ldconfig.c:1297
+#, c-format
+msgid "Can't chdir to /"
+msgstr "Не вдалося змінити каталог на /"
+
+#: elf/ldconfig.c:1338
+#, c-format
+msgid "Can't open cache file directory %s\n"
+msgstr "Не вдалося відкрити каталог файлів кешу %s\n"
+
+#: elf/ldd.bash.in:42
+msgid "Written by %s and %s.\n"
+msgstr "Автор програми %s та %s.\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 ""
+"Користування: ldd [ПАРАМЕТР]... ФАЙЛ...\n"
+" --help вивести це довідкове повідомлення і завершити роботу\n"
+" --version вивести дані щодо версії і завершити роботу\n"
+" -d, --data-relocs обробити пересування даних\n"
+" -r, --function-relocs обробити пересування даних і функцій\n"
+" -u, --unused вивести список невикористаних безпосередніх залежностей\n"
+" -v, --verbose вивести усі дані\n"
+
+#: elf/ldd.bash.in:80
+msgid "ldd: option \\`$1' is ambiguous"
+msgstr "ldd: параметр «$1» є неоднозначним"
+
+#: elf/ldd.bash.in:87
+msgid "unrecognized option"
+msgstr "нерозпізнаний параметр"
+
+#: elf/ldd.bash.in:88 elf/ldd.bash.in:126
+msgid "Try \\`ldd --help' for more information."
+msgstr "Спробуйте «ldd --help» для отримання докладнішого опису."
+
+#: elf/ldd.bash.in:125
+msgid "missing file arguments"
+msgstr "не вказано аргументів-назв файл"
+
+#. 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.
+#: elf/ldd.bash.in:148 sysdeps/gnu/errlist.c:36
+msgid "No such file or directory"
+msgstr "Немає такого файла або каталогу"
+
+#: elf/ldd.bash.in:151 inet/rcmd.c:488
+msgid "not regular file"
+msgstr "не є звичайним файлом"
+
+#: elf/ldd.bash.in:154
+msgid "warning: you do not have execution permission for"
+msgstr "попередження: у вас немає прав на виконання"
+
+#: elf/ldd.bash.in:183
+msgid "\tnot a dynamic executable"
+msgstr "\tне є динамічним виконуваним файлом"
+
+#: elf/ldd.bash.in:191
+msgid "exited with unknown exit code"
+msgstr "завершено з невідомим кодом виходу"
+
+#: elf/ldd.bash.in:196
+msgid "error: you do not have read permission for"
+msgstr "помилка: у вас немає права на читання"
+
+#: elf/pldd-xx.c:105
+#, c-format
+msgid "cannot find program header of process"
+msgstr "не вдалося знайти заголовок програми для обробки"
+
+#: elf/pldd-xx.c:110
+#, c-format
+msgid "cannot read program header"
+msgstr "не вдалося прочитати заголовок програми"
+
+#: elf/pldd-xx.c:135
+#, c-format
+msgid "cannot read dynamic section"
+msgstr "не вдалося прочитати розділ dynamic"
+
+#: elf/pldd-xx.c:147
+#, c-format
+msgid "cannot read r_debug"
+msgstr "не вдалося прочитати r_debug"
+
+#: elf/pldd-xx.c:167
+#, c-format
+msgid "cannot read program interpreter"
+msgstr "не вдалося прочитати інтерпретатор програми"
+
+#: elf/pldd-xx.c:196
+#, c-format
+msgid "cannot read link map"
+msgstr "не вдалося прочитати карту посилань"
+
+#: elf/pldd-xx.c:207
+#, c-format
+msgid "cannot read object name"
+msgstr "не вдалося прочитати назву об’єкта"
+
+#: elf/pldd.c:62
+msgid "List dynamic shared objects loaded into process."
+msgstr "Показати список динамічних об’єктів спільного використання, завантажених до процесу."
+
+#: elf/pldd.c:66
+msgid "PID"
+msgstr "PID"
+
+#: elf/pldd.c:97
+#, c-format
+msgid "Exactly one parameter with process ID required.\n"
+msgstr "З ідентифікатором процесу має бути вказано точно один параметр.\n"
+
+#: elf/pldd.c:109
+#, c-format
+msgid "invalid process ID '%s'"
+msgstr "некоректний ідентифікатор процесу «%s»"
+
+#: elf/pldd.c:117
+#, c-format
+msgid "cannot open %s"
+msgstr "не вдалося відкрити %s"
+
+#: elf/pldd.c:142
+#, c-format
+msgid "cannot open %s/task"
+msgstr "не вдалося відкрити %s/завдання"
+
+#: elf/pldd.c:145
+#, c-format
+msgid "cannot prepare reading %s/task"
+msgstr "не вдалося підготувати читання %s/завдання"
+
+#: elf/pldd.c:158
+#, c-format
+msgid "invalid thread ID '%s'"
+msgstr "некоректний ідентифікатор потоку «%s»"
+
+#: elf/pldd.c:169
+#, c-format
+msgid "cannot attach to process %lu"
+msgstr "не вдалося приєднатися до процесу %lu"
+
+#: elf/pldd.c:261
+#, c-format
+msgid "cannot get information about process %lu"
+msgstr "не вдалося отримати інформацію щодо процесу %lu"
+
+#: elf/pldd.c:274
+#, c-format
+msgid "process %lu is no ELF program"
+msgstr "процес %lu не є програмою ELF"
+
+#: elf/readelflib.c:34
+#, c-format
+msgid "file %s is truncated\n"
+msgstr "файл %s обрізано\n"
+
+#: elf/readelflib.c:66
+#, c-format
+msgid "%s is a 32 bit ELF file.\n"
+msgstr "%s є 32-бітовим файлом ELF.\n"
+
+#: elf/readelflib.c:68
+#, c-format
+msgid "%s is a 64 bit ELF file.\n"
+msgstr "%s є 64-бітовим файлом ELF.\n"
+
+#: elf/readelflib.c:70
+#, c-format
+msgid "Unknown ELFCLASS in file %s.\n"
+msgstr "Невідомий ELFCLASS у файлі %s.\n"
+
+#: elf/readelflib.c:77
+#, c-format
+msgid "%s is not a shared object file (Type: %d).\n"
+msgstr "%s не є файлом об’єктів спільного використання (тип: %d).\n"
+
+#: elf/readelflib.c:108
+#, c-format
+msgid "more than one dynamic segment\n"
+msgstr "більш ніж один динамічний сегмент\n"
+
+#: elf/readlib.c:96
+#, c-format
+msgid "Cannot fstat file %s.\n"
+msgstr "Не вдалося обробити за допомогою fstat файл %s.\n"
+
+#: elf/readlib.c:107
+#, c-format
+msgid "File %s is empty, not checked."
+msgstr "Файл %s є порожнім, не перевірено."
+
+#: elf/readlib.c:113
+#, c-format
+msgid "File %s is too small, not checked."
+msgstr "Файл %s є надто малим, не перевірено."
+
+#: elf/readlib.c:123
+#, c-format
+msgid "Cannot mmap file %s.\n"
+msgstr "Не вдалося виконати mmap для файла %s.\n"
+
+#: elf/readlib.c:161
+#, c-format
+msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
+msgstr "%s не є файлом ELF. Виявлено помилкові магічні байти на початку файла.\n"
+
+#: elf/sln.c:84
+#, c-format
+msgid ""
+"Usage: sln src dest|file\n"
+"\n"
+msgstr ""
+"Користування: sln джерело призначення|файл\n"
+"\n"
+
+#: elf/sln.c:109
+#, c-format
+msgid "%s: file open error: %m\n"
+msgstr "%s: помилка під час спроби відкрити файл: %m\n"
+
+#: elf/sln.c:146
+#, c-format
+msgid "No target in line %d\n"
+msgstr "Немає призначення у рядку %d\n"
+
+#: elf/sln.c:178
+#, c-format
+msgid "%s: destination must not be a directory\n"
+msgstr "%s: призначенням має бути каталог\n"
+
+#: elf/sln.c:184
+#, c-format
+msgid "%s: failed to remove the old destination\n"
+msgstr "%s: не вдалося вилучити старий каталог призначення\n"
+
+#: elf/sln.c:192
+#, c-format
+msgid "%s: invalid destination: %s\n"
+msgstr "%s: некоректне призначення: %s\n"
+
+#: elf/sln.c:207 elf/sln.c:216
+#, c-format
+msgid "Invalid link from \"%s\" to \"%s\": %s\n"
+msgstr "Некоректне посилання з «%s» на «%s»: %s\n"
+
+#: elf/sotruss.ksh:32
+#, sh-format
+msgid ""
+"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 ""
+"Користування: sotruss [ПАРАМЕТР...] [--] ВИКОНУВАНИЙ ФАЙЛ [ПАРАМЕТР...]\n"
+" -F, --from FROMLIST трасувати виклики від об’єктів з FROMLIST\n"
+" -T, --to TOLIST трасувати виклики до об’єктів з TOLIST\n"
+"\n"
+" -e, --exit показувати також виходи з викликів функцій\n"
+" -f, --follow трасувати дочірні процеси\n"
+" -o, --output ФАЙЛ записати виведені дані до файла ФАЙЛ (або до файла ФАЙЛ.$PID, якщо\n"
+"\t\t\t -f використано параметр) замість стандартного каналу для помилок\n"
+"\n"
+" -?, --help вивести цей довідковий список\n"
+" --usage вивести коротке повідомлення щодо користування\n"
+" --version вивести дані щодо версії"
+
+#: elf/sotruss.ksh:46
+msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n"
+msgstr "Обов’язкові аргументи до довгих форм запису параметрів є також об’язковими для\\nвідповідних скорочених форм запису.\\n"
+
+#: elf/sotruss.ksh:55
+msgid "%s: option requires an argument -- '%s'\\n"
+msgstr "%s: параметр потребує аргументу -- «%s»\\n"
+
+#: elf/sotruss.ksh:61
+msgid "%s: option is ambiguous; possibilities:"
+msgstr "%s: неоднозначний параметр; можливі варіанти:"
+
+#: elf/sotruss.ksh:79
+msgid "Written by %s.\\n"
+msgstr "Автор — %s.\\n"
+
+#: elf/sotruss.ksh: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 ""
+"Користування: %s [-ef] [-F FROMLIST] [-o ФАЙЛ] [-T TOLIST] [--exit]\n"
+"\t [--follow] [--from FROMLIST] [--output ФАЙЛ] [--to TOLIST]\n"
+"\t [--help] [--usage] [--version] [--]\n"
+"\t ВИКОНУВАНИЙ ФАЙЛ [ПАРАМЕТР...]\\n"
+
+#: elf/sotruss.ksh:134
+msgid "%s: unrecognized option '%c%s'\\n"
+msgstr "%s: невідомий параметр «%c%s»\\n"
+
+#: elf/sprof.c:77
+msgid "Output selection:"
+msgstr "Вибір виводу:"
+
+#: elf/sprof.c:79
+msgid "print list of count paths and their number of use"
+msgstr "вивести список шляхів лічильника та кількість їхнього використання"
+
+#: elf/sprof.c:81
+msgid "generate flat profile with counts and ticks"
+msgstr "створити плоский профіль з лічильниками та позначками"
+
+#: elf/sprof.c:82
+msgid "generate call graph"
+msgstr "створити граф викликів"
+
+#: elf/sprof.c:89
+msgid "Read and display shared object profiling data."
+msgstr "Прочитати або показати дані профілювання об’єктів спільного використання."
+
+#: elf/sprof.c:94
+msgid "SHOBJ [PROFDATA]"
+msgstr "ОСВ [ДАНІ_ПРОФІЛЮВАННЯ]"
+
+#: elf/sprof.c:433
+#, c-format
+msgid "failed to load shared object `%s'"
+msgstr "не вдалося завантажити об’єкт спільного використання «%s»"
+
+#: elf/sprof.c:442
+#, c-format
+msgid "cannot create internal descriptors"
+msgstr "Не вдалося створити внутрішні дескриптори"
+
+#: elf/sprof.c:554
+#, c-format
+msgid "Reopening shared object `%s' failed"
+msgstr "Спроба повторного відкриття об’єкта спільного використання «%s» зазнала невдачі"
+
+#: elf/sprof.c:561 elf/sprof.c:656
+#, c-format
+msgid "reading of section headers failed"
+msgstr "спроба читання заголовків розділів зазнала невдачі"
+
+#: elf/sprof.c:569 elf/sprof.c:664
+#, c-format
+msgid "reading of section header string table failed"
+msgstr "спроба читання таблиці рядків заголовка розділу завершилася невдало"
+
+#: elf/sprof.c:595
+#, c-format
+msgid "*** Cannot read debuginfo file name: %m\n"
+msgstr "*** Не вдалося прочитати назву файла з діагностичними даними: %m\n"
+
+#: elf/sprof.c:616
+#, c-format
+msgid "cannot determine file name"
+msgstr "не вдалося визначити назву файла"
+
+#: elf/sprof.c:649
+#, c-format
+msgid "reading of ELF header failed"
+msgstr "спроба читання заголовка ELF зазнала невдачі"
+
+#: elf/sprof.c:685
+#, c-format
+msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
+msgstr "*** Файл «%s» очищено від додаткових даних: докладний аналіз неможливий\n"
+
+#: elf/sprof.c:715
+#, c-format
+msgid "failed to load symbol data"
+msgstr "не вдалося завантажити дані символів"
+
+#: elf/sprof.c:780
+#, c-format
+msgid "cannot load profiling data"
+msgstr "не вдалося завантажити дані профілювання"
+
+#: elf/sprof.c:789
+#, c-format
+msgid "while stat'ing profiling data file"
+msgstr "під час отримання статистичних даних щодо файла даних профілювання"
+
+#: elf/sprof.c:797
+#, c-format
+msgid "profiling data file `%s' does not match shared object `%s'"
+msgstr "файл даних профілювання «%s» не відповідає об’єкту спільного використання «%s»"
+
+#: elf/sprof.c:808
+#, c-format
+msgid "failed to mmap the profiling data file"
+msgstr "не вдалося виконати mmap для файла даних профілювання"
+
+#: elf/sprof.c:816
+#, c-format
+msgid "error while closing the profiling data file"
+msgstr "помилка під час спроби закрити файл даних профілювання"
+
+#: elf/sprof.c:825 elf/sprof.c:923
+#, c-format
+msgid "cannot create internal descriptor"
+msgstr "не вдалося створити внутрішній дескриптор"
+
+#: elf/sprof.c:899
+#, c-format
+msgid "`%s' is no correct profile data file for `%s'"
+msgstr "«%s» не є коректним файлом даних профілювання для «%s»"
+
+#: elf/sprof.c:1080 elf/sprof.c:1138
+#, c-format
+msgid "cannot allocate symbol data"
+msgstr "не вдалося розмістити дані символу"
+
+#: iconv/iconv_charmap.c:141 iconv/iconv_prog.c:448
+#, c-format
+msgid "cannot open output file"
+msgstr "не вдалося відкрити файл виведення"
+
+#: iconv/iconv_charmap.c:187 iconv/iconv_prog.c:311
+#, c-format
+msgid "error while closing input `%s'"
+msgstr "помилка під час спроби закрити вхідний файл «%s»"
+
+#: iconv/iconv_charmap.c:461
+#, c-format
+msgid "illegal input sequence at position %Zd"
+msgstr "некоректна послідовність вхідних даних на позиції %Zd"
+
+#: iconv/iconv_charmap.c:480 iconv/iconv_prog.c:539
+#, c-format
+msgid "incomplete character or shift sequence at end of buffer"
+msgstr "незавершений символ чи послідовність зміни регістру наприкінці буфера"
+
+#: iconv/iconv_charmap.c:525 iconv/iconv_charmap.c:561 iconv/iconv_prog.c:582
+#: iconv/iconv_prog.c:618
+#, c-format
+msgid "error while reading the input"
+msgstr "помилка під час читання вхідних даних"
+
+#: iconv/iconv_charmap.c:543 iconv/iconv_prog.c:600
+#, c-format
+msgid "unable to allocate buffer for input"
+msgstr "не вдалося розмістити буфер для вхідних даних"
+
+#: iconv/iconv_prog.c:59
+msgid "Input/Output format specification:"
+msgstr "Специфікація форматі вхідних і вихідних даних:"
+
+#: iconv/iconv_prog.c:60
+msgid "encoding of original text"
+msgstr "кодування початкового тексту"
+
+#: iconv/iconv_prog.c:61
+msgid "encoding for output"
+msgstr "кодування результату перетворення"
+
+#: iconv/iconv_prog.c:62
+msgid "Information:"
+msgstr "Інформація:"
+
+#: iconv/iconv_prog.c:63
+msgid "list all known coded character sets"
+msgstr "показати список усіх відомих програмі наборів символів"
+
+#: iconv/iconv_prog.c:64 locale/programs/localedef.c:127
+msgid "Output control:"
+msgstr "Керування виводом:"
+
+#: iconv/iconv_prog.c:65
+msgid "omit invalid characters from output"
+msgstr "пропускати некоректні символи у вхідних даних"
+
+#: iconv/iconv_prog.c:66 iconv/iconvconfig.c:128
+#: locale/programs/localedef.c:120 locale/programs/localedef.c:122
+#: locale/programs/localedef.c:124 locale/programs/localedef.c:145
+#: malloc/memusagestat.c:56
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: iconv/iconv_prog.c:66
+msgid "output file"
+msgstr "вихідний файл"
+
+#: iconv/iconv_prog.c:67
+msgid "suppress warnings"
+msgstr "придушити попередження"
+
+#: iconv/iconv_prog.c:68
+msgid "print progress information"
+msgstr "виводити дані щодо поступу"
+
+#: iconv/iconv_prog.c:73
+msgid "Convert encoding of given files from one encoding to another."
+msgstr "Змінити кодування у вказаних файлах."
+
+#: iconv/iconv_prog.c:77
+msgid "[FILE...]"
+msgstr "[ФАЙЛ...]"
+
+#: iconv/iconv_prog.c:233
+#, c-format
+msgid "conversions from `%s' and to `%s' are not supported"
+msgstr "перетворення з «%s» до «%s» не передбачено"
+
+#: iconv/iconv_prog.c:238
+#, c-format
+msgid "conversion from `%s' is not supported"
+msgstr "підтримки перетворення з «%s» не передбачено"
+
+#: iconv/iconv_prog.c:245
+#, c-format
+msgid "conversion to `%s' is not supported"
+msgstr "підтримки перетворення до «%s» не передбачено"
+
+#: iconv/iconv_prog.c:249
+#, c-format
+msgid "conversion from `%s' to `%s' is not supported"
+msgstr "перетворення з «%s» до «%s» не передбачено"
+
+#: iconv/iconv_prog.c:259
+#, c-format
+msgid "failed to start conversion processing"
+msgstr "не вдалося розпочати процес перетворення"
+
+#: iconv/iconv_prog.c:357
+#, c-format
+msgid "error while closing output file"
+msgstr "помилка під час спроби закрити файл виведених даних"
+
+#: iconv/iconv_prog.c:458
+#, c-format
+msgid "conversion stopped due to problem in writing the output"
+msgstr "перетворення припинено через проблеми із записом результату"
+
+#: iconv/iconv_prog.c:535
+#, c-format
+msgid "illegal input sequence at position %ld"
+msgstr "некоректна послідовність вхідних даних на позиції %ld"
+
+#: iconv/iconv_prog.c:543
+#, c-format
+msgid "internal error (illegal descriptor)"
+msgstr "внутрішня помилка (некоректний дескриптор)"
+
+#: iconv/iconv_prog.c:546
+#, c-format
+msgid "unknown iconv() error %d"
+msgstr "невідома помилка iconv() з номером %d"
+
+#: iconv/iconv_prog.c:791
+msgid ""
+"The following list contain all the coded character sets known. This does\n"
+"not necessarily mean that all combinations of these names can be used for\n"
+"the FROM and TO command line parameters. One coded character set can be\n"
+"listed with several different names (aliases).\n"
+"\n"
+" "
+msgstr ""
+"У наведеному нижче списку містяться усі відомі кодовані набори символів. Це\n"
+"не обов’язково означає, що усіма цими комбінаціями назв можна скористатися\n"
+"для параметрів командного рядка FROM і TO. Один кодований набір символів\n"
+"може фігурувати у списку під різними назвами (псевдонімами).\n"
+"\n"
+" "
+
+#: iconv/iconvconfig.c:109
+msgid "Create fastloading iconv module configuration file."
+msgstr "Створити швидкозавантажуваний файл налаштувань модуля iconv."
+
+#: iconv/iconvconfig.c:113
+msgid "[DIR...]"
+msgstr "[КАТАЛОГ...]"
+
+#: iconv/iconvconfig.c:126 locale/programs/localedef.c:131
+msgid "PATH"
+msgstr "ШЛЯХ"
+
+#: iconv/iconvconfig.c:127
+msgid "Prefix used for all file accesses"
+msgstr "Префікс, що використовується для доступу до усіх файлів"
+
+#: iconv/iconvconfig.c:128
+msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)"
+msgstr "Вивести дані до файла ФАЙЛ замість встановленого місця (--prefix не застосовується до файла ФАЙЛ)"
+
+#: iconv/iconvconfig.c:132
+msgid "Do not search standard directories, only those on the command line"
+msgstr "Не шукати у стандартних каталогах, шукати лише у каталогах, вказаних у командному рядку"
+
+#: iconv/iconvconfig.c:299
+#, c-format
+msgid "Directory arguments required when using --nostdlib"
+msgstr "Якщо використовується --nostdlib, слід вказати аргументи-каталоги"
+
+#: iconv/iconvconfig.c:341 locale/programs/localedef.c:288
+#, c-format
+msgid "no output file produced because warnings were issued"
+msgstr "виведені дані не записано через появу попереджень"
+
+#: iconv/iconvconfig.c:430
+#, c-format
+msgid "while inserting in search tree"
+msgstr "під час вставлення до дерева пошуку"
+
+#: iconv/iconvconfig.c:1239
+#, c-format
+msgid "cannot generate output file"
+msgstr "не вдалося створити файл результату"
+
+#: inet/rcmd.c:163
+msgid "rcmd: Cannot allocate memory\n"
+msgstr "rcmd: не вдалося отримати область пам’яті\n"
+
+#: inet/rcmd.c:178
+msgid "rcmd: socket: All ports in use\n"
+msgstr "rcmd: socket: використано усі порти\n"
+
+#: inet/rcmd.c:206
+#, c-format
+msgid "connect to address %s: "
+msgstr "встановлення з’єднання з адресою %s: "
+
+#: inet/rcmd.c:219
+#, c-format
+msgid "Trying %s...\n"
+msgstr "Перевіряємо %s...\n"
+
+#: inet/rcmd.c:255
+#, c-format
+msgid "rcmd: write (setting up stderr): %m\n"
+msgstr "rcmd: write (налаштовування stderr): %m\n"
+
+#: inet/rcmd.c:271
+#, c-format
+msgid "rcmd: poll (setting up stderr): %m\n"
+msgstr "rcmd: poll (налаштовування stderr): %m\n"
+
+#: inet/rcmd.c:274
+msgid "poll: protocol failure in circuit setup\n"
+msgstr "poll: помилка протоколу у налаштуванні ланцюжка\n"
+
+#: inet/rcmd.c:306
+msgid "socket: protocol failure in circuit setup\n"
+msgstr "socket: помилка протоколу у налаштуванні ланцюжка\n"
+
+#: inet/rcmd.c:330
+#, c-format
+msgid "rcmd: %s: short read"
+msgstr "rcmd: %s: неповне читання"
+
+#: inet/rcmd.c:486
+msgid "lstat failed"
+msgstr "помилка lstat"
+
+#: inet/rcmd.c:493
+msgid "cannot open"
+msgstr "не вдалося відкрити"
+
+#: inet/rcmd.c:495
+msgid "fstat failed"
+msgstr "помилка fstat"
+
+#: inet/rcmd.c:497
+msgid "bad owner"
+msgstr "некоректний власник"
+
+#: inet/rcmd.c:499
+msgid "writeable by other than owner"
+msgstr "є придатним до запису іншими користувачами, окрім власника"
+
+#: inet/rcmd.c:501
+msgid "hard linked somewhere"
+msgstr "має жорстке посилання"
+
+#: inet/ruserpass.c:170 inet/ruserpass.c:193
+msgid "out of memory"
+msgstr "нестача пам'яті"
+
+#: inet/ruserpass.c:184
+msgid "Error: .netrc file is readable by others."
+msgstr "Помилка: файл .netrc може бути прочитано іншими користувачами."
+
+#: inet/ruserpass.c:185
+msgid "Remove password or make file unreadable by others."
+msgstr "Вилучити пароль або зробити файл непридатним до читання іншими користувачами."
+
+#: inet/ruserpass.c:277
+#, c-format
+msgid "Unknown .netrc keyword %s"
+msgstr "Невідоме ключове слово .netrc, %s"
+
+#: libidn/nfkc.c:463
+msgid "Character out of range for UTF-8"
+msgstr "Символ поза діапазоном символів UTF-8"
+
+#: locale/programs/charmap-dir.c:57
+#, c-format
+msgid "cannot read character map directory `%s'"
+msgstr "не вдалося прочитати каталог карти символів «%s»"
+
+#: locale/programs/charmap.c:138
+#, c-format
+msgid "character map file `%s' not found"
+msgstr "не знайдено файла таблиці символів «%s»"
+
+#: locale/programs/charmap.c:195
+#, c-format
+msgid "default character map file `%s' not found"
+msgstr "не знайдено файла типової таблиці символів «%s»"
+
+#: locale/programs/charmap.c:258
+#, c-format
+msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
+msgstr "таблиця символів «%s» несумісна з ASCII, локаль несумісна з ISO C\n"
+
+#: locale/programs/charmap.c:337
+#, c-format
+msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
+msgstr "%s: <mb_cur_max> має бути більшим за <mb_cur_min>\n"
+
+#: locale/programs/charmap.c:357 locale/programs/charmap.c:374
+#: locale/programs/repertoire.c:174
+#, c-format
+msgid "syntax error in prolog: %s"
+msgstr "синтаксична помилка у prolog: %s"
+
+#: locale/programs/charmap.c:358
+msgid "invalid definition"
+msgstr "некоректне визначення"
+
+#: locale/programs/charmap.c:375 locale/programs/locfile.c:125
+#: locale/programs/locfile.c:152 locale/programs/repertoire.c:175
+msgid "bad argument"
+msgstr "помилковий аргумент"
+
+#: locale/programs/charmap.c:403
+#, c-format
+msgid "duplicate definition of <%s>"
+msgstr "дублювання визначення <%s>"
+
+#: locale/programs/charmap.c:410
+#, c-format
+msgid "value for <%s> must be 1 or greater"
+msgstr "значенням <%s> має бути 1 або більше число"
+
+#: locale/programs/charmap.c:422
+#, c-format
+msgid "value of <%s> must be greater or equal than the value of <%s>"
+msgstr "значення <%s> має бути більшим або рівним за значення <%s>"
+
+#: locale/programs/charmap.c:445 locale/programs/repertoire.c:183
+#, c-format
+msgid "argument to <%s> must be a single character"
+msgstr "аргументом до <%s> має бути один символ"
+
+#: locale/programs/charmap.c:471
+msgid "character sets with locking states are not supported"
+msgstr "підтримки таблиць символів зі станами блокування не передбачено"
+
+#: locale/programs/charmap.c:498 locale/programs/charmap.c:552
+#: locale/programs/charmap.c:584 locale/programs/charmap.c:678
+#: locale/programs/charmap.c:733 locale/programs/charmap.c:774
+#: locale/programs/charmap.c:815
+#, c-format
+msgid "syntax error in %s definition: %s"
+msgstr "синтаксична помилка у визначенні %s: %s"
+
+#: locale/programs/charmap.c:499 locale/programs/charmap.c:679
+#: locale/programs/charmap.c:775 locale/programs/repertoire.c:230
+msgid "no symbolic name given"
+msgstr "не вказано символічної назви"
+
+#: locale/programs/charmap.c:553
+msgid "invalid encoding given"
+msgstr "вказано некоректне кодування"
+
+#: locale/programs/charmap.c:562
+msgid "too few bytes in character encoding"
+msgstr "у кодуванні символів надто мало байтів"
+
+#: locale/programs/charmap.c:564
+msgid "too many bytes in character encoding"
+msgstr "у кодуванні символів надто багато байтів"
+
+#: locale/programs/charmap.c:586 locale/programs/charmap.c:734
+#: locale/programs/charmap.c:817 locale/programs/repertoire.c:296
+msgid "no symbolic name given for end of range"
+msgstr "не вказано символічної назви для кінця діапазону"
+
+#: locale/programs/charmap.c:610 locale/programs/ld-address.c:602
+#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3925
+#: locale/programs/ld-ctype.c:2256 locale/programs/ld-ctype.c:3007
+#: locale/programs/ld-identification.c:452
+#: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332
+#: locale/programs/ld-monetary.c:942 locale/programs/ld-name.c:307
+#: locale/programs/ld-numeric.c:368 locale/programs/ld-paper.c:241
+#: locale/programs/ld-telephone.c:313 locale/programs/ld-time.c:1221
+#: locale/programs/repertoire.c:313
+#, c-format
+msgid "%1$s: definition does not end with `END %1$s'"
+msgstr "%1$s: визначення не завершується на «END %1$s»"
+
+#: locale/programs/charmap.c:643
+msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+msgstr "за визначенням CHARMAP можуть бути лише визначення WIDTH"
+
+#: locale/programs/charmap.c:651 locale/programs/charmap.c:714
+#, c-format
+msgid "value for %s must be an integer"
+msgstr "значенням %s має бути ціле число"
+
+#: locale/programs/charmap.c:842
+#, c-format
+msgid "%s: error in state machine"
+msgstr "%s: помилка у скінченному автоматі"
+
+#: locale/programs/charmap.c:850 locale/programs/ld-address.c:618
+#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4118
+#: locale/programs/ld-ctype.c:2253 locale/programs/ld-ctype.c:3024
+#: locale/programs/ld-identification.c:468
+#: locale/programs/ld-measurement.c:254 locale/programs/ld-messages.c:348
+#: locale/programs/ld-monetary.c:958 locale/programs/ld-name.c:323
+#: locale/programs/ld-numeric.c:384 locale/programs/ld-paper.c:257
+#: locale/programs/ld-telephone.c:329 locale/programs/ld-time.c:1237
+#: locale/programs/locfile.c:825 locale/programs/repertoire.c:324
+#, c-format
+msgid "%s: premature end of file"
+msgstr "%s: передчасне завершення файла"
+
+#: locale/programs/charmap.c:869 locale/programs/charmap.c:880
+#, c-format
+msgid "unknown character `%s'"
+msgstr "невідомий символ «%s»"
+
+#: locale/programs/charmap.c:888
+#, c-format
+msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
+msgstr "кількість байтів у послідовностях запису початку і завершення діапазон не є однаковою: %d і %d"
+
+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3044
+#: locale/programs/repertoire.c:419
+msgid "invalid names for character range"
+msgstr "некоректні назви для діапазону символів"
+
+#: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431
+msgid "hexadecimal range format should use only capital characters"
+msgstr "у шістнадцятковому форматі діапазону мають використовуватися лише великі літери"
+
+#: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449
+#, c-format
+msgid "<%s> and <%s> are invalid names for range"
+msgstr "<%s> і <%s> є некоректними назвами для діапазону"
+
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456
+msgid "upper limit in range is smaller than lower limit"
+msgstr "верхнє обмеження у діапазоні є меншим за нижнє обмеження"
+
+#: locale/programs/charmap.c:1087
+msgid "resulting bytes for range not representable."
+msgstr "байти результату для діапазону неможливо представити на комп’ютері."
+
+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1558
+#: locale/programs/ld-ctype.c:421 locale/programs/ld-identification.c:133
+#: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97
+#: locale/programs/ld-monetary.c:193 locale/programs/ld-name.c:94
+#: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91
+#: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159
+#, c-format
+msgid "No definition for %s category found"
+msgstr "Не знайдено визначення для категорії %s"
+
+#: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184
+#: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231
+#: locale/programs/ld-address.c:303 locale/programs/ld-address.c:322
+#: locale/programs/ld-address.c:335 locale/programs/ld-identification.c:146
+#: locale/programs/ld-measurement.c:105 locale/programs/ld-monetary.c:205
+#: locale/programs/ld-monetary.c:249 locale/programs/ld-monetary.c:265
+#: locale/programs/ld-monetary.c:277 locale/programs/ld-name.c:105
+#: locale/programs/ld-name.c:142 locale/programs/ld-numeric.c:112
+#: locale/programs/ld-numeric.c:126 locale/programs/ld-paper.c:102
+#: locale/programs/ld-paper.c:111 locale/programs/ld-telephone.c:105
+#: locale/programs/ld-telephone.c:162 locale/programs/ld-time.c:175
+#: locale/programs/ld-time.c:196
+#, c-format
+msgid "%s: field `%s' not defined"
+msgstr "%s: поле «%s» не визначено"
+
+#: locale/programs/ld-address.c:158 locale/programs/ld-address.c:210
+#: locale/programs/ld-address.c:240 locale/programs/ld-address.c:278
+#: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117
+#, c-format
+msgid "%s: field `%s' must not be empty"
+msgstr "%s: поле «%s» має бути непорожнім"
+
+#: locale/programs/ld-address.c:170
+#, c-format
+msgid "%s: invalid escape `%%%c' sequence in field `%s'"
+msgstr "%s: некоректна керівна послідовність «%%%c» у полі «%s»"
+
+#: locale/programs/ld-address.c:221
+#, c-format
+msgid "%s: terminology language code `%s' not defined"
+msgstr "%s: код мови термінології «%s» не визначено"
+
+#: locale/programs/ld-address.c:246
+#, c-format
+msgid "%s: field `%s' must not be defined"
+msgstr "%s: поле «%s» має залишатися невизначеним"
+
+#: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289
+#, c-format
+msgid "%s: language abbreviation `%s' not defined"
+msgstr "%s: коду мови «%s» не визначено"
+
+#: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295
+#: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341
+#, c-format
+msgid "%s: `%s' value does not match `%s' value"
+msgstr "%s: значення «%s» не відповідає значенню «%s»"
+
+#: locale/programs/ld-address.c:314
+#, c-format
+msgid "%s: numeric country code `%d' not valid"
+msgstr "%s: числовий код країни «%d» є некоректним"
+
+#: locale/programs/ld-address.c:510 locale/programs/ld-address.c:547
+#: locale/programs/ld-address.c:585 locale/programs/ld-ctype.c:2631
+#: locale/programs/ld-identification.c:364
+#: locale/programs/ld-measurement.c:221 locale/programs/ld-messages.c:301
+#: locale/programs/ld-monetary.c:700 locale/programs/ld-monetary.c:735
+#: locale/programs/ld-monetary.c:776 locale/programs/ld-name.c:280
+#: locale/programs/ld-numeric.c:263 locale/programs/ld-paper.c:224
+#: locale/programs/ld-telephone.c:288 locale/programs/ld-time.c:1126
+#: locale/programs/ld-time.c:1168
+#, c-format
+msgid "%s: field `%s' declared more than once"
+msgstr "%s: поле «%s» оголошено декілька разів"
+
+#: locale/programs/ld-address.c:514 locale/programs/ld-address.c:552
+#: locale/programs/ld-identification.c:368 locale/programs/ld-messages.c:311
+#: locale/programs/ld-monetary.c:704 locale/programs/ld-monetary.c:739
+#: locale/programs/ld-name.c:284 locale/programs/ld-numeric.c:267
+#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:1020
+#: locale/programs/ld-time.c:1089 locale/programs/ld-time.c:1131
+#, c-format
+msgid "%s: unknown character in field `%s'"
+msgstr "%s: невідомий символ у полі «%s»"
+
+#: locale/programs/ld-address.c:599 locale/programs/ld-collate.c:3923
+#: locale/programs/ld-ctype.c:3004 locale/programs/ld-identification.c:449
+#: locale/programs/ld-measurement.c:235 locale/programs/ld-messages.c:330
+#: locale/programs/ld-monetary.c:940 locale/programs/ld-name.c:305
+#: locale/programs/ld-numeric.c:366 locale/programs/ld-paper.c:239
+#: locale/programs/ld-telephone.c:311 locale/programs/ld-time.c:1219
+#, c-format
+msgid "%s: incomplete `END' line"
+msgstr "%s: незавершений рядок «END»"
+
+#: locale/programs/ld-address.c:609 locale/programs/ld-collate.c:544
+#: locale/programs/ld-collate.c:596 locale/programs/ld-collate.c:892
+#: locale/programs/ld-collate.c:905 locale/programs/ld-collate.c:2733
+#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4108
+#: locale/programs/ld-ctype.c:1985 locale/programs/ld-ctype.c:2243
+#: locale/programs/ld-ctype.c:2829 locale/programs/ld-ctype.c:3015
+#: locale/programs/ld-identification.c:459
+#: locale/programs/ld-measurement.c:245 locale/programs/ld-messages.c:339
+#: locale/programs/ld-monetary.c:949 locale/programs/ld-name.c:314
+#: locale/programs/ld-numeric.c:375 locale/programs/ld-paper.c:248
+#: locale/programs/ld-telephone.c:320 locale/programs/ld-time.c:1228
+#, c-format
+msgid "%s: syntax error"
+msgstr "%s: синтаксична помилка"
+
+#: locale/programs/ld-collate.c:419
+#, c-format
+msgid "`%.*s' already defined in charmap"
+msgstr "у таблиці символів вже визначено «%.*s»"
+
+#: locale/programs/ld-collate.c:428
+#, c-format
+msgid "`%.*s' already defined in repertoire"
+msgstr "у системі команд уже визначено «%.*s»"
+
+#: locale/programs/ld-collate.c:435
+#, c-format
+msgid "`%.*s' already defined as collating symbol"
+msgstr "«%.*s» вже визначено символ впорядковування"
+
+#: locale/programs/ld-collate.c:442
+#, c-format
+msgid "`%.*s' already defined as collating element"
+msgstr "«%.*s» вже визначено як елемент впорядковування"
+
+#: locale/programs/ld-collate.c:473 locale/programs/ld-collate.c:499
+#, c-format
+msgid "%s: `forward' and `backward' are mutually excluding each other"
+msgstr "%s: команди «forward» і «backward» не можна використовувати одночасно"
+
+#: locale/programs/ld-collate.c:483 locale/programs/ld-collate.c:509
+#: locale/programs/ld-collate.c:525
+#, c-format
+msgid "%s: `%s' mentioned more than once in definition of weight %d"
+msgstr "%s: «%s» у визначенні ваги %d згадано декілька разів"
+
+#: locale/programs/ld-collate.c:581
+#, c-format
+msgid "%s: too many rules; first entry only had %d"
+msgstr "%s: забагато правил; у першому записі було лише %d"
+
+#: locale/programs/ld-collate.c:617
+#, c-format
+msgid "%s: not enough sorting rules"
+msgstr "%s: недостатньо правил упорядкування"
+
+#: locale/programs/ld-collate.c:782
+#, c-format
+msgid "%s: empty weight string not allowed"
+msgstr "%s: не можна використовувати порожній рядок ваги"
+
+#: locale/programs/ld-collate.c:877
+#, c-format
+msgid "%s: weights must use the same ellipsis symbol as the name"
+msgstr "%s: у записах ваги має бути використано той самий символ еліпсиса, що і у назві"
+
+#: locale/programs/ld-collate.c:933
+#, c-format
+msgid "%s: too many values"
+msgstr "%s: забагато значень"
+
+#: locale/programs/ld-collate.c:1053 locale/programs/ld-collate.c:1228
+#, c-format
+msgid "order for `%.*s' already defined at %s:%Zu"
+msgstr "порядок «%.*s» вже визначено у %s:%Zu"
+
+#: locale/programs/ld-collate.c:1103
+#, c-format
+msgid "%s: the start and the end symbol of a range must stand for characters"
+msgstr "%s: початковий і кінцевий символ діапазону мають бути замінниками символів"
+
+#: locale/programs/ld-collate.c:1130
+#, c-format
+msgid "%s: byte sequences of first and last character must have the same length"
+msgstr "%s: байтові послідовності першого і останнього символів повинні мати однакову довжину"
+
+#: locale/programs/ld-collate.c:1172
+#, c-format
+msgid "%s: byte sequence of first character of range is not lower than that of the last character"
+msgstr "%s: послідовність байтів першого символу діапазону є більшою або рівною послідовності байтів останнього символу"
+
+#: locale/programs/ld-collate.c:1297
+#, c-format
+msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
+msgstr "%s: за еліпсисом символьного діапазону не може безпосередньо вказувати «order_start»"
+
+#: locale/programs/ld-collate.c:1301
+#, c-format
+msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'"
+msgstr "%s: за еліпсисом у символьному діапазоні не можна безпосередньо вказувати «order_end»"
+
+#: locale/programs/ld-collate.c:1321 locale/programs/ld-ctype.c:1502
+#, c-format
+msgid "`%s' and `%.*s' are not valid names for symbolic range"
+msgstr "«%s» і «%.*s» не є коректними назвами для діапазону символів"
+
+#: locale/programs/ld-collate.c:1371 locale/programs/ld-collate.c:3859
+#, c-format
+msgid "%s: order for `%.*s' already defined at %s:%Zu"
+msgstr "%s: порядок «%.*s» вже визначено у %s:%Zu"
+
+#: locale/programs/ld-collate.c:1380
+#, c-format
+msgid "%s: `%s' must be a character"
+msgstr "%s: «%s» має бути символом"
+
+#: locale/programs/ld-collate.c:1575
+#, c-format
+msgid "%s: `position' must be used for a specific level in all sections or none"
+msgstr "%s: «position» має бути використано для певного рівня в усіх розділах або у жодному з розділів"
+
+#: locale/programs/ld-collate.c:1600
+#, c-format
+msgid "symbol `%s' not defined"
+msgstr "символ «%s» не визначено"
+
+#: locale/programs/ld-collate.c:1676 locale/programs/ld-collate.c:1782
+#, c-format
+msgid "symbol `%s' has the same encoding as"
+msgstr "символ «%s» має те саме кодування, що і"
+
+#: locale/programs/ld-collate.c:1680 locale/programs/ld-collate.c:1786
+#, c-format
+msgid "symbol `%s'"
+msgstr "символ «%s»"
+
+#: locale/programs/ld-collate.c:1828
+#, c-format
+msgid "no definition of `UNDEFINED'"
+msgstr "немає визначення «UNDEFINED»"
+
+#: locale/programs/ld-collate.c:1857
+#, c-format
+msgid "too many errors; giving up"
+msgstr "забагато помилок; припиняємо обробку"
+
+#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4047
+#, c-format
+msgid "%s: nested conditionals not supported"
+msgstr "%s: підтримки вкладених умов не передбачено"
+
+#: locale/programs/ld-collate.c:2677
+#, c-format
+msgid "%s: more then one 'else'"
+msgstr "%s: декілька «else»"
+
+#: locale/programs/ld-collate.c:2852
+#, c-format
+msgid "%s: duplicate definition of `%s'"
+msgstr "%s: повторне визначення «%s»"
+
+#: locale/programs/ld-collate.c:2888
+#, c-format
+msgid "%s: duplicate declaration of section `%s'"
+msgstr "%s: повторне оголошення розділу «%s»"
+
+#: locale/programs/ld-collate.c:3024
+#, c-format
+msgid "%s: unknown character in collating symbol name"
+msgstr "%s: невідомий символ у назві символу впорядковування"
+
+#: locale/programs/ld-collate.c:3153
+#, c-format
+msgid "%s: unknown character in equivalent definition name"
+msgstr "%s: невідомий символ у назві еквівалентного визначення"
+
+#: locale/programs/ld-collate.c:3164
+#, c-format
+msgid "%s: unknown character in equivalent definition value"
+msgstr "%s: невідомий символ у значенні еквівалентного визначення"
+
+#: locale/programs/ld-collate.c:3174
+#, c-format
+msgid "%s: unknown symbol `%s' in equivalent definition"
+msgstr "%s: невідомий символ «%s» у еквівалентному визначенні"
+
+#: locale/programs/ld-collate.c:3183
+msgid "error while adding equivalent collating symbol"
+msgstr "помилка під час додавання еквівалентного символу впорядковування"
+
+#: locale/programs/ld-collate.c:3221
+#, c-format
+msgid "duplicate definition of script `%s'"
+msgstr "повторне визначення системи запису «%s»"
+
+#: locale/programs/ld-collate.c:3269
+#, c-format
+msgid "%s: unknown section name `%.*s'"
+msgstr "%s: невідома назва розділу «%.*s»"
+
+#: locale/programs/ld-collate.c:3298
+#, c-format
+msgid "%s: multiple order definitions for section `%s'"
+msgstr "%s: декілька визначень порядку для розділу «%s»"
+
+#: locale/programs/ld-collate.c:3326
+#, c-format
+msgid "%s: invalid number of sorting rules"
+msgstr "%s: некоректна кількість правил упорядкування"
+
+#: locale/programs/ld-collate.c:3353
+#, c-format
+msgid "%s: multiple order definitions for unnamed section"
+msgstr "%s: декілька визначень порядку для розділу без назви"
+
+#: locale/programs/ld-collate.c:3408 locale/programs/ld-collate.c:3538
+#: locale/programs/ld-collate.c:3901
+#, c-format
+msgid "%s: missing `order_end' keyword"
+msgstr "%s: не вистачає ключового слова «order_end»"
+
+#: locale/programs/ld-collate.c:3471
+#, c-format
+msgid "%s: order for collating symbol %.*s not yet defined"
+msgstr "%s: порядок для символу впорядковування %.*s ще не визначено"
+
+#: locale/programs/ld-collate.c:3489
+#, c-format
+msgid "%s: order for collating element %.*s not yet defined"
+msgstr "%s: порядок для елемента впорядковування %.*s ще не визначено"
+
+#: locale/programs/ld-collate.c:3500
+#, c-format
+msgid "%s: cannot reorder after %.*s: symbol not known"
+msgstr "%s: перевпорядковування після %.*s неможливе: невідомий символ"
+
+#: locale/programs/ld-collate.c:3552 locale/programs/ld-collate.c:3913
+#, c-format
+msgid "%s: missing `reorder-end' keyword"
+msgstr "%s: не вистачає ключового слова «reorder-end»"
+
+#: locale/programs/ld-collate.c:3586 locale/programs/ld-collate.c:3784
+#, c-format
+msgid "%s: section `%.*s' not known"
+msgstr "%s: невідомий розділ «%.*s»"
+
+#: locale/programs/ld-collate.c:3651
+#, c-format
+msgid "%s: bad symbol <%.*s>"
+msgstr "%s: помилковий символ <%.*s>"
+
+#: locale/programs/ld-collate.c:3847
+#, c-format
+msgid "%s: cannot have `%s' as end of ellipsis range"
+msgstr "%s: «%s» не може бути наприкінці діапазону з еліпсисом"
+
+#: locale/programs/ld-collate.c:3897
+#, c-format
+msgid "%s: empty category description not allowed"
+msgstr "%s: не можна використовувати порожні описи категорій"
+
+#: locale/programs/ld-collate.c:3916
+#, c-format
+msgid "%s: missing `reorder-sections-end' keyword"
+msgstr "%s: не вистачає ключового слова «reorder-sections-end»"
+
+#: locale/programs/ld-collate.c:4080
+#, c-format
+msgid "%s: '%s' without matching 'ifdef' or 'ifndef'"
+msgstr "%s: «%s» без відповідного «ifdef» або «ifndef»"
+
+#: locale/programs/ld-collate.c:4098
+#, c-format
+msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'"
+msgstr "%s: «endif» без відповідного «ifdef» або «ifndef»"
+
+#: locale/programs/ld-ctype.c:440
+#, c-format
+msgid "No character set name specified in charmap"
+msgstr "У таблиці символів не визначено назви набору символів"
+
+#: locale/programs/ld-ctype.c:469
+#, c-format
+msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
+msgstr "символ L'\\u%0*x' у класі «%s» має належати до класу «%s»"
+
+#: locale/programs/ld-ctype.c:484
+#, c-format
+msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
+msgstr "символ L'\\u%0*x' у класі «%s» не повинен належати до класу «%s»"
+
+#: locale/programs/ld-ctype.c:498 locale/programs/ld-ctype.c:556
+#, c-format
+msgid "internal error in %s, line %u"
+msgstr "внутрішня помилка у %s, рядок %u"
+
+#: locale/programs/ld-ctype.c:527
+#, c-format
+msgid "character '%s' in class `%s' must be in class `%s'"
+msgstr "символ «%s» у класі «%s» має належати до класу «%s»"
+
+#: locale/programs/ld-ctype.c:543
+#, c-format
+msgid "character '%s' in class `%s' must not be in class `%s'"
+msgstr "символ «%s» у класі «%s» не повинен належати до класу «%s»"
+
+#: locale/programs/ld-ctype.c:573 locale/programs/ld-ctype.c:611
+#, c-format
+msgid "<SP> character not in class `%s'"
+msgstr "у класі «%s» має бути символ <SP>"
+
+#: locale/programs/ld-ctype.c:585 locale/programs/ld-ctype.c:622
+#, c-format
+msgid "<SP> character must not be in class `%s'"
+msgstr "у класі «%s» не повинно бути символу <SP>"
+
+#: locale/programs/ld-ctype.c:600
+#, c-format
+msgid "character <SP> not defined in character map"
+msgstr "символ <SP> не визначено у таблиці символів"
+
+#: locale/programs/ld-ctype.c:736
+#, c-format
+msgid "`digit' category has not entries in groups of ten"
+msgstr "категорію «digit» не згруповано за степенями десяти"
+
+#: locale/programs/ld-ctype.c:785
+#, c-format
+msgid "no input digits defined and none of the standard names in the charmap"
+msgstr "не визначено вхідних цифр і немає стандартних назв у таблиці символів"
+
+#: locale/programs/ld-ctype.c:850
+#, c-format
+msgid "not all characters used in `outdigit' are available in the charmap"
+msgstr "не усі символи, використані у «outdigit», є у таблиці символів"
+
+#: locale/programs/ld-ctype.c:867
+#, c-format
+msgid "not all characters used in `outdigit' are available in the repertoire"
+msgstr "не усі символи, використані у «outdigit», є у наборі команд"
+
+#: locale/programs/ld-ctype.c:1270
+#, c-format
+msgid "character class `%s' already defined"
+msgstr "клас символів «%s» вже визначено"
+
+#: locale/programs/ld-ctype.c:1276
+#, c-format
+msgid "implementation limit: no more than %Zd character classes allowed"
+msgstr "обмеження реалізації: передбачено підтримку не більше за %Zd класів символів"
+
+#: locale/programs/ld-ctype.c:1302
+#, c-format
+msgid "character map `%s' already defined"
+msgstr "таблицю символів «%s» вже визначено"
+
+#: locale/programs/ld-ctype.c:1308
+#, c-format
+msgid "implementation limit: no more than %d character maps allowed"
+msgstr "обмеження реалізації: передбачено підтримку не більше за %d таблиць символів"
+
+#: locale/programs/ld-ctype.c:1573 locale/programs/ld-ctype.c:1698
+#: locale/programs/ld-ctype.c:1804 locale/programs/ld-ctype.c:2494
+#: locale/programs/ld-ctype.c:3490
+#, c-format
+msgid "%s: field `%s' does not contain exactly ten entries"
+msgstr "%s: у полі «%s» не міститься точно десять записів"
+
+#: locale/programs/ld-ctype.c:1601 locale/programs/ld-ctype.c:2175
+#, c-format
+msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
+msgstr "верхнє обмеження діапазону <U%0*X> є меншим за нижнє обмеження <U%0*X>"
+
+#: locale/programs/ld-ctype.c:1728
+msgid "start and end character sequence of range must have the same length"
+msgstr "початкова і кінцева послідовності символів діапазону повинні бути однакової довжини"
+
+#: locale/programs/ld-ctype.c:1735
+msgid "to-value character sequence is smaller than from-value sequence"
+msgstr "кінцева послідовність символу діапазону є меншою за початкову послідовність"
+
+#: locale/programs/ld-ctype.c:2095 locale/programs/ld-ctype.c:2146
+msgid "premature end of `translit_ignore' definition"
+msgstr "передчасне завершення визначення «translit_ignore»"
+
+#: locale/programs/ld-ctype.c:2101 locale/programs/ld-ctype.c:2152
+#: locale/programs/ld-ctype.c:2194
+msgid "syntax error"
+msgstr "синтаксична помилка"
+
+#: locale/programs/ld-ctype.c:2327
+#, c-format
+msgid "%s: syntax error in definition of new character class"
+msgstr "%s: синтаксична помилка у визначенні нового класу символів"
+
+#: locale/programs/ld-ctype.c:2342
+#, c-format
+msgid "%s: syntax error in definition of new character map"
+msgstr "%s: синтаксична помилка у визначенні нової таблиці символів"
+
+#: locale/programs/ld-ctype.c:2516
+msgid "ellipsis range must be marked by two operands of same type"
+msgstr "діапазон з еліпсисом має бути позначено двома операндами одного типу"
+
+#: locale/programs/ld-ctype.c:2525
+msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
+msgstr "з символічними назвами значень діапазону не можна використовувати абсолютний еліпсис «...»"
+
+#: locale/programs/ld-ctype.c:2540
+msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
+msgstr "зі значеннями діапазону UCS слід використовувати шістнадцятковий символьний еліпсис «..»"
+
+#: locale/programs/ld-ctype.c:2554
+msgid "with character code range values one must use the absolute ellipsis `...'"
+msgstr "зі значенням діапазону кодувань символів слід використовувати абсолютний еліпсис «...»"
+
+#: locale/programs/ld-ctype.c:2705
+#, c-format
+msgid "duplicated definition for mapping `%s'"
+msgstr "дублікат визначення для відображення «%s»"
+
+#: locale/programs/ld-ctype.c:2791 locale/programs/ld-ctype.c:2935
+#, c-format
+msgid "%s: `translit_start' section does not end with `translit_end'"
+msgstr "%s: розділ «translit_start» не завершується командою «translit_end»"
+
+#: locale/programs/ld-ctype.c:2886
+#, c-format
+msgid "%s: duplicate `default_missing' definition"
+msgstr "%s: повторне визначення «default_missing»"
+
+#: locale/programs/ld-ctype.c:2891
+msgid "previous definition was here"
+msgstr "попереднє визначення було тут:"
+
+#: locale/programs/ld-ctype.c:2913
+#, c-format
+msgid "%s: no representable `default_missing' definition found"
+msgstr "%s: не знайдено придатного для представлення визначення «default_missing»"
+
+#: locale/programs/ld-ctype.c:3066 locale/programs/ld-ctype.c:3150
+#: locale/programs/ld-ctype.c:3170 locale/programs/ld-ctype.c:3191
+#: locale/programs/ld-ctype.c:3212 locale/programs/ld-ctype.c:3233
+#: locale/programs/ld-ctype.c:3254 locale/programs/ld-ctype.c:3294
+#: locale/programs/ld-ctype.c:3315 locale/programs/ld-ctype.c:3382
+#: locale/programs/ld-ctype.c:3424 locale/programs/ld-ctype.c:3449
+#, c-format
+msgid "%s: character `%s' not defined while needed as default value"
+msgstr "%s: символ «%s» не визначено, хоча він і потрібен як типове значення"
+
+#: locale/programs/ld-ctype.c:3071 locale/programs/ld-ctype.c:3155
+#: locale/programs/ld-ctype.c:3175 locale/programs/ld-ctype.c:3196
+#: locale/programs/ld-ctype.c:3217 locale/programs/ld-ctype.c:3238
+#: locale/programs/ld-ctype.c:3259 locale/programs/ld-ctype.c:3299
+#: locale/programs/ld-ctype.c:3320 locale/programs/ld-ctype.c:3387
+#, c-format
+msgid "%s: character `%s' in charmap not representable with one byte"
+msgstr "%s: символ «%s» у таблиці символів не можна представити одним байтом"
+
+#: locale/programs/ld-ctype.c:3431 locale/programs/ld-ctype.c:3456
+#, c-format
+msgid "%s: character `%s' needed as default value not representable with one byte"
+msgstr "%s: символ «%s», потрібний як типове значення, не можна представити одним байтом"
+
+#: locale/programs/ld-ctype.c:3512
+#, c-format
+msgid "no output digits defined and none of the standard names in the charmap"
+msgstr "не визначено вихідних цифр і немає стандартних назв у таблиці символів"
+
+#: locale/programs/ld-ctype.c:3803
+#, c-format
+msgid "%s: transliteration data from locale `%s' not available"
+msgstr "%s: дані транслітерації з локалі «%s» недоступні"
+
+#: locale/programs/ld-ctype.c:3904
+#, c-format
+msgid "%s: table for class \"%s\": %lu bytes\n"
+msgstr "%s: таблиця класу «%s»: %lu байт\n"
+
+#: locale/programs/ld-ctype.c:3973
+#, c-format
+msgid "%s: table for map \"%s\": %lu bytes\n"
+msgstr "%s: таблиця «%s»: %lu байт\n"
+
+#: locale/programs/ld-ctype.c:4106
+#, c-format
+msgid "%s: table for width: %lu bytes\n"
+msgstr "%s: таблиця ширини: %lu байт\n"
+
+#: locale/programs/ld-identification.c:170
+#, c-format
+msgid "%s: no identification for category `%s'"
+msgstr "%s: для категорії «%s» немає ідентифікації"
+
+#: locale/programs/ld-identification.c:435
+#, c-format
+msgid "%s: duplicate category version definition"
+msgstr "%s: повторне визначення версії категорії"
+
+#: locale/programs/ld-measurement.c:113
+#, c-format
+msgid "%s: invalid value for field `%s'"
+msgstr "%s: некоректне значення поля «%s»"
+
+#: locale/programs/ld-messages.c:114 locale/programs/ld-messages.c:148
+#, c-format
+msgid "%s: field `%s' undefined"
+msgstr "%s: поле «%s» не визначено"
+
+#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:155
+#: locale/programs/ld-monetary.c:255 locale/programs/ld-numeric.c:118
+#, c-format
+msgid "%s: value for field `%s' must not be an empty string"
+msgstr "%s: значенням у полі «%s» не повинен бути порожній рядок"
+
+#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:171
+#, c-format
+msgid "%s: no correct regular expression for field `%s': %s"
+msgstr "%s: немає належного формального виразу для поля «%s»: %s"
+
+#: locale/programs/ld-monetary.c:223
+#, c-format
+msgid "%s: value of field `int_curr_symbol' has wrong length"
+msgstr "%s: довжина значення поля «int_curr_symbol» є помилковою"
+
+#: locale/programs/ld-monetary.c:236
+#, c-format
+msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217"
+msgstr "%s: довжина значення поля «int_curr_symbol» не відповідає чинній назві у ISO 4217"
+
+#: locale/programs/ld-monetary.c:284 locale/programs/ld-monetary.c:314
+#, c-format
+msgid "%s: value for field `%s' must be in range %d...%d"
+msgstr "%s: значення у полі «%s» має належати діапазону %d...%d"
+
+#: locale/programs/ld-monetary.c:746 locale/programs/ld-numeric.c:274
+#, c-format
+msgid "%s: value for field `%s' must be a single character"
+msgstr "%s: значення у полі «%s» має складатися з одного символу"
+
+#: locale/programs/ld-monetary.c:843 locale/programs/ld-numeric.c:318
+#, c-format
+msgid "%s: `-1' must be last entry in `%s' field"
+msgstr "%s: «-1» має бути останнім записом у полі «%s»"
+
+#: locale/programs/ld-monetary.c:865 locale/programs/ld-numeric.c:335
+#, c-format
+msgid "%s: values for field `%s' must be smaller than 127"
+msgstr "%s: значення у полі «%s» має бути меншим за 127"
+
+#: locale/programs/ld-monetary.c:908
+msgid "conversion rate value cannot be zero"
+msgstr "значення обмінного курсу має бути ненульовим"
+
+#: locale/programs/ld-name.c:129 locale/programs/ld-telephone.c:126
+#: locale/programs/ld-telephone.c:149
+#, c-format
+msgid "%s: invalid escape sequence in field `%s'"
+msgstr "%s: некоректна керівна послідовність у полі «%s»"
+
+#: locale/programs/ld-time.c:247
+#, c-format
+msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'"
+msgstr "%s: прапорець напрямку у рядку %Zd поля «era» не має значення «+» або «-»"
+
+#: locale/programs/ld-time.c:258
+#, c-format
+msgid "%s: direction flag in string %Zd in `era' field is not a single character"
+msgstr "%s: прапорець напрямку у рядку %Zd поля «era» не є одинарним символом"
+
+#: locale/programs/ld-time.c:271
+#, c-format
+msgid "%s: invalid number for offset in string %Zd in `era' field"
+msgstr "%s: некоректне числове значення відступу у рядку %Zd поля «era»"
+
+#: locale/programs/ld-time.c:279
+#, c-format
+msgid "%s: garbage at end of offset value in string %Zd in `era' field"
+msgstr "%s: зайві дані наприкінці значення зміщення у рядку %Zd поля «era»"
+
+#: locale/programs/ld-time.c:330
+#, c-format
+msgid "%s: invalid starting date in string %Zd in `era' field"
+msgstr "%s: некоректна початкова дата у рядку %Zd поля «era»"
+
+#: locale/programs/ld-time.c:339
+#, c-format
+msgid "%s: garbage at end of starting date in string %Zd in `era' field "
+msgstr "%s: зайві дані наприкінці початкової дати у рядку %Zd поля «era» "
+
+#: locale/programs/ld-time.c:358
+#, c-format
+msgid "%s: starting date is invalid in string %Zd in `era' field"
+msgstr "%s: у рядку %Zd початкова дата у полі «era» є некоректною"
+
+#: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435
+#, c-format
+msgid "%s: invalid stopping date in string %Zd in `era' field"
+msgstr "%s: некоректна кінцева дата у рядку %Zd поля «era»"
+
+#: locale/programs/ld-time.c:416
+#, c-format
+msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
+msgstr "%s: зайві дані наприкінці кінцевої дати у рядку %Zd поля «era»"
+
+#: locale/programs/ld-time.c:444
+#, c-format
+msgid "%s: missing era name in string %Zd in `era' field"
+msgstr "%s: у рядку %Zd поля «era» не вистачає назви ери"
+
+#: locale/programs/ld-time.c:456
+#, c-format
+msgid "%s: missing era format in string %Zd in `era' field"
+msgstr "%s: у рядку %Zd поля «era» не вистачає формату ери"
+
+#: locale/programs/ld-time.c:497
+#, c-format
+msgid "%s: third operand for value of field `%s' must not be larger than %d"
+msgstr "%s: третій операнд для значення поля «%s» має бути більшим за %d"
+
+#: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513
+#: locale/programs/ld-time.c:521
+#, c-format
+msgid "%s: values for field `%s' must not be larger than %d"
+msgstr "%s: значення у полі «%s» не повинні перевищувати %d"
+
+#: locale/programs/ld-time.c:1004
+#, c-format
+msgid "%s: too few values for field `%s'"
+msgstr "%s: замало значень у полі «%s»"
+
+#: locale/programs/ld-time.c:1049
+msgid "extra trailing semicolon"
+msgstr "зайва завершальна крапка з комою"
+
+#: locale/programs/ld-time.c:1052
+#, c-format
+msgid "%s: too many values for field `%s'"
+msgstr "%s: забагато значень у полі «%s»"
+
+#: locale/programs/linereader.c:130
+msgid "trailing garbage at end of line"
+msgstr "зайві символи наприкінці рядка"
+
+#: locale/programs/linereader.c:298
+msgid "garbage at end of number"
+msgstr "зайві символи наприкінці числа"
+
+#: locale/programs/linereader.c:410
+msgid "garbage at end of character code specification"
+msgstr "зайві символи наприкінці визначення коду символу"
+
+#: locale/programs/linereader.c:496
+msgid "unterminated symbolic name"
+msgstr "незавершена символічна назва"
+
+#: locale/programs/linereader.c:623
+msgid "illegal escape sequence at end of string"
+msgstr "некоректна керівна послідовність наприкінці рядка"
+
+#: locale/programs/linereader.c:627 locale/programs/linereader.c:855
+msgid "unterminated string"
+msgstr "незавершений рядок"
+
+#: locale/programs/linereader.c:669
+msgid "non-symbolic character value should not be used"
+msgstr "не слід використовувати несимвольне значення символу"
+
+#: locale/programs/linereader.c:816
+#, c-format
+msgid "symbol `%.*s' not in charmap"
+msgstr "символу «%.*s» немає у таблиці символів"
+
+#: locale/programs/linereader.c:837
+#, c-format
+msgid "symbol `%.*s' not in repertoire map"
+msgstr "символу «%.*s» немає у карті команд"
+
+#: locale/programs/locale-spec.c:130
+#, c-format
+msgid "unknown name \"%s\""
+msgstr "невідома назва «%s»"
+
+#: locale/programs/locale.c:72
+msgid "System information:"
+msgstr "Інформація щодо системи:"
+
+#: locale/programs/locale.c:74
+msgid "Write names of available locales"
+msgstr "Вивести назви доступних локалей"
+
+#: locale/programs/locale.c:76
+msgid "Write names of available charmaps"
+msgstr "Вивести назви доступних таблиць символів"
+
+#: locale/programs/locale.c:77
+msgid "Modify output format:"
+msgstr "Змінити формат виведених даних:"
+
+#: locale/programs/locale.c:78
+msgid "Write names of selected categories"
+msgstr "Записати назви вибраних категорій"
+
+#: locale/programs/locale.c:79
+msgid "Write names of selected keywords"
+msgstr "Записати назви вибраних ключових слів"
+
+#: locale/programs/locale.c:80
+msgid "Print more information"
+msgstr "Вивести додаткові дані"
+
+#: locale/programs/locale.c:85
+msgid "Get locale-specific information."
+msgstr "Отримати дані, специфічні для локалі"
+
+#: locale/programs/locale.c:88
+msgid ""
+"NAME\n"
+"[-a|-m]"
+msgstr ""
+"НАЗВА\n"
+"[-a|-m]"
+
+#: locale/programs/locale.c:192
+#, c-format
+msgid "Cannot set LC_CTYPE to default locale"
+msgstr "Не вдалося встановити для LC_CTYPE типове значення локалі"
+
+#: locale/programs/locale.c:194
+#, c-format
+msgid "Cannot set LC_MESSAGES to default locale"
+msgstr "Не вдалося встановити для LC_MESSAGES типове значення локалі"
+
+#: locale/programs/locale.c:207
+#, c-format
+msgid "Cannot set LC_COLLATE to default locale"
+msgstr "Не вдалося встановити для LC_COLLATE типове значення локалі"
+
+#: locale/programs/locale.c:223
+#, c-format
+msgid "Cannot set LC_ALL to default locale"
+msgstr "Не вдалося встановити для LC_ALL типове значення локалі"
+
+#: locale/programs/locale.c:519
+#, c-format
+msgid "while preparing output"
+msgstr "під час приготування до виведення даних"
+
+#: locale/programs/localedef.c:119
+msgid "Input Files:"
+msgstr "Файли вхідних даних:"
+
+#: locale/programs/localedef.c:121
+msgid "Symbolic character names defined in FILE"
+msgstr "Символічні назви символів визначено у файлі ФАЙЛ"
+
+#: locale/programs/localedef.c:123
+msgid "Source definitions are found in FILE"
+msgstr "Початкові визначення можна знайти у файлі ФАЙЛ"
+
+#: locale/programs/localedef.c:125
+msgid "FILE contains mapping from symbolic names to UCS4 values"
+msgstr "У файлі ФАЙЛ міститься прив’язка символьних назв до значень UCS4"
+
+#: locale/programs/localedef.c:129
+msgid "Create output even if warning messages were issued"
+msgstr "Вивести дані результату, навіть якщо було отримано попередження"
+
+#: locale/programs/localedef.c:130
+msgid "Create old-style tables"
+msgstr "Створювати таблиці у старому форматі"
+
+#: locale/programs/localedef.c:131
+msgid "Optional output file prefix"
+msgstr "Необов’язковий префікс адреси файла виведених даних"
+
+#: locale/programs/localedef.c:132
+msgid "Strictly conform to POSIX"
+msgstr "Строго дотримуватися стандарту POSIX"
+
+#: locale/programs/localedef.c:134
+msgid "Suppress warnings and information messages"
+msgstr "Придушити виведення попереджень та інформаційних повідомлень"
+
+#: locale/programs/localedef.c:135
+msgid "Print more messages"
+msgstr "Вивести додаткові повідомлення"
+
+#: locale/programs/localedef.c:136
+msgid "Archive control:"
+msgstr "Керування архівуванням:"
+
+#: locale/programs/localedef.c:138
+msgid "Don't add new data to archive"
+msgstr "Не додавати нові дані до архіву"
+
+#: locale/programs/localedef.c:140
+msgid "Add locales named by parameters to archive"
+msgstr "Додати локалі, визначені параметрами, до архіву"
+
+#: locale/programs/localedef.c:141
+msgid "Replace existing archive content"
+msgstr "Замінити вміст наявного архіву"
+
+#: locale/programs/localedef.c:143
+msgid "Remove locales named by parameters from archive"
+msgstr "Вилучити вказані як параметри локалі з архіву"
+
+#: locale/programs/localedef.c:144
+msgid "List content of archive"
+msgstr "Показати список вмісту архіву"
+
+#: locale/programs/localedef.c:146
+msgid "locale.alias file to consult when making archive"
+msgstr "файл locale.alias, дані у якому слід використовувати під час створення архіву"
+
+#: locale/programs/localedef.c:151
+msgid "Compile locale specification"
+msgstr "Зібрати специфікацію локалі"
+
+#: locale/programs/localedef.c:154
+msgid ""
+"NAME\n"
+"[--add-to-archive|--delete-from-archive] FILE...\n"
+"--list-archive [FILE]"
+msgstr ""
+"НАЗВА\n"
+"[--add-to-archive|--delete-from-archive] ФАЙЛ...\n"
+"--list-archive [ФАЙЛ]"
+
+#: locale/programs/localedef.c:229
+#, c-format
+msgid "cannot create directory for output files"
+msgstr "не вдалося створити каталог для виведення файлів"
+
+#: locale/programs/localedef.c:240
+#, c-format
+msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
+msgstr "КРИТИЧНА ПОМИЛКА: у системі не визначено «_POSIX2_LOCALEDEF»"
+
+#: locale/programs/localedef.c:254 locale/programs/localedef.c:270
+#: locale/programs/localedef.c:602 locale/programs/localedef.c:622
+#, c-format
+msgid "cannot open locale definition file `%s'"
+msgstr "не вдалося відкрити файл визначення локалі «%s»"
+
+#: locale/programs/localedef.c:282
+#, c-format
+msgid "cannot write output files to `%s'"
+msgstr "не вдалося вивести файли до «%s»"
+
+#: locale/programs/localedef.c:368
+#, 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 ""
+"Каталог системи для таблиць символів: %s\n"
+"\t\t таблиці наборів: %s\n"
+"\t\t шлях до локалі : %s\n"
+"%s"
+
+#: locale/programs/localedef.c:570
+#, c-format
+msgid "circular dependencies between locale definitions"
+msgstr "циклічні залежності у визначеннях локалей"
+
+#: locale/programs/localedef.c:576
+#, c-format
+msgid "cannot add already read locale `%s' a second time"
+msgstr "неможливо додати вже прочитану локаль «%s» удруге"
+
+#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:367
+#, c-format
+msgid "cannot create temporary file: %s"
+msgstr "не вдалося створити тимчасовий файл: %s"
+
+#: locale/programs/locarchive.c:155 locale/programs/locarchive.c:413
+#, c-format
+msgid "cannot initialize archive file"
+msgstr "не вдалося ініціалізувати файл архіву"
+
+#: locale/programs/locarchive.c:162 locale/programs/locarchive.c:420
+#, c-format
+msgid "cannot resize archive file"
+msgstr "зміна розмірів файла архіву неможлива"
+
+#: locale/programs/locarchive.c:177 locale/programs/locarchive.c:435
+#: locale/programs/locarchive.c:645
+#, c-format
+msgid "cannot map archive header"
+msgstr "не вдалося прив’язати заголовок архіву"
+
+#: locale/programs/locarchive.c:199
+#, c-format
+msgid "failed to create new locale archive"
+msgstr "не вдалося створити новий архів локалі"
+
+#: locale/programs/locarchive.c:211
+#, c-format
+msgid "cannot change mode of new locale archive"
+msgstr "не вдалося змінити режим доступу до нового архіву локалі"
+
+#: locale/programs/locarchive.c:311
+#, c-format
+msgid "cannot read data from locale archive"
+msgstr "не вдалося прочитати дані з архіву локалі"
+
+#: locale/programs/locarchive.c:342
+#, c-format
+msgid "cannot map locale archive file"
+msgstr "не вдалося прив’язати файл архіву локалі"
+
+#: locale/programs/locarchive.c:443
+#, c-format
+msgid "cannot lock new archive"
+msgstr "не вдалося заблокувати новий архів"
+
+#: locale/programs/locarchive.c:509
+#, c-format
+msgid "cannot extend locale archive file"
+msgstr "не вдалося розширити файл архіву локалі"
+
+#: locale/programs/locarchive.c:518
+#, c-format
+msgid "cannot change mode of resized locale archive"
+msgstr "не вдалося змінити режим доступу до архіву локалі зі зміненим розміром"
+
+#: locale/programs/locarchive.c:526
+#, c-format
+msgid "cannot rename new archive"
+msgstr "не вдалося перейменувати новий архів"
+
+#: locale/programs/locarchive.c:579
+#, c-format
+msgid "cannot open locale archive \"%s\""
+msgstr "не вдалося відкрити архів локалі «%s»"
+
+#: locale/programs/locarchive.c:584
+#, c-format
+msgid "cannot stat locale archive \"%s\""
+msgstr "не вдалося отримати статистичні дані щодо архіву локалі «%s»"
+
+#: locale/programs/locarchive.c:603
+#, c-format
+msgid "cannot lock locale archive \"%s\""
+msgstr "не вдалося заблокувати архів локалі «%s»"
+
+#: locale/programs/locarchive.c:626
+#, c-format
+msgid "cannot read archive header"
+msgstr "не вдалося прочитати заголовок архіву"
+
+#: locale/programs/locarchive.c:697
+#, c-format
+msgid "locale '%s' already exists"
+msgstr "локаль «%s» вже існує"
+
+#: locale/programs/locarchive.c:959 locale/programs/locarchive.c:974
+#: locale/programs/locarchive.c:986 locale/programs/locarchive.c:998
+#: locale/programs/locfile.c:343
+#, c-format
+msgid "cannot add to locale archive"
+msgstr "не вдалося додати до архіву локалі"
+
+#: locale/programs/locarchive.c:1156
+#, c-format
+msgid "locale alias file `%s' not found"
+msgstr "альтернативний файл локалі «%s» не знайдено"
+
+#: locale/programs/locarchive.c:1306
+#, c-format
+msgid "Adding %s\n"
+msgstr "Додаємо %s\n"
+
+#: locale/programs/locarchive.c:1312
+#, c-format
+msgid "stat of \"%s\" failed: %s: ignored"
+msgstr "помилка під час спроби отримати статистичні дані щодо «%s»: %s: проігноровано"
+
+#: locale/programs/locarchive.c:1318
+#, c-format
+msgid "\"%s\" is no directory; ignored"
+msgstr "«%s» не є каталогом; проігноровано"
+
+#: locale/programs/locarchive.c:1325
+#, c-format
+msgid "cannot open directory \"%s\": %s: ignored"
+msgstr "не вдалося відкрити каталог «%s»: %s: проігноровано"
+
+#: locale/programs/locarchive.c:1397
+#, c-format
+msgid "incomplete set of locale files in \"%s\""
+msgstr "набір файлів локалі у «%s» є неповним"
+
+#: locale/programs/locarchive.c:1461
+#, c-format
+msgid "cannot read all files in \"%s\": ignored"
+msgstr "не вдалося прочитати усі файли у «%s»: проігноровано"
+
+#: locale/programs/locarchive.c:1531
+#, c-format
+msgid "locale \"%s\" not in archive"
+msgstr "локаль «%s» поза архівом"
+
+#: locale/programs/locfile.c:131
+#, c-format
+msgid "argument to `%s' must be a single character"
+msgstr "аргументом до «%s» має бути один символ"
+
+#: locale/programs/locfile.c:251
+msgid "syntax error: not inside a locale definition section"
+msgstr "синтаксична помилка: вихід за межі розділу визначення локалі"
+
+#: locale/programs/locfile.c:625
+#, c-format
+msgid "cannot open output file `%s' for category `%s'"
+msgstr "не вдалося відкрити файл виведених даних «%s» для категорії «%s»"
+
+#: locale/programs/locfile.c:649
+#, c-format
+msgid "failure while writing data for category `%s'"
+msgstr "помилка під час дії з записування для категорії «%s»"
+
+#: locale/programs/locfile.c:745
+#, c-format
+msgid "cannot create output file `%s' for category `%s'"
+msgstr "не вдалося створити файл виведених даних «%s» для категорії «%s»"
+
+#: locale/programs/locfile.c:781
+msgid "expecting string argument for `copy'"
+msgstr "мало бути вказано аргумент-рядок для «copy»"
+
+#: locale/programs/locfile.c:785
+msgid "locale name should consist only of portable characters"
+msgstr "назва локалі має складатися лише з придатних до перенесення символів"
+
+#: locale/programs/locfile.c:804
+msgid "no other keyword shall be specified when `copy' is used"
+msgstr "не можна вказувати інші ключові слова, якщо вже вказано «copy»"
+
+#: locale/programs/locfile.c:818
+#, c-format
+msgid "`%1$s' definition does not end with `END %1$s'"
+msgstr "визначення «%1$s» не завершується на «END %1$s»"
+
+#: locale/programs/repertoire.c:229 locale/programs/repertoire.c:270
+#: locale/programs/repertoire.c:295
+#, c-format
+msgid "syntax error in repertoire map definition: %s"
+msgstr "синтаксична помилка у визначенні таблиці наборів: %s"
+
+#: locale/programs/repertoire.c:271
+msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
+msgstr "не вказано значення <Uxxxx> або <Uxxxxxxxx>"
+
+#: locale/programs/repertoire.c:331
+#, c-format
+msgid "cannot save new repertoire map"
+msgstr "не вдалося зберегти нову таблицю наборів"
+
+#: locale/programs/repertoire.c:342
+#, c-format
+msgid "repertoire map file `%s' not found"
+msgstr "не знайдено файл таблиці наборів «%s»"
+
+#: login/programs/pt_chown.c:78
+#, c-format
+msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n"
+msgstr "Встановити власника, групу і права доступу для підлеглого псевдотермінала, що відповідає основному псевдотерміналу, переданому за допомогою файлового дескриптора «%d». Це допоміжна програма для функції «grantpt». Її не призначено для безпосереднього запуску з командного рядка.\n"
+
+#: login/programs/pt_chown.c:92
+#, c-format
+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 ""
+"Власником визначено поточного користувача, групою — «%s», а права доступу визначено як «%o».\n"
+"\n"
+"%s"
+
+#: login/programs/pt_chown.c:198
+#, c-format
+msgid "too many arguments"
+msgstr "забагато аргументів"
+
+#: login/programs/pt_chown.c:206
+#, c-format
+msgid "needs to be installed setuid `root'"
+msgstr "слід встановити з setuid «root»"
+
+#: malloc/mcheck.c:347
+msgid "memory is consistent, library is buggy\n"
+msgstr "пам’ять у належному стані, у бібліотеці є помилки\n"
+
+#: malloc/mcheck.c:350
+msgid "memory clobbered before allocated block\n"
+msgstr "область перед отриманим блоком пам’яті затерто\n"
+
+#: malloc/mcheck.c:353
+msgid "memory clobbered past end of allocated block\n"
+msgstr "область за отриманим блоком пам’яті затерто\n"
+
+#: malloc/mcheck.c:356
+msgid "block freed twice\n"
+msgstr "блок звільнено двічі\n"
+
+#: malloc/mcheck.c:359
+msgid "bogus mcheck_status, library is buggy\n"
+msgstr "фіктивний mcheck_status, помилка у бібліотеці\n"
+
+#: malloc/memusage.sh:32
+msgid "%s: option '%s' requires an argument\\n"
+msgstr "%s: до параметра «%s» слід додати аргумент\\n"
+
+#: 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 ""
+"Користування: memusage [ПАРАМЕТР]... ПРОГРАМА [ПАРАМЕТР ПРОГРАМИ]...\n"
+"Профілювати використання пам’яті програмою ПРОГРАМА.\n"
+"\n"
+" -n,--progname=НАЗВА назва файла програми для профілювання\n"
+" -p,--png=ФАЙЛ створити графік у форматі PNG і зберегти його до файла ФАЙЛ\n"
+" -d,--data=ФАЙЛ створити файл з двійковими даними з назвою ФАЙЛ\n"
+" -u,--unbuffered не буферизувати виведені дані\n"
+" -b,--buffer=РОЗМІР збирати пакунки з РОЗМІР записів до виведення даних\n"
+" --no-timer не збирати додаткову інформацію за допомогою таймера\n"
+" -m,--mmap трасувати mmap та інші пов’язані виклики\n"
+"\n"
+" -?,--help вивести ці довідкові дані і завершити роботу\n"
+" --usage вивести коротке повідомлення щодо використання\n"
+" -V,--version вивести дані щодо версії і завершити роботу\n"
+"\n"
+" Вказані нижче параметри використовуються лише для керування виведенням графічних даних:\n"
+" -t,--time-based створити лінійний за часом графік\n"
+" -T,--total показати на графіку загальне використання пам’яті\n"
+" --title=РЯДОК використати РЯДОК як заголовок графіка\n"
+" -x,--x-size=РОЗМІР визначити ширину графіка РОЗМІР\n"
+" -y,--y-size=РОЗМІР визначити висоту графіка РОЗМІР\n"
+"\n"
+"Обов’язкові аргументи до повних версій параметрів є обов’язковими для відповідних\n"
+"коротких варіантів.\n"
+"\n"
+
+#: 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 ""
+"Синтаксис: memusage [--data=ФАЙЛ] [--progname=НАЗВА] [--png=ФАЙЛ] [--unbuffered]\n"
+"\t [--buffer=РОЗМІР] [--no-timer] [--time-based] [--total]\n"
+"\t [--title=РЯДОК] [--x-size=РОЗМІР] [--y-size=РОЗМІР]\n"
+"\t ПРОГРАМА [ПАРАМЕТР ПРОГРАМИ]..."
+
+#: malloc/memusage.sh:191
+msgid "memusage: option \\`${1##*=}' is ambiguous"
+msgstr "memusage: параметр \\`${1##*=}' є неоднозначним"
+
+#: malloc/memusage.sh:200
+msgid "memusage: unrecognized option \\`$1'"
+msgstr "memusage: нерозпізнаний параметр \\`$1'"
+
+#: malloc/memusage.sh:213
+msgid "No program name given"
+msgstr "Не вказано назви програми"
+
+#: malloc/memusagestat.c:56
+msgid "Name output file"
+msgstr "Назва файла результатів"
+
+#: malloc/memusagestat.c:57
+msgid "STRING"
+msgstr "РЯДОК"
+
+#: malloc/memusagestat.c:57
+msgid "Title string used in output graphic"
+msgstr "Рядок заголовка для виведеного графіка"
+
+#: malloc/memusagestat.c:58
+msgid "Generate output linear to time (default is linear to number of function calls)"
+msgstr "Вивести дані лінійно за часом (типовим є виведення лінійно за кількістю викликів функцій)"
+
+#: malloc/memusagestat.c:62
+msgid "Also draw graph for total memory consumption"
+msgstr "Намалювати також графік для даних щодо загального споживання пам’яті"
+
+#: malloc/memusagestat.c:63
+msgid "VALUE"
+msgstr "ЗНАЧЕННЯ"
+
+#: malloc/memusagestat.c:64
+msgid "Make output graphic VALUE pixels wide"
+msgstr "Зробити ширину виведеного графіка рівною вказаному значенню у пікселях"
+
+#: malloc/memusagestat.c:65
+msgid "Make output graphic VALUE pixels high"
+msgstr "Зробити висоту виведеного графіка рівною вказаному значенню у пікселях"
+
+#: malloc/memusagestat.c:70
+msgid "Generate graphic from memory profiling data"
+msgstr "Створити графік на основі даних щодо профілювання пам’яті"
+
+#: malloc/memusagestat.c:73
+msgid "DATAFILE [OUTFILE]"
+msgstr "ФАЙЛ_ДАНИХ [ФАЙЛ_РЕЗУЛЬАТІВ]"
+
+#: misc/error.c:117
+msgid "Unknown system error"
+msgstr "Невідома системна помилка"
+
+#: nis/nis_callback.c:188
+msgid "unable to free arguments"
+msgstr "не вдалося звільнити аргументи"
+
+#: nis/nis_error.h:1 nis/ypclnt.c:831 nis/ypclnt.c:919 posix/regcomp.c:133
+#: sysdeps/gnu/errlist.c:20
+msgid "Success"
+msgstr "Успіх"
+
+#: nis/nis_error.h:2
+msgid "Probable success"
+msgstr "Ймовірний успіх"
+
+#: nis/nis_error.h:3
+msgid "Not found"
+msgstr "Не знайдено"
+
+#: nis/nis_error.h:4
+msgid "Probably not found"
+msgstr "Ймовірно, не знайдено"
+
+#: nis/nis_error.h:5
+msgid "Cache expired"
+msgstr "Строк придатності кешу вичерпано"
+
+#: nis/nis_error.h:6
+msgid "NIS+ servers unreachable"
+msgstr "Сервери NIS+ недоступні"
+
+#: nis/nis_error.h:7
+msgid "Unknown object"
+msgstr "Невідомий об’єкт"
+
+#: nis/nis_error.h:8
+msgid "Server busy, try again"
+msgstr "Сервер зайнято, повторіть спробу"
+
+#: nis/nis_error.h:9
+msgid "Generic system error"
+msgstr "Загальна помилка системи"
+
+#: nis/nis_error.h:10
+msgid "First/next chain broken"
+msgstr "Розірвано ланцюжок перший-наступний"
+
+#. TRANS Permission denied; the file permissions do not allow the attempted operation.
+#: nis/nis_error.h:11 nis/ypclnt.c:876 sysdeps/gnu/errlist.c:157
+msgid "Permission denied"
+msgstr "Відмовлено у доступі"
+
+#: nis/nis_error.h:12
+msgid "Not owner"
+msgstr "Не є власником"
+
+#: nis/nis_error.h:13
+msgid "Name not served by this server"
+msgstr "Назва на обслуговується цим сервером"
+
+#: nis/nis_error.h:14
+msgid "Server out of memory"
+msgstr "Вичерпано пам’ять на сервері"
+
+#: nis/nis_error.h:15
+msgid "Object with same name exists"
+msgstr "Вже існує об’єкт з тією самою назвою"
+
+#: nis/nis_error.h:16
+msgid "Not master server for this domain"
+msgstr "Не є основним сервером для цього домену"
+
+#: nis/nis_error.h:17
+msgid "Invalid object for operation"
+msgstr "Некоректний об’єкт для дії"
+
+#: nis/nis_error.h:18
+msgid "Malformed name, or illegal name"
+msgstr "Помилкове форматування назви або некоректна назва"
+
+#: nis/nis_error.h:19
+msgid "Unable to create callback"
+msgstr "Не вдалося створити зворотний виклик"
+
+#: nis/nis_error.h:20
+msgid "Results sent to callback proc"
+msgstr "Результати надіслано до процедури зворотного виклику"
+
+#: nis/nis_error.h:21
+msgid "Not found, no such name"
+msgstr "Не знайдено, немає такої назви"
+
+#: nis/nis_error.h:22
+msgid "Name/entry isn't unique"
+msgstr "Назва або запис не є унікальними"
+
+#: nis/nis_error.h:23
+msgid "Modification failed"
+msgstr "Спроба внесення змін зазнала невдачі"
+
+#: nis/nis_error.h:24
+msgid "Database for table does not exist"
+msgstr "Бази даних для таблиці не існує"
+
+#: nis/nis_error.h:25
+msgid "Entry/table type mismatch"
+msgstr "Невідповідність типів записів або таблиць"
+
+#: nis/nis_error.h:26
+msgid "Link points to illegal name"
+msgstr "Посилання вказує на некоректну назву"
+
+#: nis/nis_error.h:27
+msgid "Partial success"
+msgstr "Частковий успіх"
+
+#: nis/nis_error.h:28
+msgid "Too many attributes"
+msgstr "Занадто багато атрибутів"
+
+#: nis/nis_error.h:29
+msgid "Error in RPC subsystem"
+msgstr "Помилка у підсистемі RPC"
+
+#: nis/nis_error.h:30
+msgid "Missing or malformed attribute"
+msgstr "Не вказано атрибут або форматування атрибута є помилковим"
+
+#: nis/nis_error.h:31
+msgid "Named object is not searchable"
+msgstr "Іменований об’єкт є непридатним для пошуку"
+
+#: nis/nis_error.h:32
+msgid "Error while talking to callback proc"
+msgstr "Помилка під час обміну даними з процедурою зворотного виклику"
+
+#: nis/nis_error.h:33
+msgid "Non NIS+ namespace encountered"
+msgstr "Виявлено простір назв, що не належить NIS+"
+
+#: nis/nis_error.h:34
+msgid "Illegal object type for operation"
+msgstr "Некоректний тип об’єкта для дії"
+
+#: nis/nis_error.h:35
+msgid "Passed object is not the same object on server"
+msgstr "Переданий об’єкт не є тим самим об’єктом на сервері"
+
+#: nis/nis_error.h:36
+msgid "Modify operation failed"
+msgstr "Спроба виконати дію з внесення змін зазнала невдачі"
+
+#: nis/nis_error.h:37
+msgid "Query illegal for named table"
+msgstr "Неприпустимий запит для іменованої таблиці"
+
+#: nis/nis_error.h:38
+msgid "Attempt to remove a non-empty table"
+msgstr "Спроба вилучення непорожньої таблиці"
+
+#: nis/nis_error.h:39
+msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?"
+msgstr "Помилка у доступі до файла холодного запуску NIS+. Чи встановлено NIS+?"
+
+#: nis/nis_error.h:40
+msgid "Full resync required for directory"
+msgstr "Потрібна повторна синхронізація каталогу"
+
+#: nis/nis_error.h:41
+msgid "NIS+ operation failed"
+msgstr "Помилка під час виконання дії NIS+"
+
+#: nis/nis_error.h:42
+msgid "NIS+ service is unavailable or not installed"
+msgstr "Служба NIS+ недоступна або її не встановлено у системі"
+
+#: nis/nis_error.h:43
+msgid "Yes, 42 is the meaning of life"
+msgstr "Так, 42 і є сенсом життя"
+
+#: nis/nis_error.h:44
+msgid "Unable to authenticate NIS+ server"
+msgstr "Не вдалося пройти розпізнавання на сервері NIS+"
+
+#: nis/nis_error.h:45
+msgid "Unable to authenticate NIS+ client"
+msgstr "Не вдалося пройти розпізнавання на клієнті NIS+"
+
+#: nis/nis_error.h:46
+msgid "No file space on server"
+msgstr "На сервері немає місця для файлів"
+
+#: nis/nis_error.h:47
+msgid "Unable to create process on server"
+msgstr "Не вдалося створити процес на сервері"
+
+#: nis/nis_error.h:48
+msgid "Master server busy, full dump rescheduled."
+msgstr "Основний сервер зайнято, виконано повторне планування створення повного дампу."
+
+#: nis/nis_local_names.c:121
+#, c-format
+msgid "LOCAL entry for UID %d in directory %s not unique\n"
+msgstr "Запис LOCAL для UID %d у каталозі %s не є унікальним\n"
+
+#: nis/nis_print.c:51
+msgid "UNKNOWN"
+msgstr "НЕВІДОМО"
+
+#: nis/nis_print.c:109
+msgid "BOGUS OBJECT\n"
+msgstr "ФІКТИВНИЙ ОБ’ЄКТ\n"
+
+#: nis/nis_print.c:112
+msgid "NO OBJECT\n"
+msgstr "НЕМАЄ ОБ'ЄКТА\n"
+
+#: nis/nis_print.c:115
+msgid "DIRECTORY\n"
+msgstr "КАТАЛОГ\n"
+
+#: nis/nis_print.c:118
+msgid "GROUP\n"
+msgstr "ГРУПА\n"
+
+#: nis/nis_print.c:121
+msgid "TABLE\n"
+msgstr "ТАБЛИЦЯ\n"
+
+#: nis/nis_print.c:124
+msgid "ENTRY\n"
+msgstr "ЗАПИС\n"
+
+#: nis/nis_print.c:127
+msgid "LINK\n"
+msgstr "ПОСИЛАННЯ\n"
+
+#: nis/nis_print.c:130
+msgid "PRIVATE\n"
+msgstr "ПРИВАТНИЙ\n"
+
+#: nis/nis_print.c:133
+msgid "(Unknown object)\n"
+msgstr "(Невідомий об’єкт)\n"
+
+#: nis/nis_print.c:167
+#, c-format
+msgid "Name : `%s'\n"
+msgstr "Назва: «%s»\n"
+
+#: nis/nis_print.c:168
+#, c-format
+msgid "Type : %s\n"
+msgstr "Тип: %s\n"
+
+#: nis/nis_print.c:173
+msgid "Master Server :\n"
+msgstr "Основний сервер:\n"
+
+#: nis/nis_print.c:175
+msgid "Replicate :\n"
+msgstr "Репліка:\n"
+
+#: nis/nis_print.c:176
+#, c-format
+msgid "\tName : %s\n"
+msgstr "\tНазва : %s\n"
+
+#: nis/nis_print.c:177
+msgid "\tPublic Key : "
+msgstr "\tВідкритий ключ: "
+
+#: nis/nis_print.c:181
+msgid "None.\n"
+msgstr "Немає.\n"
+
+#: nis/nis_print.c:184
+#, c-format
+msgid "Diffie-Hellmann (%d bits)\n"
+msgstr "Діффі-Геллман (%d біт)\n"
+
+#: nis/nis_print.c:189
+#, c-format
+msgid "RSA (%d bits)\n"
+msgstr "RSA (%d-бітовий)\n"
+
+#: nis/nis_print.c:192
+msgid "Kerberos.\n"
+msgstr "Kerberos.\n"
+
+#: nis/nis_print.c:195
+#, c-format
+msgid "Unknown (type = %d, bits = %d)\n"
+msgstr "Невідомо (тип = %d, к-ть бітів = %d)\n"
+
+#: nis/nis_print.c:206
+#, c-format
+msgid "\tUniversal addresses (%u)\n"
+msgstr "\tУніверсальні адреси (%u)\n"
+
+#: nis/nis_print.c:228
+msgid "Time to live : "
+msgstr "Строк дії : "
+
+#: nis/nis_print.c:230
+msgid "Default Access rights :\n"
+msgstr "Типові права доступу :\n"
+
+#: nis/nis_print.c:239
+#, c-format
+msgid "\tType : %s\n"
+msgstr "\tТип : %s\n"
+
+#: nis/nis_print.c:240
+msgid "\tAccess rights: "
+msgstr "\tПрава доступу: "
+
+#: nis/nis_print.c:254
+msgid "Group Flags :"
+msgstr "Прапорці групи:"
+
+#: nis/nis_print.c:257
+msgid ""
+"\n"
+"Group Members :\n"
+msgstr ""
+"\n"
+"Учасники групи:\n"
+
+#: nis/nis_print.c:269
+#, c-format
+msgid "Table Type : %s\n"
+msgstr "Тип таблиці : %s\n"
+
+#: nis/nis_print.c:270
+#, c-format
+msgid "Number of Columns : %d\n"
+msgstr "Кількість стовпчиків: %d\n"
+
+#: nis/nis_print.c:271
+#, c-format
+msgid "Character Separator : %c\n"
+msgstr "Роздільник символів : %c\n"
+
+#: nis/nis_print.c:272
+#, c-format
+msgid "Search Path : %s\n"
+msgstr "Шлях для пошуку : %s\n"
+
+#: nis/nis_print.c:273
+msgid "Columns :\n"
+msgstr "Стовпчики :\n"
+
+#: nis/nis_print.c:276
+#, c-format
+msgid "\t[%d]\tName : %s\n"
+msgstr "\t[%d]\tНазва : %s\n"
+
+#: nis/nis_print.c:278
+msgid "\t\tAttributes : "
+msgstr "\t\tАтрибути : "
+
+#: nis/nis_print.c:280
+msgid "\t\tAccess Rights : "
+msgstr "\t\tПрава доступу: "
+
+#: nis/nis_print.c:290
+msgid "Linked Object Type : "
+msgstr "Тип пов’язаного об’єкта: "
+
+#: nis/nis_print.c:292
+#, c-format
+msgid "Linked to : %s\n"
+msgstr "Пов’язано з: %s\n"
+
+#: nis/nis_print.c:302
+#, c-format
+msgid "\tEntry data of type %s\n"
+msgstr "\tДані запису типу %s\n"
+
+#: nis/nis_print.c:305
+#, c-format
+msgid "\t[%u] - [%u bytes] "
+msgstr "\t[%u] - [%u байт] "
+
+#: nis/nis_print.c:308
+msgid "Encrypted data\n"
+msgstr "Зашифровані дані\n"
+
+#: nis/nis_print.c:310
+msgid "Binary data\n"
+msgstr "Двійкові дані\n"
+
+#: nis/nis_print.c:326
+#, c-format
+msgid "Object Name : %s\n"
+msgstr "Назва об’єкта : %s\n"
+
+#: nis/nis_print.c:327
+#, c-format
+msgid "Directory : %s\n"
+msgstr "Каталог : %s\n"
+
+#: nis/nis_print.c:328
+#, c-format
+msgid "Owner : %s\n"
+msgstr "Власник : %s\n"
+
+#: nis/nis_print.c:329
+#, c-format
+msgid "Group : %s\n"
+msgstr "Група : %s\n"
+
+#: nis/nis_print.c:330
+msgid "Access Rights : "
+msgstr "Права доступу: "
+
+#: nis/nis_print.c:332
+#, c-format
+msgid ""
+"\n"
+"Time to Live : "
+msgstr ""
+"\n"
+"Строк дії : "
+
+#: nis/nis_print.c:335
+#, c-format
+msgid "Creation Time : %s"
+msgstr "Час створення : %s"
+
+#: nis/nis_print.c:337
+#, c-format
+msgid "Mod. Time : %s"
+msgstr "Час модифікації: %s"
+
+#: nis/nis_print.c:338
+msgid "Object Type : "
+msgstr "Тип об’єкта : "
+
+#: nis/nis_print.c:358
+#, c-format
+msgid " Data Length = %u\n"
+msgstr " Довжина даних = %u\n"
+
+#: nis/nis_print.c:372
+#, c-format
+msgid "Status : %s\n"
+msgstr "Стан : %s\n"
+
+#: nis/nis_print.c:373
+#, c-format
+msgid "Number of objects : %u\n"
+msgstr "Кількість об’єктів: %u\n"
+
+#: nis/nis_print.c:377
+#, c-format
+msgid "Object #%d:\n"
+msgstr "Об’єкт %d:\n"
+
+#: nis/nis_print_group_entry.c:116
+#, c-format
+msgid "Group entry for \"%s.%s\" group:\n"
+msgstr "Запис групи для групи «%s.%s»:\n"
+
+#: nis/nis_print_group_entry.c:124
+msgid " Explicit members:\n"
+msgstr " Явні учасники:\n"
+
+#: nis/nis_print_group_entry.c:129
+msgid " No explicit members\n"
+msgstr " Немає явних учасників\n"
+
+#: nis/nis_print_group_entry.c:132
+msgid " Implicit members:\n"
+msgstr " Неявні учасники:\n"
+
+#: nis/nis_print_group_entry.c:137
+msgid " No implicit members\n"
+msgstr " Немає неявних учасників\n"
+
+#: nis/nis_print_group_entry.c:140
+msgid " Recursive members:\n"
+msgstr " Рекурсивні учасники:\n"
+
+#: nis/nis_print_group_entry.c:145
+msgid " No recursive members\n"
+msgstr " Немає рекурсивних учасників\n"
+
+#: nis/nis_print_group_entry.c:148
+msgid " Explicit nonmembers:\n"
+msgstr " Явні неучасники:\n"
+
+#: nis/nis_print_group_entry.c:153
+msgid " No explicit nonmembers\n"
+msgstr " Немає неявних неучасників\n"
+
+#: nis/nis_print_group_entry.c:156
+msgid " Implicit nonmembers:\n"
+msgstr " Неявні неучасники:\n"
+
+#: nis/nis_print_group_entry.c:161
+msgid " No implicit nonmembers\n"
+msgstr " Немає неявних неучасників\n"
+
+#: nis/nis_print_group_entry.c:164
+msgid " Recursive nonmembers:\n"
+msgstr " Рекурсивні неучасники:\n"
+
+#: nis/nis_print_group_entry.c:169
+msgid " No recursive nonmembers\n"
+msgstr " Немає рекурсивних неучасників\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 "Запис DES для netname %s не є унікальним\n"
+
+#: nis/nss_nisplus/nisplus-publickey.c:219
+#, c-format
+msgid "netname2user: missing group id list in `%s'"
+msgstr "netname2user: у «%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+): %s\n"
+
+#: nis/nss_nisplus/nisplus-publickey.c:320
+#, c-format
+msgid "netname2user: DES entry for %s in directory %s not unique"
+msgstr "netname2user: запис DES для %s у каталозі %s не є унікальним"
+
+#: nis/nss_nisplus/nisplus-publickey.c:338
+#, c-format
+msgid "netname2user: principal name `%s' too long"
+msgstr "netname2user: назва адміністратора доступу (принципала) «%s» є надто довгою"
+
+#: nis/nss_nisplus/nisplus-publickey.c:394
+#, c-format
+msgid "netname2user: LOCAL entry for %s in directory %s not unique"
+msgstr "netname2user: запис LOCAL для %s у каталозі %s не є унікальним"
+
+#: nis/nss_nisplus/nisplus-publickey.c:401
+msgid "netname2user: should not have uid 0"
+msgstr "netname2user: не можна використовувати UID 0"
+
+#: nis/ypclnt.c:834
+msgid "Request arguments bad"
+msgstr "Помилка у аргументах запиту"
+
+#: nis/ypclnt.c:837
+msgid "RPC failure on NIS operation"
+msgstr "Помилка RPC під час виконання дії NIS"
+
+#: nis/ypclnt.c:840
+msgid "Can't bind to server which serves this domain"
+msgstr "Не вдалося прив’язатися до сервера, який обслуговує цей домен"
+
+#: nis/ypclnt.c:843
+msgid "No such map in server's domain"
+msgstr "У домені сервера немає такої прив’язки"
+
+#: nis/ypclnt.c:846
+msgid "No such key in map"
+msgstr "У прив’язці немає такого ключа"
+
+#: nis/ypclnt.c:849
+msgid "Internal NIS error"
+msgstr "Внутрішня помилка NIS"
+
+#: nis/ypclnt.c:852
+msgid "Local resource allocation failure"
+msgstr "Помилка розміщення локального ресурсу"
+
+#: nis/ypclnt.c:855
+msgid "No more records in map database"
+msgstr "У базі даних прив’язок немає більше записів"
+
+#: nis/ypclnt.c:858
+msgid "Can't communicate with portmapper"
+msgstr "Не вдалося обмінятися даними з portmapper"
+
+#: nis/ypclnt.c:861
+msgid "Can't communicate with ypbind"
+msgstr "Не вдалося обмінятися даними з ypbind"
+
+#: nis/ypclnt.c:864
+msgid "Can't communicate with ypserv"
+msgstr "Не вдалося обмінятися даними з ypserv"
+
+#: nis/ypclnt.c:867
+msgid "Local domain name not set"
+msgstr "Не встановлено назви локального домену"
+
+#: nis/ypclnt.c:870
+msgid "NIS map database is bad"
+msgstr "Помилкова база даних прив’язок NIS"
+
+#: nis/ypclnt.c:873
+msgid "NIS client/server version mismatch - can't supply service"
+msgstr "Не збігаються між собою версії клієнта і сервера NIS: служба не зможе працювати"
+
+#: nis/ypclnt.c:879
+msgid "Database is busy"
+msgstr "Базу даних зайнято виконанням завдання"
+
+#: nis/ypclnt.c:882
+msgid "Unknown NIS error code"
+msgstr "Невідомий код помилки NIS"
+
+#: nis/ypclnt.c:922
+msgid "Internal ypbind error"
+msgstr "Внутрішня помилка ypbind"
+
+#: nis/ypclnt.c:925
+msgid "Domain not bound"
+msgstr "Домен не пов’язано"
+
+#: nis/ypclnt.c:928
+msgid "System resource allocation failure"
+msgstr "Помилка під час розміщення системного ресурсу"
+
+#: nis/ypclnt.c:931
+msgid "Unknown ypbind error"
+msgstr "Невідома помилка ypbind"
+
+#: nis/ypclnt.c:972
+msgid "yp_update: cannot convert host to netname\n"
+msgstr "yp_update: не вдалося перетворити адресу вузла на назву у мережі\n"
+
+#: nis/ypclnt.c:990
+msgid "yp_update: cannot get server address\n"
+msgstr "yp_update: не вдалося отримати адресу сервера\n"
+
+#: nscd/aicache.c:82 nscd/hstcache.c:494
+#, c-format
+msgid "Haven't found \"%s\" in hosts cache!"
+msgstr "Не вдалося знайти «%s» у кеші вузлів!"
+
+#: nscd/aicache.c:84 nscd/hstcache.c:496
+#, c-format
+msgid "Reloading \"%s\" in hosts cache!"
+msgstr "Перезавантажуємо «%s» у кеші вузлів!"
+
+#: nscd/cache.c:151
+#, c-format
+msgid "add new entry \"%s\" of type %s for %s to cache%s"
+msgstr "додати новий запис «%s» типу %s для %s до кешу%s"
+
+#: nscd/cache.c:153
+msgid " (first)"
+msgstr " (перший)"
+
+#: nscd/cache.c:285 nscd/connections.c:1019
+#, c-format
+msgid "cannot stat() file `%s': %s"
+msgstr "не вдалося виконати stat() для файла «%s»: %s"
+
+#: nscd/cache.c:331
+#, c-format
+msgid "pruning %s cache; time %ld"
+msgstr "спорожнюємо кеш %s; час — %ld"
+
+#: nscd/cache.c:360
+#, c-format
+msgid "considering %s entry \"%s\", timeout %<PRIu64>"
+msgstr "обробляємо запис %s «%s», час очікування %<PRIu64>"
+
+#: nscd/connections.c:571
+#, c-format
+msgid "invalid persistent database file \"%s\": %s"
+msgstr "некоректний файл постійної бази даних «%s»: %s"
+
+#: nscd/connections.c:579
+msgid "uninitialized header"
+msgstr "неініціалізований заголовок"
+
+#: nscd/connections.c:584
+msgid "header size does not match"
+msgstr "розмір заголовка є невідповідним"
+
+#: nscd/connections.c:594
+msgid "file size does not match"
+msgstr "розмір файла є невідповідним"
+
+#: nscd/connections.c:611
+msgid "verification failed"
+msgstr "спроба перевірки зазнала невдачі"
+
+#: nscd/connections.c:625
+#, c-format
+msgid "suggested size of table for database %s larger than the persistent database's table"
+msgstr "пропонований розмір таблиці для бази даних %s є більшим за таблицю сталої бази даних"
+
+#: nscd/connections.c:636 nscd/connections.c:721
+#, c-format
+msgid "cannot create read-only descriptor for \"%s\"; no mmap"
+msgstr "не вдалося створити придатний лише для читання дескриптор для «%s»; немає mmap"
+
+#: nscd/connections.c:652
+#, c-format
+msgid "cannot access '%s'"
+msgstr "не вдалося отримати доступ до «%s»"
+
+#: nscd/connections.c:700
+#, c-format
+msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart"
+msgstr "базу даних для %s пошкоджено або ця база використовується спільно з іншою програмою; вилучіть %s вручну, якщо потрібно, і перезапустіть програму"
+
+#: nscd/connections.c:707
+#, c-format
+msgid "cannot create %s; no persistent database used"
+msgstr "не вдалося створити %s; не використано жодної постійної бази даних"
+
+#: nscd/connections.c:710
+#, c-format
+msgid "cannot create %s; no sharing possible"
+msgstr "не вдалося створити %s; спільне використання неможливе"
+
+#: nscd/connections.c:781
+#, c-format
+msgid "cannot write to database file %s: %s"
+msgstr "не вдалося виконати запис до файла бази даних %s: %s"
+
+#: nscd/connections.c:820
+#, c-format
+msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
+msgstr "не вдалося перевести сокет у режим закриття після виконання: %s; вимикаємо параноїдальний режим"
+
+#: nscd/connections.c:869
+#, c-format
+msgid "cannot open socket: %s"
+msgstr "не вдалося відкрити сокет: %s"
+
+#: nscd/connections.c:889 nscd/connections.c:953
+#, c-format
+msgid "cannot change socket to nonblocking mode: %s"
+msgstr "не вдалося перевести сокет у неблокований режим: %s"
+
+#: nscd/connections.c:897 nscd/connections.c:963
+#, c-format
+msgid "cannot set socket to close on exec: %s"
+msgstr "не вдалося перевести сокет у режим закриття після виконання: %s"
+
+#: nscd/connections.c:910
+#, c-format
+msgid "cannot enable socket to accept connections: %s"
+msgstr "не вдалося увімкнути сокет для прийняття з’єднань: %s"
+
+#: nscd/connections.c:1003
+#, c-format
+msgid "register trace file %s for database %s"
+msgstr "зареєструвати файл трасування %s для бази даних %s"
+
+#: nscd/connections.c:1133
+#, c-format
+msgid "provide access to FD %d, for %s"
+msgstr "надати доступ до файлового дескриптора %d для %s"
+
+#: nscd/connections.c:1145
+#, c-format
+msgid "cannot handle old request version %d; current version is %d"
+msgstr "обробка застарілої версії запиту %d неможлива; поточною версією є %d"
+
+#: nscd/connections.c:1167
+#, c-format
+msgid "request from %ld not handled due to missing permission"
+msgstr "запит від %ld не оброблено через недостатні права доступу"
+
+#: nscd/connections.c:1172
+#, c-format
+msgid "request from '%s' [%ld] not handled due to missing permission"
+msgstr "запит від «%s» [%ld] не оброблено через недостатні права доступу"
+
+#: nscd/connections.c:1177
+msgid "request not handled due to missing permission"
+msgstr "запит не оброблено через недостатні права доступу"
+
+#: nscd/connections.c:1215 nscd/connections.c:1268
+#, c-format
+msgid "cannot write result: %s"
+msgstr "не вдалося записати результат: %s"
+
+#: nscd/connections.c:1359
+#, c-format
+msgid "error getting caller's id: %s"
+msgstr "помилка під час спроби отримати ідентифікатор виклику: %s"
+
+#: nscd/connections.c:1419
+#, c-format
+msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr "не вдалося відкрити /proc/self/cmdline: %s; вимикаємо параноїдальний режим"
+
+#: nscd/connections.c:1433
+#, c-format
+msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr "не вдалося прочитати /proc/self/cmdline: %s; вимикаємо параноїдальний режим"
+
+#: nscd/connections.c:1473
+#, c-format
+msgid "cannot change to old UID: %s; disabling paranoia mode"
+msgstr "не вдалося змінити старий UID: %s; вимикаємо параноїдальний режим"
+
+#: nscd/connections.c:1483
+#, c-format
+msgid "cannot change to old GID: %s; disabling paranoia mode"
+msgstr "не вдалося змінити старий GID: %s; вимикаємо параноїдальний режим"
+
+#: nscd/connections.c:1496
+#, c-format
+msgid "cannot change to old working directory: %s; disabling paranoia mode"
+msgstr "не вдалося змінити старий робочий каталог: %s; вимикаємо параноїдальний режим"
+
+#: nscd/connections.c:1542
+#, c-format
+msgid "re-exec failed: %s; disabling paranoia mode"
+msgstr "не вдалося повторно виконати %s; вимикаємо параноїдальний режим"
+
+#: nscd/connections.c:1551
+#, c-format
+msgid "cannot change current working directory to \"/\": %s"
+msgstr "не вдалося змінити поточний робочий каталог на «/»: %s"
+
+#: nscd/connections.c:1744
+#, c-format
+msgid "short read while reading request: %s"
+msgstr "неповний зчитаний блок під час читання запиту: %s"
+
+#: nscd/connections.c:1777
+#, c-format
+msgid "key length in request too long: %d"
+msgstr "надто довгий ключ у запиті: %d"
+
+#: nscd/connections.c:1790
+#, c-format
+msgid "short read while reading request key: %s"
+msgstr "неповний зчитаний блок під час читання ключа запиту: %s"
+
+#: nscd/connections.c:1800
+#, c-format
+msgid "handle_request: request received (Version = %d) from PID %ld"
+msgstr "handle_request: отримано запит (версія = %d) від PID %ld"
+
+#: nscd/connections.c:1805
+#, c-format
+msgid "handle_request: request received (Version = %d)"
+msgstr "handle_request: отримано запит (версія = %d)"
+
+#: nscd/connections.c:2069 nscd/connections.c:2271
+#, c-format
+msgid "disabled inotify after read error %d"
+msgstr "вимкнено inotify після помилки читання %d"
+
+#: nscd/connections.c:2394
+msgid "could not initialize conditional variable"
+msgstr "не вдалося ініціалізувати змінну умови"
+
+#: nscd/connections.c:2402
+msgid "could not start clean-up thread; terminating"
+msgstr "не вдалося розпочати нитку спорожнення; перериваємо обробку"
+
+#: nscd/connections.c:2416
+msgid "could not start any worker thread; terminating"
+msgstr "не вдалося запустити будь-яку нитку обробки; перериваємо обробку"
+
+#: nscd/connections.c:2467 nscd/connections.c:2468 nscd/connections.c:2485
+#: nscd/connections.c:2494 nscd/connections.c:2512 nscd/connections.c:2523
+#: nscd/connections.c:2534
+#, c-format
+msgid "Failed to run nscd as user '%s'"
+msgstr "Не вдалося запустити nscd від імені користувача «%s»"
+
+#: nscd/connections.c:2486
+#, c-format
+msgid "initial getgrouplist failed"
+msgstr "помилка початкового getgrouplist"
+
+#: nscd/connections.c:2495
+#, c-format
+msgid "getgrouplist failed"
+msgstr "помилка getgrouplist"
+
+#: nscd/connections.c:2513
+#, c-format
+msgid "setgroups failed"
+msgstr "помилка setgroups"
+
+#: nscd/grpcache.c:413 nscd/hstcache.c:441 nscd/initgrcache.c:419
+#: nscd/pwdcache.c:391 nscd/servicescache.c:346
+#, c-format
+msgid "short write in %s: %s"
+msgstr "неповний запис до %s: %s"
+
+#: nscd/grpcache.c:458 nscd/initgrcache.c:77
+#, c-format
+msgid "Haven't found \"%s\" in group cache!"
+msgstr "Не вдалося знайти «%s» у кеші груп!"
+
+#: nscd/grpcache.c:460 nscd/initgrcache.c:79
+#, c-format
+msgid "Reloading \"%s\" in group cache!"
+msgstr "Перезавантажуємо «%s» до кешу груп!"
+
+#: nscd/grpcache.c:539
+#, c-format
+msgid "Invalid numeric gid \"%s\"!"
+msgstr "Некоректне числове значення gid «%s»!"
+
+#: nscd/mem.c:425
+#, c-format
+msgid "freed %zu bytes in %s cache"
+msgstr "вивільнено %zu байтів у кеші %s"
+
+#: nscd/mem.c:568
+#, c-format
+msgid "no more memory for database '%s'"
+msgstr "недостатньо пам’яті для бази даних «%s»"
+
+#: nscd/netgroupcache.c:77
+#, c-format
+msgid "Haven't found \"%s\" in netgroup cache!"
+msgstr "Не вдалося знайти «%s» у кеші netgroup!"
+
+#: nscd/netgroupcache.c:79
+#, c-format
+msgid "Reloading \"%s\" in netgroup cache!"
+msgstr "Перезавантажуємо «%s» до кешу netgroup!"
+
+#: nscd/netgroupcache.c:475
+#, c-format
+msgid "Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"
+msgstr "Не вдалося знайти «%s (%s,%s,%s)» у кеші netgroup!"
+
+#: nscd/netgroupcache.c:478
+#, c-format
+msgid "Reloading \"%s (%s,%s,%s)\" in netgroup cache!"
+msgstr "Перезавантажуємо «%s (%s,%s,%s)» до кешу netgroup!"
+
+#: nscd/nscd.c:116
+msgid "Read configuration data from NAME"
+msgstr "Прочитати дані налаштування з файла НАЗВА"
+
+#: nscd/nscd.c:118
+msgid "Do not fork and display messages on the current tty"
+msgstr "Не відгалужувати дочірній процес і показувати повідомлення у поточному tty"
+
+#: nscd/nscd.c:120
+msgid "Do not fork, but otherwise behave like a daemon"
+msgstr "Не відгалужувати дочірній процес, але працювати подібно до фонової служби"
+
+#: nscd/nscd.c:121
+msgid "NUMBER"
+msgstr "ЧИСЛО"
+
+#: nscd/nscd.c:121
+msgid "Start NUMBER threads"
+msgstr "Запустити вказане ЧИСЛО потоків обробки"
+
+#: nscd/nscd.c:122
+msgid "Shut the server down"
+msgstr "Завершити роботу сервера"
+
+#: nscd/nscd.c:123
+msgid "Print current configuration statistics"
+msgstr "Вивести статистичні дані щодо поточного налаштування"
+
+#: nscd/nscd.c:124
+msgid "TABLE"
+msgstr "ТАБЛИЦЯ"
+
+#: nscd/nscd.c:125
+msgid "Invalidate the specified cache"
+msgstr "Скасувати чинність вказаного кешу"
+
+#: nscd/nscd.c:126
+msgid "TABLE,yes"
+msgstr "ТАБЛИЦЯ,yes"
+
+#: nscd/nscd.c:127
+msgid "Use separate cache for each user"
+msgstr "Використовувати окремий кеш для кожного з користувачів"
+
+#: nscd/nscd.c:132
+msgid "Name Service Cache Daemon."
+msgstr "Фонова служба кешування служби назв."
+
+#: nscd/nscd.c:164 nss/getent.c:999 nss/makedb.c:206
+#, c-format
+msgid "wrong number of arguments"
+msgstr "помилкова кількість параметрів"
+
+#: nscd/nscd.c:174
+#, c-format
+msgid "failure while reading configuration file; this is fatal"
+msgstr "не вдалося прочитати дані з файла налаштувань; ця помилка є критичною"
+
+#: nscd/nscd.c:183
+#, c-format
+msgid "already running"
+msgstr "вже працює"
+
+#: nscd/nscd.c:201
+#, c-format
+msgid "cannot fork"
+msgstr "не вдалося створити процес"
+
+#: nscd/nscd.c:259
+#, c-format
+msgid "cannot change current working directory to \"/\""
+msgstr "не вдалося змінити поточний робочий каталог на «/»"
+
+#: nscd/nscd.c:267
+msgid "Could not create log file"
+msgstr "Не вдалося створити файл журналу"
+
+#: nscd/nscd.c:339 nscd/nscd.c:364 nscd/nscd_stat.c:173
+#, c-format
+msgid "Only root is allowed to use this option!"
+msgstr "Цим параметром може користуватися лише користувач root!"
+
+#: nscd/nscd.c:379
+#, c-format
+msgid "'%s' is not a known database"
+msgstr "«%s» не є назвою відомої бази даних"
+
+#: nscd/nscd.c:404 nscd/nscd_stat.c:192
+#, c-format
+msgid "write incomplete"
+msgstr "неповний запис"
+
+#: nscd/nscd.c:415
+#, c-format
+msgid "cannot read invalidate ACK"
+msgstr "читання нечинного ACK неможливе"
+
+#: nscd/nscd.c:421
+#, c-format
+msgid "invalidation failed"
+msgstr "спроба скасування чинності зазнала невдачі"
+
+#: nscd/nscd.c:431
+#, c-format
+msgid "secure services not implemented anymore"
+msgstr "безпечні служби більше не підтримуються"
+
+#: nscd/nscd_conf.c:57
+#, c-format
+msgid "database %s is not supported"
+msgstr "підтримки бази даних %s не передбачено"
+
+#: nscd/nscd_conf.c:108
+#, c-format
+msgid "Parse error: %s"
+msgstr "Помилка обробки: %s"
+
+#: nscd/nscd_conf.c:194
+#, c-format
+msgid "Must specify user name for server-user option"
+msgstr "Для параметра server-user слід вказати ім’я користувача"
+
+#: nscd/nscd_conf.c:201
+#, c-format
+msgid "Must specify user name for stat-user option"
+msgstr "Для параметра stat-user слід вказати ім’я користувача"
+
+#: nscd/nscd_conf.c:258
+#, c-format
+msgid "Must specify value for restart-interval option"
+msgstr "Для параметра restart-interval слід вказати значення"
+
+#: nscd/nscd_conf.c:272
+#, c-format
+msgid "Unknown option: %s %s %s"
+msgstr "Невідомий параметр: %s %s %s"
+
+#: nscd/nscd_conf.c:285
+#, c-format
+msgid "cannot get current working directory: %s; disabling paranoia mode"
+msgstr "не вдалося визначити поточний робочий каталог: %s; вимикаємо параноїдальний режим"
+
+#: nscd/nscd_conf.c:305
+#, c-format
+msgid "maximum file size for %s database too small"
+msgstr "максимальний розмір файла для бази даних %s є надто малим"
+
+#: nscd/nscd_stat.c:142
+#, c-format
+msgid "cannot write statistics: %s"
+msgstr "не вдалося записати статистичні дані: %s"
+
+#: nscd/nscd_stat.c:157
+msgid "yes"
+msgstr "так"
+
+#: nscd/nscd_stat.c:158
+msgid "no"
+msgstr "ні"
+
+#: nscd/nscd_stat.c:169
+#, c-format
+msgid "Only root or %s is allowed to use this option!"
+msgstr "Цим параметром може користуватися лише root або %s!"
+
+#: nscd/nscd_stat.c:180
+#, c-format
+msgid "nscd not running!\n"
+msgstr "nscd не запущено!\n"
+
+#: nscd/nscd_stat.c:204
+#, c-format
+msgid "cannot read statistics data"
+msgstr "не вдалося прочитати статистичні дані"
+
+#: nscd/nscd_stat.c:207
+#, c-format
+msgid ""
+"nscd configuration:\n"
+"\n"
+"%15d server debug level\n"
+msgstr ""
+"Налаштування nscd:\n"
+"\n"
+"%15d рівень діагностування сервера\n"
+
+#: nscd/nscd_stat.c:231
+#, c-format
+msgid "%3ud %2uh %2um %2lus server runtime\n"
+msgstr "%3ud %2uh %2um %2lus час роботи сервера\n"
+
+#: nscd/nscd_stat.c:234
+#, c-format
+msgid " %2uh %2um %2lus server runtime\n"
+msgstr " %2uh %2um %2lus час роботи сервера\n"
+
+#: nscd/nscd_stat.c:236
+#, c-format
+msgid " %2um %2lus server runtime\n"
+msgstr " %2um %2lus час роботи сервера\n"
+
+#: nscd/nscd_stat.c:238
+#, c-format
+msgid " %2lus server runtime\n"
+msgstr " %2lus час роботи сервера\n"
+
+#: nscd/nscd_stat.c:240
+#, 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"
+"%15d максимальна кількість потоків обробки\n"
+"%15lu кількість випадків, коли клієнти мали очікувати\n"
+"%15s увімкнено параноїдальний режим\n"
+"%15lu інтервал перезапуску\n"
+"%15u кількість перезавантажень\n"
+
+#: nscd/nscd_stat.c:275
+#, 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<PRIuMAX> cache hits on positive entries\n"
+"%15<PRIuMAX> cache hits on negative entries\n"
+"%15<PRIuMAX> cache misses on positive entries\n"
+"%15<PRIuMAX> 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<PRIuMAX> number of delays on rdlock\n"
+"%15<PRIuMAX> number of delays on wrlock\n"
+"%15<PRIuMAX> memory allocations failed\n"
+"%15s check /etc/%s for changes\n"
+msgstr ""
+"\n"
+"Кеш %s:\n"
+"\n"
+"%15s кеш увімкнено\n"
+"%15s кеш є сталим\n"
+"%15s кеш є спільним\n"
+"%15zu пропонований розмір\n"
+"%15zu загальний розмір буфера даних\n"
+"%15zu використаний розмір буфера даних\n"
+"%15lu строк роботи у секундах для додатних записів\n"
+"%15lu строк роботи у секундах для від’ємних записів\n"
+"%15<PRIuMAX> знайдено у кеші для додатних записів\n"
+"%15<PRIuMAX> знайдено у кеші для від’ємних записів\n"
+"%15<PRIuMAX> не знайдено у кеші для додатних записів\n"
+"%15<PRIuMAX> не знайдено у кеші для від’ємних записів\n"
+"%15lu%% частота знайденого у кеші\n"
+"%15zu поточна кількість кешованих значень\n"
+"%15zu максимальна кількість кешованих значень\n"
+"%15zu максимальна довжина шуканого ланцюжка\n"
+"%15<PRIuMAX> кількість затримок для rdlock\n"
+"%15<PRIuMAX> кількість затримок для wrlock\n"
+"%15<PRIuMAX> помилок у отримання пам’яті\n"
+"%15s перевірити /etc/%s на наявність змін\n"
+
+#: nscd/pwdcache.c:436
+#, c-format
+msgid "Haven't found \"%s\" in password cache!"
+msgstr "Не вдалося знайти «%s» у кеші паролів!"
+
+#: nscd/pwdcache.c:438
+#, c-format
+msgid "Reloading \"%s\" in password cache!"
+msgstr "Перезавантажуємо «%s» до кешу паролів!"
+
+#: nscd/pwdcache.c:519
+#, c-format
+msgid "Invalid numeric uid \"%s\"!"
+msgstr "Некоректний цифровий ідентифікатор «%s»!"
+
+#: nscd/selinux.c:160
+#, c-format
+msgid "Failed opening connection to the audit subsystem: %m"
+msgstr "Не вдалося відкрити з’єднання з підсистемою аудита: %m"
+
+#: nscd/selinux.c:181
+msgid "Failed to set keep-capabilities"
+msgstr "Не вдалося встановити keep-capabilities"
+
+#: nscd/selinux.c:182 nscd/selinux.c:245
+#, c-format
+msgid "prctl(KEEPCAPS) failed"
+msgstr "помилка prctl(KEEPCAPS)"
+
+#: nscd/selinux.c:196
+msgid "Failed to initialize drop of capabilities"
+msgstr "Не вдалося ініціалізувати скидання можливостей"
+
+#: nscd/selinux.c:197
+#, c-format
+msgid "cap_init failed"
+msgstr "помилка cap_init"
+
+#: nscd/selinux.c:218 nscd/selinux.c:235
+msgid "Failed to drop capabilities"
+msgstr "Не вдалося скинути можливості"
+
+#: nscd/selinux.c:219 nscd/selinux.c:236
+#, c-format
+msgid "cap_set_proc failed"
+msgstr "помилка cap_set_proc"
+
+#: nscd/selinux.c:244
+msgid "Failed to unset keep-capabilities"
+msgstr "Не вдалося скасувати чинність keep-capabilities"
+
+#: nscd/selinux.c:260
+msgid "Failed to determine if kernel supports SELinux"
+msgstr "Не вдалося визначити, чи передбачено у ядрі підтримку SELinux"
+
+#: nscd/selinux.c:275
+#, c-format
+msgid "Failed to start AVC thread"
+msgstr "Не вдалося запустити потік виконання AVC"
+
+#: nscd/selinux.c:297
+#, c-format
+msgid "Failed to create AVC lock"
+msgstr "Не вдалося створити блокування AVC"
+
+#: nscd/selinux.c:337
+#, c-format
+msgid "Failed to start AVC"
+msgstr "Не вдалося запустити AVC"
+
+#: nscd/selinux.c:339
+msgid "Access Vector Cache (AVC) started"
+msgstr "Запущено кешування векторів доступу (AVC)"
+
+#: nscd/selinux.c:360
+msgid "Error getting context of socket peer"
+msgstr "Помилка під час спроби отримання контексту вузла сокета"
+
+#: nscd/selinux.c:365
+msgid "Error getting context of nscd"
+msgstr "Помилка під час спроби отримання контексту nscd"
+
+#: nscd/selinux.c:371
+msgid "Error getting sid from context"
+msgstr "Помилка під час спроби отримати sid з контексту"
+
+#: nscd/selinux.c:378
+msgid "compile-time support for database policy missing"
+msgstr "не вистачає зібраної у програмі підтримки для правил користування базою даних"
+
+#: nscd/selinux.c:411
+#, 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"
+"Статистика AVC SELinux:\n"
+"\n"
+"%15u пошуків записів\n"
+"%15u знайдених записів\n"
+"%15u незнайдених записів\n"
+"%15u відкидань записів\n"
+"%15u пошуків CAV\n"
+"%15u знайдених CAV\n"
+"%15u зондувань CAV\n"
+"%15u незнайдених CAV\n"
+
+#: nscd/servicescache.c:395
+#, c-format
+msgid "Haven't found \"%s\" in services cache!"
+msgstr "Не вдалося знайти «%s» у кеші служб!"
+
+#: nscd/servicescache.c:397
+#, c-format
+msgid "Reloading \"%s\" in services cache!"
+msgstr "Перезавантажуємо «%s» до кешу служб!"
+
+#: nss/getent.c:53
+msgid "database [key ...]"
+msgstr "база даних [ключ ...]"
+
+#: nss/getent.c:58
+msgid "CONFIG"
+msgstr "НАЛАШТУВАННЯ"
+
+#: nss/getent.c:58
+msgid "Service configuration to be used"
+msgstr "Налаштування служби, які буде використано"
+
+#: nss/getent.c:59
+msgid "disable IDN encoding"
+msgstr "вимкнути кодування IDN"
+
+#: nss/getent.c:64
+msgid "Get entries from administrative database."
+msgstr "Отримати записи з адміністративної бази даних."
+
+#: nss/getent.c:148 nss/getent.c:477 nss/getent.c:522
+#, c-format
+msgid "Enumeration not supported on %s\n"
+msgstr "Для %s нумерація не підтримується\n"
+
+#: nss/getent.c:913
+#, c-format
+msgid "Unknown database name"
+msgstr "Невідома назва бази даних"
+
+#: nss/getent.c:943
+msgid "Supported databases:\n"
+msgstr "Підтримувані бази даних:\n"
+
+#: nss/getent.c:1009
+#, c-format
+msgid "Unknown database: %s\n"
+msgstr "Невідома база даних: %s\n"
+
+#: nss/makedb.c:119
+msgid "Convert key to lower case"
+msgstr "Перетворити символи ключа до нижнього регістру"
+
+#: nss/makedb.c:122
+msgid "Do not print messages while building database"
+msgstr "Не виводити повідомлення під час побудови бази даних"
+
+#: nss/makedb.c:124
+msgid "Print content of database file, one entry a line"
+msgstr "Вивести вміст файла бази даних, один запис на рядок"
+
+#: nss/makedb.c:125
+msgid "CHAR"
+msgstr "СИМВОЛ"
+
+#: nss/makedb.c:126
+msgid "Generated line not part of iteration"
+msgstr "Створений рядок не є частиною ітерації"
+
+#: nss/makedb.c:131
+msgid "Create simple database from textual input."
+msgstr "Створити просту базу даних на основі текстових вхідних даних."
+
+#: nss/makedb.c:134
+msgid ""
+"INPUT-FILE OUTPUT-FILE\n"
+"-o OUTPUT-FILE INPUT-FILE\n"
+"-u INPUT-FILE"
+msgstr ""
+"ВХІДНИЙ-ФАЙЛ ВИХІДНИЙ-ФАЙЛ\n"
+"-o ВИХІДНИЙ-ФАЙЛ ВХІДНИЙ-ФАЙЛ\n"
+"-u ВХІДНИЙ-ФАЙЛ"
+
+#: nss/makedb.c:227
+#, c-format
+msgid "cannot open database file `%s'"
+msgstr "не вдалося відкрити файл бази даних «%s»"
+
+#: nss/makedb.c:272
+#, c-format
+msgid "no entries to be processed"
+msgstr "немає записів для обробки"
+
+#: nss/makedb.c:282
+#, c-format
+msgid "cannot create temporary file name"
+msgstr "не вдалося створити назву тимчасового файла"
+
+#: nss/makedb.c:288
+#, c-format
+msgid "cannot create temporary file"
+msgstr "не вдалося створити тимчасовий файл"
+
+#: nss/makedb.c:304
+#, c-format
+msgid "cannot stat newly created file"
+msgstr "не вдалося отримати статистичні дані щодо щойно створеного файла"
+
+#: nss/makedb.c:315
+#, c-format
+msgid "cannot rename temporary file"
+msgstr "не вдалося перейменувати тимчасовий файл"
+
+#: nss/makedb.c:531 nss/makedb.c:554
+#, c-format
+msgid "cannot create search tree"
+msgstr "не вдалося створити дерево пошуку"
+
+#: nss/makedb.c:560
+msgid "duplicate key"
+msgstr "дублювання ключа"
+
+#: nss/makedb.c:572
+#, c-format
+msgid "problems while reading `%s'"
+msgstr "проблеми під час читання «%s»"
+
+#: nss/makedb.c:799
+#, c-format
+msgid "failed to write new database file"
+msgstr "не вдалося записати новий файл бази даних"
+
+#: nss/makedb.c:812
+#, c-format
+msgid "cannot stat database file"
+msgstr "не вдалося виконати статистичну обробку файла бази даних"
+
+#: nss/makedb.c:817
+#, c-format
+msgid "cannot map database file"
+msgstr "не вдалося прив’язати файл бази даних"
+
+#: nss/makedb.c:820
+#, c-format
+msgid "file not a database file"
+msgstr "файл не є файлом бази даних"
+
+#: nss/makedb.c:871
+#, c-format
+msgid "cannot set file creation context for `%s'"
+msgstr "не вдалося встановити контекст створення файла для «%s»"
+
+#: ports/sysdeps/unix/sysv/linux/ia64/makecontext.c:58
+#, c-format
+msgid "makecontext: does not know how to handle more than 8 arguments\n"
+msgstr "makecontext: спосіб обробки понад 8 аргументів невідомий\n"
+
+#: posix/getconf.c:1035
+#, c-format
+msgid "Usage: %s [-v specification] variable_name [pathname]\n"
+msgstr "Користування: %s [-v специфікація] назва_змінної [шлях]\n"
+
+#: posix/getconf.c:1038
+#, c-format
+msgid " %s -a [pathname]\n"
+msgstr " %s -a [шлях]\n"
+
+#: posix/getconf.c:1114
+#, 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 ""
+"Користування: getconf [-v СПЕЦИФІКАЦІЯ] ЗМІННА\n"
+" або: getconf [-v СПЕЦИФІКАЦІЯ] ЗМІННА_ШЛЯХУ ШЛЯХ\n"
+"\n"
+"Отримати значення налаштування для змінної ЗМІННА або для змінної\n"
+"ЗМІННА_ШЛЯХУ для шляху ШЛЯХ. Якщо вказано специфікацію СПЕЦИФІКАЦІЯ,\n"
+"надати значення для збирання середовища СПЕЦИФІКАЦІЯ.\n"
+"\n"
+
+#: posix/getconf.c:1172
+#, c-format
+msgid "unknown specification \"%s\""
+msgstr "невідома специфікація «%s»"
+
+#: posix/getconf.c:1224
+#, c-format
+msgid "Couldn't execute %s"
+msgstr "Не вдалося виконати %s"
+
+#: posix/getconf.c:1268 posix/getconf.c:1284
+msgid "undefined"
+msgstr "невизначено"
+
+#: posix/getconf.c:1306
+#, c-format
+msgid "Unrecognized variable `%s'"
+msgstr "Нерозпізнана змінна «%s»"
+
+#: posix/getopt.c:592 posix/getopt.c:621
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: неоднозначний параметр «%s»; можливі варіанти:"
+
+#: posix/getopt.c:662 posix/getopt.c:666
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: додавання аргументів до параметра «--%s» не передбачено\n"
+
+#: posix/getopt.c:675 posix/getopt.c:680
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: додавання аргументів до параметра «%c%s» не передбачено\n"
+
+#: posix/getopt.c:723 posix/getopt.c:742
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: до параметра «--%s» слід додати аргумент\n"
+
+#: posix/getopt.c:780 posix/getopt.c:783
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: невідомий параметр «--%s»\n"
+
+#: posix/getopt.c:791 posix/getopt.c:794
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: невідомий параметр «%c%s»\n"
+
+#: posix/getopt.c:843 posix/getopt.c:846
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: некоректний параметр — «%c»\n"
+
+#: posix/getopt.c:899 posix/getopt.c:916 posix/getopt.c:1126
+#: posix/getopt.c:1144
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: до параметра слід додати аргумент — «%c»\n"
+
+#: posix/getopt.c:972 posix/getopt.c:988
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: параметр «-W %s» не є однозначним\n"
+
+#: posix/getopt.c:1012 posix/getopt.c:1030
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: додавання аргументів до параметра «-W %s» не передбачено\n"
+
+#: posix/getopt.c:1051 posix/getopt.c:1069
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: до параметра «-W %s» слід додати аргумент\n"
+
+#: posix/regcomp.c:136
+msgid "No match"
+msgstr "Не знайдено"
+
+#: posix/regcomp.c:139
+msgid "Invalid regular expression"
+msgstr "Помилка у формальному виразі"
+
+#: posix/regcomp.c:142
+msgid "Invalid collation character"
+msgstr "Некоректний символ порівняння"
+
+#: posix/regcomp.c:145
+msgid "Invalid character class name"
+msgstr "Некоректна назва класу символів"
+
+#: posix/regcomp.c:148
+msgid "Trailing backslash"
+msgstr "Кінцевий символ похилої риски"
+
+#: posix/regcomp.c:151
+msgid "Invalid back reference"
+msgstr "Некоректне зворотне посилання"
+
+#: posix/regcomp.c:154
+msgid "Unmatched [ or [^"
+msgstr "Неврівноважена послідовність [ або [^"
+
+#: posix/regcomp.c:157
+msgid "Unmatched ( or \\("
+msgstr "Неврівноважена послідовність ( або \\("
+
+#: posix/regcomp.c:160
+msgid "Unmatched \\{"
+msgstr "Неврівноважена послідовність \\{"
+
+#: posix/regcomp.c:163
+msgid "Invalid content of \\{\\}"
+msgstr "Некоректний вміст \\{\\}"
+
+#: posix/regcomp.c:166
+msgid "Invalid range end"
+msgstr "Некоректне завершення діапазону"
+
+#: posix/regcomp.c:169
+msgid "Memory exhausted"
+msgstr "Пам’ять вичерпано"
+
+#: posix/regcomp.c:172
+msgid "Invalid preceding regular expression"
+msgstr "Помилка у попередньому формальному виразі"
+
+#: posix/regcomp.c:175
+msgid "Premature end of regular expression"
+msgstr "Неочікуване завершення формального виразу"
+
+#: posix/regcomp.c:178
+msgid "Regular expression too big"
+msgstr "Занадто об’ємний формальний вираз"
+
+#: posix/regcomp.c:181
+msgid "Unmatched ) or \\)"
+msgstr "Неврівноважена послідовність ) або \\)"
+
+#: posix/regcomp.c:681
+msgid "No previous regular expression"
+msgstr "Не виявлено попереднього формального виразу"
+
+#: posix/wordexp.c:1840
+msgid "parameter null or not set"
+msgstr "параметр нульової довжини або його значення не вказано"
+
+#: resolv/herror.c:68
+msgid "Resolver Error 0 (no error)"
+msgstr "Помилка 0 розв’язувача (немає помилки)"
+
+#: resolv/herror.c:69
+msgid "Unknown host"
+msgstr "Невідомий вузол"
+
+#: resolv/herror.c:70
+msgid "Host name lookup failure"
+msgstr "Помилка під час визначення назви вузла"
+
+#: resolv/herror.c:71
+msgid "Unknown server error"
+msgstr "Невідома помилка сервера"
+
+#: resolv/herror.c:72
+msgid "No address associated with name"
+msgstr "З назвою не пов’язано жодної адреси"
+
+#: resolv/herror.c:107
+msgid "Resolver internal error"
+msgstr "Внутрішня помилка розв’язувача"
+
+#: resolv/herror.c:110
+msgid "Unknown resolver error"
+msgstr "Невідома помилка розв’язувача"
+
+#: resolv/res_hconf.c:121
+#, c-format
+msgid "%s: line %d: cannot specify more than %d trim domains"
+msgstr "%s: рядок %d: не можна вказувати більше за %d доменів обрізання"
+
+#: resolv/res_hconf.c:142
+#, c-format
+msgid "%s: line %d: list delimiter not followed by domain"
+msgstr "%s: рядок %d: за роздільником у списку не вказано домену"
+
+#: resolv/res_hconf.c:201
+#, c-format
+msgid "%s: line %d: expected `on' or `off', found `%s'\n"
+msgstr "%s: рядок %d: мало бути вказано «on» або «off», втім, вказано «%s»\n"
+
+#: resolv/res_hconf.c:244
+#, c-format
+msgid "%s: line %d: bad command `%s'\n"
+msgstr "%s: рядок %d: помилкова команда «%s»\n"
+
+#: resolv/res_hconf.c:279
+#, c-format
+msgid "%s: line %d: ignoring trailing garbage `%s'\n"
+msgstr "%s: рядок %d: ігноруємо кінцеві зайві символи «%s»\n"
+
+#: stdio-common/psiginfo-data.h:2
+msgid "Illegal opcode"
+msgstr "Некоректний код операції"
+
+#: stdio-common/psiginfo-data.h:3
+msgid "Illegal operand"
+msgstr "Неприпустимий операнд"
+
+#: stdio-common/psiginfo-data.h:4
+msgid "Illegal addressing mode"
+msgstr "Неприпустимий режим адресування"
+
+#: stdio-common/psiginfo-data.h:5
+msgid "Illegal trap"
+msgstr "Неприпустима пастка"
+
+#: stdio-common/psiginfo-data.h:6
+msgid "Privileged opcode"
+msgstr "Код привілейованої операції"
+
+#: stdio-common/psiginfo-data.h:7
+msgid "Privileged register"
+msgstr "Привілейований регістр"
+
+#: stdio-common/psiginfo-data.h:8
+msgid "Coprocessor error"
+msgstr "Помилка співпроцесора"
+
+#: stdio-common/psiginfo-data.h:9
+msgid "Internal stack error"
+msgstr "Внутрішня помилка стека"
+
+#: stdio-common/psiginfo-data.h:12
+msgid "Integer divide by zero"
+msgstr "Цілочисельне ділення на нуль"
+
+#: stdio-common/psiginfo-data.h:13
+msgid "Integer overflow"
+msgstr "Переповнення типу цілого значення"
+
+#: stdio-common/psiginfo-data.h:14
+msgid "Floating-point divide by zero"
+msgstr "Ділення на нуль чисел з рухомою крапкою"
+
+#: stdio-common/psiginfo-data.h:15
+msgid "Floating-point overflow"
+msgstr "Переповнення типу з рухомою крапкою"
+
+#: stdio-common/psiginfo-data.h:16
+msgid "Floating-point underflow"
+msgstr "Втрата значимості числа з рухомою крапкою"
+
+#: stdio-common/psiginfo-data.h:17
+msgid "Floating-poing inexact result"
+msgstr "Неточний результат операції над числами з рухомою крапкою"
+
+#: stdio-common/psiginfo-data.h:18
+msgid "Invalid floating-point operation"
+msgstr "Некоректна операція над числами з рухомою крапкою"
+
+#: stdio-common/psiginfo-data.h:19
+msgid "Subscript out of range"
+msgstr "Нижній індекс поза межами припустимого діапазону"
+
+#: stdio-common/psiginfo-data.h:22
+msgid "Address not mapped to object"
+msgstr "Адресу не пов’язано з об’єктом"
+
+#: stdio-common/psiginfo-data.h:23
+msgid "Invalid permissions for mapped object"
+msgstr "Некоректні права доступу до пов’язаного об’єкта"
+
+#: stdio-common/psiginfo-data.h:26
+msgid "Invalid address alignment"
+msgstr "Некоректне вирівнювання адреси"
+
+#: stdio-common/psiginfo-data.h:27
+msgid "Nonexisting physical address"
+msgstr "Фізична адреса, якої не існує"
+
+#: stdio-common/psiginfo-data.h:28
+msgid "Object-specific hardware error"
+msgstr "Апаратна помилка, специфічна для об’єкта"
+
+#: stdio-common/psiginfo-data.h:31
+msgid "Process breakpoint"
+msgstr "Точка зупину процесу"
+
+#: stdio-common/psiginfo-data.h:32
+msgid "Process trace trap"
+msgstr "Пастка трасування процесу"
+
+#: stdio-common/psiginfo-data.h:35
+msgid "Child has exited"
+msgstr "Дочірній процес завершив роботу"
+
+#: stdio-common/psiginfo-data.h:36
+msgid "Child has terminated abnormally and did not create a core file"
+msgstr "Дочірній процес було перервано у нештатному режимі, файл core не створено"
+
+#: stdio-common/psiginfo-data.h:37
+msgid "Child hat terminated abnormally and created a core file"
+msgstr "Дочірній процес було перервано у нештатному режимі, створено файл core"
+
+#: stdio-common/psiginfo-data.h:38
+msgid "Traced child has trapped"
+msgstr "Дочірній процес потрапив до пастки трасування"
+
+#: stdio-common/psiginfo-data.h:39
+msgid "Child has stopped"
+msgstr "Роботу дочірнього процесу зупинено"
+
+#: stdio-common/psiginfo-data.h:40
+msgid "Stopped child has continued"
+msgstr "Роботу зупиненого дочірнього процесу поновлено"
+
+#: stdio-common/psiginfo-data.h:43
+msgid "Data input available"
+msgstr "Доступні вхідні дані"
+
+#: stdio-common/psiginfo-data.h:44
+msgid "Output buffers available"
+msgstr "Доступні буфери виведення даних"
+
+#: stdio-common/psiginfo-data.h:45
+msgid "Input message available"
+msgstr "Доступне вхідне повідомлення"
+
+#: stdio-common/psiginfo-data.h:46
+msgid "I/O error"
+msgstr "помилка вводу/виводу"
+
+#: stdio-common/psiginfo-data.h:47
+msgid "High priority input available"
+msgstr "Доступні високопріоритетні вхідні дані"
+
+#: stdio-common/psiginfo-data.h:48
+msgid "Device disconnected"
+msgstr "Пристрій від'єднано"
+
+#: stdio-common/psiginfo.c:139
+msgid "Signal sent by kill()"
+msgstr "Сигнал надіслано kill()"
+
+#: stdio-common/psiginfo.c:142
+msgid "Signal sent by sigqueue()"
+msgstr "Сигнал надіслано sigqueue()"
+
+#: stdio-common/psiginfo.c:145
+msgid "Signal generated by the expiration of a timer"
+msgstr "Сигнал створено через завершення відліку часу таймером"
+
+#: stdio-common/psiginfo.c:148
+msgid "Signal generated by the completion of an asynchronous I/O request"
+msgstr "Сигнал створено через завершення виконання асинхронного запиту щодо введення-виведення"
+
+#: stdio-common/psiginfo.c:152
+msgid "Signal generated by the arrival of a message on an empty message queue"
+msgstr "Сигнал створено через появу повідомлення щодо спорожнення черги повідомлень"
+
+#: stdio-common/psiginfo.c:157
+msgid "Signal sent by tkill()"
+msgstr "Сигнал надіслано tkill()"
+
+#: stdio-common/psiginfo.c:162
+msgid "Signal generated by the completion of an asynchronous name lookup request"
+msgstr "Сигнал створено через завершення виконання асинхронного запиту щодо пошуку назви"
+
+#: stdio-common/psiginfo.c:168
+msgid "Signal generated by the completion of an I/O request"
+msgstr "Сигнал створено через завершення виконання запиту щодо введення-виведення"
+
+#: stdio-common/psiginfo.c:174
+msgid "Signal sent by the kernel"
+msgstr "Сигнал надіслано ядром"
+
+#: stdio-common/psiginfo.c:198
+#, c-format
+msgid "Unknown signal %d\n"
+msgstr "Невідомий сигнал %d\n"
+
+#: stdio-common/psignal.c:43
+#, c-format
+msgid "%s%sUnknown signal %d\n"
+msgstr "%s%sНевідомий сигнал %d\n"
+
+#: stdio-common/psignal.c:44
+msgid "Unknown signal"
+msgstr "Невідомий сигнал"
+
+#: string/_strerror.c:45 sysdeps/mach/_strerror.c:86
+msgid "Unknown error "
+msgstr "Невідома помилка "
+
+#: string/strerror.c:42
+msgid "Unknown error"
+msgstr "Невідома помилка"
+
+#: string/strsignal.c:60
+#, c-format
+msgid "Real-time signal %d"
+msgstr "Сигнал реального часу %d"
+
+#: string/strsignal.c:64
+#, c-format
+msgid "Unknown signal %d"
+msgstr "Невідомий сигнал %d"
+
+#: sunrpc/auth_unix.c:111 sunrpc/clnt_tcp.c:123 sunrpc/clnt_udp.c:135
+#: sunrpc/clnt_unix.c:124 sunrpc/svc_tcp.c:188 sunrpc/svc_tcp.c:233
+#: sunrpc/svc_udp.c:162 sunrpc/svc_unix.c:188 sunrpc/svc_unix.c:229
+#: sunrpc/xdr.c:631 sunrpc/xdr.c:791 sunrpc/xdr_array.c:97
+#: sunrpc/xdr_rec.c:152 sunrpc/xdr_ref.c:76
+msgid "out of memory\n"
+msgstr "не вистачає пам'яті\n"
+
+#: sunrpc/auth_unix.c:349
+msgid "auth_unix.c: Fatal marshalling problem"
+msgstr "auth_unix.c: критична помилка упорядкування (marshalling)"
+
+#: sunrpc/clnt_perr.c:95 sunrpc/clnt_perr.c:111
+#, c-format
+msgid "%s: %s; low version = %lu, high version = %lu"
+msgstr "%s: %s; нижня версія = %lu, верхня версія = %lu"
+
+#: sunrpc/clnt_perr.c:102
+#, c-format
+msgid "%s: %s; why = %s\n"
+msgstr "%s: %s; причина = %s\n"
+
+#: sunrpc/clnt_perr.c:104
+#, c-format
+msgid "%s: %s; why = (unknown authentication error - %d)\n"
+msgstr "%s: %s; причина = (невідома помилка розпізнавання - %d)\n"
+
+#: sunrpc/clnt_perr.c:153
+msgid "RPC: Success"
+msgstr "RPC: виконано"
+
+#: sunrpc/clnt_perr.c:156
+msgid "RPC: Can't encode arguments"
+msgstr "RPC: не вдалося закодувати аргументи"
+
+#: sunrpc/clnt_perr.c:160
+msgid "RPC: Can't decode result"
+msgstr "RPC: не вдалося декодувати результат"
+
+#: sunrpc/clnt_perr.c:164
+msgid "RPC: Unable to send"
+msgstr "RPC: не вдалося надіслати"
+
+#: sunrpc/clnt_perr.c:168
+msgid "RPC: Unable to receive"
+msgstr "RPC: не вдалося отримати"
+
+#: sunrpc/clnt_perr.c:172
+msgid "RPC: Timed out"
+msgstr "RPC: вичерпано час очікування на відповідь"
+
+#: sunrpc/clnt_perr.c:176
+msgid "RPC: Incompatible versions of RPC"
+msgstr "RPC: несумісні версії RPC"
+
+#: sunrpc/clnt_perr.c:180
+msgid "RPC: Authentication error"
+msgstr "RPC: помилка розпізнавання"
+
+#: sunrpc/clnt_perr.c:184
+msgid "RPC: Program unavailable"
+msgstr "RPC: програма недоступна"
+
+#: sunrpc/clnt_perr.c:188
+msgid "RPC: Program/version mismatch"
+msgstr "RPC: невідповідність програми або версії"
+
+#: sunrpc/clnt_perr.c:192
+msgid "RPC: Procedure unavailable"
+msgstr "RPC: процедура недоступна"
+
+#: sunrpc/clnt_perr.c:196
+msgid "RPC: Server can't decode arguments"
+msgstr "RPC: серверу не вдалося декодувати аргументи"
+
+#: sunrpc/clnt_perr.c:200
+msgid "RPC: Remote system error"
+msgstr "RPC: помилка на віддаленій системі"
+
+#: sunrpc/clnt_perr.c:204
+msgid "RPC: Unknown host"
+msgstr "RPC: невідомий вузол мережі"
+
+#: sunrpc/clnt_perr.c:208
+msgid "RPC: Unknown protocol"
+msgstr "RPC: невідомий протокол"
+
+#: sunrpc/clnt_perr.c:212
+msgid "RPC: Port mapper failure"
+msgstr "RPC: помилка засобу пов’язування портів"
+
+#: sunrpc/clnt_perr.c:216
+msgid "RPC: Program not registered"
+msgstr "RPC: програму не зареєстровано"
+
+#: sunrpc/clnt_perr.c:220
+msgid "RPC: Failed (unspecified error)"
+msgstr "RPC: невизначена помилка"
+
+#: sunrpc/clnt_perr.c:261
+msgid "RPC: (unknown error code)"
+msgstr "RPC: (невідомий код помилки)"
+
+#: sunrpc/clnt_perr.c:333
+msgid "Authentication OK"
+msgstr "Розпізнавання пройдено"
+
+#: sunrpc/clnt_perr.c:336
+msgid "Invalid client credential"
+msgstr "Некоректні реєстраційні дані клієнта"
+
+#: sunrpc/clnt_perr.c:340
+msgid "Server rejected credential"
+msgstr "Сервером відмовлено у розпізнаванні"
+
+#: sunrpc/clnt_perr.c:344
+msgid "Invalid client verifier"
+msgstr "Некоректний засіб перевірки клієнта"
+
+#: sunrpc/clnt_perr.c:348
+msgid "Server rejected verifier"
+msgstr "Сервером відмовлено у засобі перевірки"
+
+#: sunrpc/clnt_perr.c:352
+msgid "Client credential too weak"
+msgstr "Захист реєстраційних даних клієнта є нестійким до зламу"
+
+#: sunrpc/clnt_perr.c:356
+msgid "Invalid server verifier"
+msgstr "Некоректний засіб перевірки сервера"
+
+#: sunrpc/clnt_perr.c:360
+msgid "Failed (unspecified error)"
+msgstr "Невизначена помилка"
+
+#: sunrpc/clnt_raw.c:115
+msgid "clnt_raw.c: fatal header serialization error"
+msgstr "clnt_raw.c: критична помилка під час перетворення заголовка у послідовну форму"
+
+#: sunrpc/pm_getmaps.c:77
+msgid "pmap_getmaps.c: rpc problem"
+msgstr "pmap_getmaps.c: проблема rpc"
+
+#: sunrpc/pmap_clnt.c:127
+msgid "Cannot register service"
+msgstr "Не вдалося зареєструвати службу"
+
+#: sunrpc/pmap_rmt.c:243
+msgid "Cannot create socket for broadcast rpc"
+msgstr "Не вдалося створити сокет для трансляції rpc"
+
+#: sunrpc/pmap_rmt.c:250
+msgid "Cannot set socket option SO_BROADCAST"
+msgstr "Не вдалося встановити параметр сокета SO_BROADCAST"
+
+#: sunrpc/pmap_rmt.c:302
+msgid "Cannot send broadcast packet"
+msgstr "Не вдалося надіслати трансляційний пакет"
+
+#: sunrpc/pmap_rmt.c:327
+msgid "Broadcast poll problem"
+msgstr "Проблема з трансляційним опитуванням"
+
+#: sunrpc/pmap_rmt.c:340
+msgid "Cannot receive reply to broadcast"
+msgstr "Не вдалося отримати відповідь на трансляцію даних"
+
+#: sunrpc/rpc_main.c:281
+#, c-format
+msgid "%s: output would overwrite %s\n"
+msgstr "%s: виведення даних перезапише %s\n"
+
+#: sunrpc/rpc_main.c:288
+#, c-format
+msgid "%s: unable to open %s: %m\n"
+msgstr "%s: не вдалося відкрити %s: %m\n"
+
+#: sunrpc/rpc_main.c:300
+#, c-format
+msgid "%s: while writing output %s: %m"
+msgstr "%s: під час записування даних результату %s: %m"
+
+#: sunrpc/rpc_main.c:336 sunrpc/rpc_main.c:375
+#, c-format
+msgid "cannot find C preprocessor: %s\n"
+msgstr "не вдалося знайти препроцесор C: %s\n"
+
+#: sunrpc/rpc_main.c:411
+#, c-format
+msgid "%s: C preprocessor failed with signal %d\n"
+msgstr "%s: помилка препроцесора C з сигналом %d\n"
+
+#: sunrpc/rpc_main.c:414
+#, c-format
+msgid "%s: C preprocessor failed with exit code %d\n"
+msgstr "%s: помилка препроцесора C з кодом виходу %d\n"
+
+#: sunrpc/rpc_main.c:454
+#, c-format
+msgid "illegal nettype: `%s'\n"
+msgstr "помилкове значення типу мережі: «%s»\n"
+
+#: sunrpc/rpc_main.c:1089
+#, c-format
+msgid "rpcgen: too many defines\n"
+msgstr "rpcgen: забагато визначень (define)\n"
+
+#: sunrpc/rpc_main.c:1101
+#, c-format
+msgid "rpcgen: arglist coding error\n"
+msgstr "rpcgen: помилка кодування списку аргументів\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 "файл «%s» вже існує, його може бути перезаписано\n"
+
+#: sunrpc/rpc_main.c:1179
+#, c-format
+msgid "Cannot specify more than one input file!\n"
+msgstr "Не можна вказувати декілька файлів вхідних даних!\n"
+
+#: sunrpc/rpc_main.c:1349
+#, c-format
+msgid "This implementation doesn't support newstyle or MT-safe code!\n"
+msgstr "У цій реалізації не передбачено підтримки коду у новому стилі або безпечного для багатопоточної обробки!\n"
+
+#: sunrpc/rpc_main.c:1358
+#, c-format
+msgid "Cannot use netid flag with inetd flag!\n"
+msgstr "Не можна використовувати прапорець netid разом з прапорцем inetd!\n"
+
+#: sunrpc/rpc_main.c:1367
+#, c-format
+msgid "Cannot use netid flag without TIRPC!\n"
+msgstr "Не можна використовувати прапорець netid без TIRPC!\n"
+
+#: sunrpc/rpc_main.c:1374
+#, c-format
+msgid "Cannot use table flags with newstyle!\n"
+msgstr "Не можна використовувати прапорці таблиць, якщо використовується новий стиль!\n"
+
+#: sunrpc/rpc_main.c:1393
+#, c-format
+msgid "\"infile\" is required for template generation flags.\n"
+msgstr "Для прапорців створення шаблонів потрібен аргумент файла вхідних даних.\n"
+
+#: sunrpc/rpc_main.c:1398
+#, c-format
+msgid "Cannot have more than one file generation flag!\n"
+msgstr "Не можна вказувати декілька прапорців створення файлів!\n"
+
+#: sunrpc/rpc_main.c:1407
+#, c-format
+msgid "usage: %s infile\n"
+msgstr "користування: %s файл_вхідних_даних\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][-Dname[=значення]] [-i розмір] [-I [-K секунди]] [-Y шлях] файл_вхідних_даних\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 файл_виведених_даних] [файл_вхідних_даних]\n"
+
+#: sunrpc/rpc_main.c:1412
+#, c-format
+msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
+msgstr "\t%s [-s тип_мережі]* [-o файл_виведених_даних] [файл_вхідних_даних]\n"
+
+#: sunrpc/rpc_main.c:1413
+#, c-format
+msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
+msgstr "\t%s [-n ід_мережі]* [-o файл_виведених_даних] [файл_вхідних_даних]\n"
+
+#: sunrpc/rpc_main.c:1421
+#, c-format
+msgid "options:\n"
+msgstr "параметри:\n"
+
+#: sunrpc/rpc_main.c:1422
+#, c-format
+msgid "-a\t\tgenerate all files, including samples\n"
+msgstr "-a\t\tстворити усі файли, зокрема зразки\n"
+
+#: sunrpc/rpc_main.c:1423
+#, c-format
+msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n"
+msgstr "-b\t\tрежим зворотної сумісності (створити код для SunOS 4.1)\n"
+
+#: sunrpc/rpc_main.c:1424
+#, c-format
+msgid "-c\t\tgenerate XDR routines\n"
+msgstr "-c\t\tстворити підпрограми XDR\n"
+
+#: sunrpc/rpc_main.c:1425
+#, c-format
+msgid "-C\t\tANSI C mode\n"
+msgstr "-C\t\tрежим ANSI C\n"
+
+#: sunrpc/rpc_main.c:1426
+#, c-format
+msgid "-Dname[=value]\tdefine a symbol (same as #define)\n"
+msgstr "-Dname[=значення]\tвизначити символ (те саме, що і #define)\n"
+
+#: sunrpc/rpc_main.c:1427
+#, c-format
+msgid "-h\t\tgenerate header file\n"
+msgstr "-h\t\tстворити файл заголовка\n"
+
+#: sunrpc/rpc_main.c:1428
+#, c-format
+msgid "-i size\t\tsize at which to start generating inline code\n"
+msgstr "-i розмір\t\tрозмір, при досягненні якого слід розпочати створювати вбудований код\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\tстворити код для підтримки inetd на сервері (для SunOS 4.1)\n"
+
+#: sunrpc/rpc_main.c:1430
+#, c-format
+msgid "-K seconds\tserver exits after K seconds of inactivity\n"
+msgstr "-K секунди\tсервер завершує роботу після вказаної кількості секунд неактивності\n"
+
+#: sunrpc/rpc_main.c:1431
+#, c-format
+msgid "-l\t\tgenerate client side stubs\n"
+msgstr "-l\t\tстворити заглушки на боці клієнта\n"
+
+#: sunrpc/rpc_main.c:1432
+#, c-format
+msgid "-L\t\tserver errors will be printed to syslog\n"
+msgstr "-L\t\tпомилки сервера буде виведено до загальносистемного журналу\n"
+
+#: sunrpc/rpc_main.c:1433
+#, c-format
+msgid "-m\t\tgenerate server side stubs\n"
+msgstr "-m\t\tстворити заглушки на боці сервера\n"
+
+#: sunrpc/rpc_main.c:1434
+#, c-format
+msgid "-M\t\tgenerate MT-safe code\n"
+msgstr "-M\t\tстворити безпечний для багатопотокової обробки код\n"
+
+#: sunrpc/rpc_main.c:1435
+#, c-format
+msgid "-n netid\tgenerate server code that supports named netid\n"
+msgstr "-n ід_мережі\tстворити код сервера з підтримкою іменованих ідентифікаторів мережі\n"
+
+#: sunrpc/rpc_main.c:1436
+#, c-format
+msgid "-N\t\tsupports multiple arguments and call-by-value\n"
+msgstr "-N\t\tпідтримка декількох аргументів та виклику за значенням\n"
+
+#: sunrpc/rpc_main.c:1437
+#, c-format
+msgid "-o outfile\tname of the output file\n"
+msgstr "-o результат\tназва файла результатів\n"
+
+#: sunrpc/rpc_main.c:1438
+#, c-format
+msgid "-s nettype\tgenerate server code that supports named nettype\n"
+msgstr "-s тип_мережі\tстворити код сервера з підтримкою іменованих типів мережі\n"
+
+#: sunrpc/rpc_main.c:1439
+#, c-format
+msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n"
+msgstr "-Sc\t\tстворити код заглушки клієнта з використанням віддалених процедур\n"
+
+#: sunrpc/rpc_main.c:1440
+#, c-format
+msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n"
+msgstr "-Ss\t\tстворити код заглушки, який визначає віддалені процедури\n"
+
+#: sunrpc/rpc_main.c:1441
+#, c-format
+msgid "-Sm \t\tgenerate makefile template \n"
+msgstr "-Sm \t\tстворити шаблон makefile \n"
+
+#: sunrpc/rpc_main.c:1442
+#, c-format
+msgid "-t\t\tgenerate RPC dispatch table\n"
+msgstr "-t\t\tстворити таблицю розподілу RPC\n"
+
+#: sunrpc/rpc_main.c:1443
+#, c-format
+msgid "-T\t\tgenerate code to support RPC dispatch tables\n"
+msgstr "-T\t\tстворити код підтримки таблиць розподілу RPC\n"
+
+#: sunrpc/rpc_main.c:1444
+#, c-format
+msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n"
+msgstr "-Y шлях\t\tназва каталогу для пошуку препроцесора C (cpp)\n"
+
+#: sunrpc/rpc_main.c:1446
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"\n"
+"Настанови щодо звітування про вади наведено тут:\n"
+"%s.\n"
+
+#: sunrpc/rpc_scan.c:112
+msgid "constant or identifier expected"
+msgstr "мало бути вказано константу або ідентифікатор"
+
+#: sunrpc/rpc_scan.c:308
+msgid "illegal character in file: "
+msgstr "некоректний символ у файлі: "
+
+#: sunrpc/rpc_scan.c:347 sunrpc/rpc_scan.c:373
+msgid "unterminated string constant"
+msgstr "незавершена рядкова константа"
+
+#: sunrpc/rpc_scan.c:379
+msgid "empty char string"
+msgstr "порожній рядок символів"
+
+#: sunrpc/rpc_scan.c:521 sunrpc/rpc_scan.c:531
+msgid "preprocessor error"
+msgstr "помилка препроцесора"
+
+#: sunrpc/rpcinfo.c:246 sunrpc/rpcinfo.c:392
+#, c-format
+msgid "program %lu is not available\n"
+msgstr "програма %lu недоступна\n"
+
+#: sunrpc/rpcinfo.c:273 sunrpc/rpcinfo.c:319 sunrpc/rpcinfo.c:342
+#: sunrpc/rpcinfo.c:416 sunrpc/rpcinfo.c:462 sunrpc/rpcinfo.c:485
+#: sunrpc/rpcinfo.c:519
+#, c-format
+msgid "program %lu version %lu is not available\n"
+msgstr "програма %lu версії %lu недоступна\n"
+
+#: sunrpc/rpcinfo.c:524
+#, c-format
+msgid "program %lu version %lu ready and waiting\n"
+msgstr "програма %lu версії %lu готова і очікує\n"
+
+#: sunrpc/rpcinfo.c:565 sunrpc/rpcinfo.c:572
+msgid "rpcinfo: can't contact portmapper"
+msgstr "rpcinfo: не вдалося зв’язатися з portmapper"
+
+#: sunrpc/rpcinfo.c:579
+msgid "No remote programs registered.\n"
+msgstr "Віддалених програм не зареєстровано.\n"
+
+#: sunrpc/rpcinfo.c:583
+msgid " program vers proto port\n"
+msgstr " програм верс прото порт\n"
+
+#: sunrpc/rpcinfo.c:622
+msgid "(unknown)"
+msgstr "(невідомий)"
+
+#: sunrpc/rpcinfo.c:646
+#, c-format
+msgid "rpcinfo: broadcast failed: %s\n"
+msgstr "rpcinfo: не вдалося розпочати трансляцію даних: %s\n"
+
+#: sunrpc/rpcinfo.c:667
+msgid "Sorry. You are not root\n"
+msgstr "Вибачте. У вас немає прав доступу root.\n"
+
+#: sunrpc/rpcinfo.c:674
+#, c-format
+msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
+msgstr "rpcinfo: не вдалося вилучити реєстрацію для програми %s, версія %s\n"
+
+#: sunrpc/rpcinfo.c:683
+msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
+msgstr "Користування: rpcinfo [ -n номер_порту ] -u вузол номер_програми [ номер_версії ]\n"
+
+#: sunrpc/rpcinfo.c:685
+msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
+msgstr " rpcinfo [ -n номер_порту ] -t вузол номер_програми [ номер_версії ]\n"
+
+#: sunrpc/rpcinfo.c:687
+msgid " rpcinfo -p [ host ]\n"
+msgstr " rpcinfo -p [ вузол ]\n"
+
+#: sunrpc/rpcinfo.c:688
+msgid " rpcinfo -b prognum versnum\n"
+msgstr " rpcinfo -b номер_програми номер_версії\n"
+
+#: sunrpc/rpcinfo.c:689
+msgid " rpcinfo -d prognum versnum\n"
+msgstr " rpcinfo -d номер_програми номер_версії\n"
+
+#: sunrpc/rpcinfo.c:714
+#, c-format
+msgid "rpcinfo: %s is unknown service\n"
+msgstr "rpcinfo: %s є невідомою службою\n"
+
+#: sunrpc/rpcinfo.c:751
+#, c-format
+msgid "rpcinfo: %s is unknown host\n"
+msgstr "rpcinfo: %s є невідомим вузлом\n"
+
+#: sunrpc/svc_run.c:71
+msgid "svc_run: - out of memory"
+msgstr "svc_run: - нестача пам’яті"
+
+#: sunrpc/svc_run.c:91
+msgid "svc_run: - poll failed"
+msgstr "svc_run: - помилка опитування"
+
+#: sunrpc/svc_simple.c:80
+#, c-format
+msgid "can't reassign procedure number %ld\n"
+msgstr "не вдалося повторно призначити номер процедури %ld\n"
+
+#: sunrpc/svc_simple.c:90
+msgid "couldn't create an rpc server\n"
+msgstr "не вдалося створити сервер rpc\n"
+
+#: sunrpc/svc_simple.c:98
+#, c-format
+msgid "couldn't register prog %ld vers %ld\n"
+msgstr "не вдалося зареєструвати програму %ld, версія %ld\n"
+
+#: sunrpc/svc_simple.c:106
+msgid "registerrpc: out of memory\n"
+msgstr "registerrpc: недостатньо оперативної пам’яті\n"
+
+#: sunrpc/svc_simple.c:169
+#, c-format
+msgid "trouble replying to prog %d\n"
+msgstr "проблеми з відповіддю програмі %d\n"
+
+#: sunrpc/svc_simple.c:178
+#, c-format
+msgid "never registered prog %d\n"
+msgstr "незареєстрована програма %d\n"
+
+#: sunrpc/svc_tcp.c:164
+msgid "svc_tcp.c - tcp socket creation problem"
+msgstr "svc_tcp.c - проблема зі створенням сокета tcp"
+
+#: sunrpc/svc_tcp.c:179
+msgid "svc_tcp.c - cannot getsockname or listen"
+msgstr "svc_tcp.c - не вдалося виконати getsockname або listen"
+
+#: sunrpc/svc_udp.c:137
+msgid "svcudp_create: socket creation problem"
+msgstr "svcudp_create: проблема зі створенням сокета"
+
+#: sunrpc/svc_udp.c:151
+msgid "svcudp_create - cannot getsockname"
+msgstr "svcudp_create - не вдалося виконати getsockname"
+
+#: sunrpc/svc_udp.c:183
+msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
+msgstr "svcudp_create: xp_pad є надто малим для IP_PKTINFO\n"
+
+#: sunrpc/svc_udp.c:495
+msgid "enablecache: cache already enabled"
+msgstr "enablecache: кешування вже увімкнено"
+
+#: sunrpc/svc_udp.c:501
+msgid "enablecache: could not allocate cache"
+msgstr "enablecache: не вдалося розмістити кеш"
+
+#: sunrpc/svc_udp.c:510
+msgid "enablecache: could not allocate cache data"
+msgstr "enablecache: не вдалося розмістити кешовані дані"
+
+#: sunrpc/svc_udp.c:518
+msgid "enablecache: could not allocate cache fifo"
+msgstr "enablecache: не вдалося розмістити кеш fifo"
+
+#: sunrpc/svc_udp.c:554
+msgid "cache_set: victim not found"
+msgstr "cache_set: жертву не знайдено"
+
+#: sunrpc/svc_udp.c:565
+msgid "cache_set: victim alloc failed"
+msgstr "cache_set: не вдалося отримати пам’ять для жертви"
+
+#: sunrpc/svc_udp.c:572
+msgid "cache_set: could not allocate new rpc_buffer"
+msgstr "cache_set: не вдалося розмістити новий rpc_buffer"
+
+#: sunrpc/svc_unix.c:162
+msgid "svc_unix.c - AF_UNIX socket creation problem"
+msgstr "svc_unix.c - проблема зі створенням сокета AF_UNIX"
+
+#: sunrpc/svc_unix.c:178
+msgid "svc_unix.c - cannot getsockname or listen"
+msgstr "svc_unix.c - не вдалося виконати getsockname або listen"
+
+#: sysdeps/generic/siglist.h:28
+msgid "Hangup"
+msgstr "Від’єднання"
+
+#: sysdeps/generic/siglist.h:29
+msgid "Interrupt"
+msgstr "Перервати"
+
+#: sysdeps/generic/siglist.h:30
+msgid "Quit"
+msgstr "Вихід"
+
+#: sysdeps/generic/siglist.h:31
+msgid "Illegal instruction"
+msgstr "Помилкова інструкція"
+
+#: sysdeps/generic/siglist.h:32
+msgid "Trace/breakpoint trap"
+msgstr "Переривання на точці зупину"
+
+#: sysdeps/generic/siglist.h:33
+msgid "Aborted"
+msgstr "Перервано"
+
+#: sysdeps/generic/siglist.h:34
+msgid "Floating point exception"
+msgstr "Помилка обчислень з рухомою комою"
+
+#: sysdeps/generic/siglist.h:35
+msgid "Killed"
+msgstr "Вбито"
+
+#: sysdeps/generic/siglist.h:36
+msgid "Bus error"
+msgstr "Помилка каналу обміну даними"
+
+#: sysdeps/generic/siglist.h:37
+msgid "Segmentation fault"
+msgstr "Помилка адресування"
+
+#. 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}.
+#: sysdeps/generic/siglist.h:38 sysdeps/gnu/errlist.c:359
+msgid "Broken pipe"
+msgstr "Канал обірвано"
+
+#: sysdeps/generic/siglist.h:39
+msgid "Alarm clock"
+msgstr "Сигнал таймера"
+
+#: sysdeps/generic/siglist.h:40
+msgid "Terminated"
+msgstr "Припинено"
+
+#: sysdeps/generic/siglist.h:41
+msgid "Urgent I/O condition"
+msgstr "Термінова дія з введення-виведення"
+
+#: sysdeps/generic/siglist.h:42
+msgid "Stopped (signal)"
+msgstr "Зупинено (сигнал)"
+
+#: sysdeps/generic/siglist.h:43
+msgid "Stopped"
+msgstr "Зупинено"
+
+#: sysdeps/generic/siglist.h:44
+msgid "Continued"
+msgstr "Поновлено"
+
+#: sysdeps/generic/siglist.h:45
+msgid "Child exited"
+msgstr "Дочірній процес завершив роботу"
+
+#: sysdeps/generic/siglist.h:46
+msgid "Stopped (tty input)"
+msgstr "Зупинено (ввід з термінала)"
+
+#: sysdeps/generic/siglist.h:47
+msgid "Stopped (tty output)"
+msgstr "Зупинено (вивід на термінал)"
+
+#: sysdeps/generic/siglist.h:48
+msgid "I/O possible"
+msgstr "Можливе введення-виведення"
+
+#: sysdeps/generic/siglist.h:49
+msgid "CPU time limit exceeded"
+msgstr "Перевищено обмеження часу використання процесора"
+
+#: sysdeps/generic/siglist.h:50
+msgid "File size limit exceeded"
+msgstr "Перевищено обмеження на розмір файла"
+
+#: sysdeps/generic/siglist.h:51
+msgid "Virtual timer expired"
+msgstr "Збіг час на віртуальному таймері"
+
+#: sysdeps/generic/siglist.h:52
+msgid "Profiling timer expired"
+msgstr "Збіг час профілювання"
+
+#: sysdeps/generic/siglist.h:53
+msgid "User defined signal 1"
+msgstr "Визначений користувачем сигнал 1"
+
+#: sysdeps/generic/siglist.h:54
+msgid "User defined signal 2"
+msgstr "Визначений користувачем сигнал 2"
+
+#: sysdeps/generic/siglist.h:58
+msgid "EMT trap"
+msgstr "Пастка емулятора"
+
+#: sysdeps/generic/siglist.h:61
+msgid "Bad system call"
+msgstr "Помилковий системний виклик"
+
+#: sysdeps/generic/siglist.h:64
+msgid "Stack fault"
+msgstr "Помилка роботи зі стеком"
+
+#: sysdeps/generic/siglist.h:67
+msgid "Information request"
+msgstr "Інформаційний запит"
+
+#: sysdeps/generic/siglist.h:69
+msgid "Power failure"
+msgstr "Відмова живлення"
+
+#: sysdeps/generic/siglist.h:72
+msgid "Resource lost"
+msgstr "Втрачено ресурс"
+
+#: sysdeps/generic/siglist.h:75
+msgid "Window changed"
+msgstr "Зміна вікна"
+
+#. TRANS Operation not permitted; only the owner of the file (or other resource)
+#. TRANS or processes with special privileges can perform the operation.
+#: sysdeps/gnu/errlist.c:25
+msgid "Operation not permitted"
+msgstr "Дію заборонено"
+
+#. TRANS No process matches the specified process ID.
+#: sysdeps/gnu/errlist.c:45
+msgid "No such process"
+msgstr "Немає такого процесу"
+
+#. 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}.
+#: sysdeps/gnu/errlist.c:60
+msgid "Interrupted system call"
+msgstr "Перерваний системний виклик"
+
+#. TRANS Input/output error; usually used for physical read or write errors.
+#: sysdeps/gnu/errlist.c:69
+msgid "Input/output error"
+msgstr "Помилка введення-виведення"
+
+#. 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.
+#: sysdeps/gnu/errlist.c:82
+msgid "No such device or address"
+msgstr "Немає такого пристрою чи адреси"
+
+#. 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 on
+#. TRANS @gnuhurdsystems{}.
+#: sysdeps/gnu/errlist.c:94
+msgid "Argument list too long"
+msgstr "Занадто довгий список аргументів"
+
+#. TRANS Invalid executable file format. This condition is detected by the
+#. TRANS @code{exec} functions; see @ref{Executing a File}.
+#: sysdeps/gnu/errlist.c:104
+msgid "Exec format error"
+msgstr "Помилка, пов’язана з форматом виконуваних файлів"
+
+#. 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).
+#: sysdeps/gnu/errlist.c:115
+msgid "Bad file descriptor"
+msgstr "Помилковий дескриптор файла"
+
+#. 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.
+#: sysdeps/gnu/errlist.c:126
+msgid "No child processes"
+msgstr "Немає дочірніх процесів"
+
+#. 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.
+#: sysdeps/gnu/errlist.c:138
+msgid "Resource deadlock avoided"
+msgstr "Уникнено взаємне блокування ресурсу"
+
+#. TRANS No memory available. The system cannot allocate more virtual memory
+#. TRANS because its capacity is full.
+#: sysdeps/gnu/errlist.c:148
+msgid "Cannot allocate memory"
+msgstr "Не вдалося розподілити пам’ять"
+
+#. TRANS Bad address; an invalid pointer was detected.
+#. TRANS On @gnuhurdsystems{}, this error never happens; you get a signal instead.
+#: sysdeps/gnu/errlist.c:167
+msgid "Bad address"
+msgstr "Неправильна адреса"
+
+#. 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:178
+msgid "Block device required"
+msgstr "Потрібен блоковий пристрій"
+
+#. 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.
+#: sysdeps/gnu/errlist.c:189
+msgid "Device or resource busy"
+msgstr "Пристрій або ресурс зайнято"
+
+#. TRANS File exists; an existing file was specified in a context where it only
+#. TRANS makes sense to specify a new file.
+#: sysdeps/gnu/errlist.c:199
+msgid "File exists"
+msgstr "Файл вже існує"
+
+#. 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:210
+msgid "Invalid cross-device link"
+msgstr "Некоректне перехресне посилання на пристрій"
+
+#. TRANS The wrong type of device was given to a function that expects a
+#. TRANS particular sort of device.
+#: sysdeps/gnu/errlist.c:220
+msgid "No such device"
+msgstr "Пристрою не знайдено"
+
+#. TRANS A file that isn't a directory was specified when a directory is required.
+#: sysdeps/gnu/errlist.c:229
+msgid "Not a directory"
+msgstr "Не є каталогом"
+
+#. TRANS File is a directory; you cannot open a directory for writing,
+#. TRANS or create or remove hard links to it.
+#: sysdeps/gnu/errlist.c:239
+msgid "Is a directory"
+msgstr "Є каталогом"
+
+#. TRANS Invalid argument. This is used to indicate various kinds of problems
+#. TRANS with passing the wrong argument to a library function.
+#: sysdeps/gnu/errlist.c:249
+msgid "Invalid argument"
+msgstr "Некоректний аргумент"
+
+#. 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:264
+msgid "Too many open files"
+msgstr "Забагато відкритих файлів"
+
+#. 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:275
+msgid "Too many open files in system"
+msgstr "У системі забагато відкритих файлів"
+
+#. TRANS Inappropriate I/O control operation, such as trying to set terminal
+#. TRANS modes on an ordinary file.
+#: sysdeps/gnu/errlist.c:285
+msgid "Inappropriate ioctl for device"
+msgstr "Неналежна дія з керування введенням-виведенням (ioctl) для пристрою"
+
+#. 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:298
+msgid "Text file busy"
+msgstr "Текстовий файл зайнято"
+
+#. TRANS File too big; the size of a file would be larger than allowed by the system.
+#: sysdeps/gnu/errlist.c:307
+msgid "File too large"
+msgstr "Файл є надто великим"
+
+#. TRANS No space left on device; write operation on a file failed because the
+#. TRANS disk is full.
+#: sysdeps/gnu/errlist.c:317
+msgid "No space left on device"
+msgstr "Недостатньо місця на пристрої"
+
+#. TRANS Invalid seek operation (such as on a pipe).
+#: sysdeps/gnu/errlist.c:326
+msgid "Illegal seek"
+msgstr "Некоректне позиціювання"
+
+#. TRANS An attempt was made to modify something on a read-only file system.
+#: sysdeps/gnu/errlist.c:335
+msgid "Read-only file system"
+msgstr "Файлова система тільки для зчитування"
+
+#. 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}).
+#: sysdeps/gnu/errlist.c:346
+msgid "Too many links"
+msgstr "Забагато посилань"
+
+#. TRANS Domain error; 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:369
+msgid "Numerical argument out of domain"
+msgstr "Числовий аргумент поза доменом"
+
+#. TRANS Range error; used by mathematical functions when the result value is
+#. TRANS not representable because of overflow or underflow.
+#: sysdeps/gnu/errlist.c:379
+msgid "Numerical result out of range"
+msgstr "Числовий результат поза дозволеним діапазоном"
+
+#. 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 @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:416
+msgid "Resource temporarily unavailable"
+msgstr "Ресурс тимчасово недоступний"
+
+#. 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:429
+msgid "Operation would block"
+msgstr "Дія заблокує"
+
+#. 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:445
+msgid "Operation now in progress"
+msgstr "Дія зараз виконується"
+
+#. TRANS An operation is already in progress on an object that has non-blocking
+#. TRANS mode selected.
+#: sysdeps/gnu/errlist.c:455
+msgid "Operation already in progress"
+msgstr "Дія вже виконується"
+
+#. TRANS A file that isn't a socket was specified when a socket is required.
+#: sysdeps/gnu/errlist.c:464
+msgid "Socket operation on non-socket"
+msgstr "Дія на об'єкті, який не є сокетом"
+
+#. TRANS The size of a message sent on a socket was larger than the supported
+#. TRANS maximum size.
+#: sysdeps/gnu/errlist.c:474
+msgid "Message too long"
+msgstr "Задовге повідомлення"
+
+#. TRANS The socket type does not support the requested communications protocol.
+#: sysdeps/gnu/errlist.c:483
+msgid "Protocol wrong type for socket"
+msgstr "Помилковий тип протоколу сокета"
+
+#. 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:493
+msgid "Protocol not available"
+msgstr "Протокол недоступний"
+
+#. 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:504
+msgid "Protocol not supported"
+msgstr "Протокол не підтримується"
+
+#. TRANS The socket type is not supported.
+#: sysdeps/gnu/errlist.c:513
+msgid "Socket type not supported"
+msgstr "Тип сокета не підтримується"
+
+#. 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:527
+msgid "Operation not supported"
+msgstr "Дія не підтримується"
+
+#. TRANS The socket communications protocol family you requested is not supported.
+#: sysdeps/gnu/errlist.c:536
+msgid "Protocol family not supported"
+msgstr "Сімейство протоколів не підтримується"
+
+#. 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:546
+msgid "Address family not supported by protocol"
+msgstr "Сімейство адрес не підтримується протоколом"
+
+#. TRANS The requested socket address is already in use. @xref{Socket Addresses}.
+#: sysdeps/gnu/errlist.c:555
+msgid "Address already in use"
+msgstr "Адресу вже використано"
+
+#. 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:566
+msgid "Cannot assign requested address"
+msgstr "Не вдалося призначити вказану адресу"
+
+#. TRANS A socket operation failed because the network was down.
+#: sysdeps/gnu/errlist.c:575
+msgid "Network is down"
+msgstr "Мережу вимкнено"
+
+#. TRANS A socket operation failed because the subnet containing the remote host
+#. TRANS was unreachable.
+#: sysdeps/gnu/errlist.c:585
+msgid "Network is unreachable"
+msgstr "Не вдалося отримати доступ до мережі"
+
+#. TRANS A network connection was reset because the remote host crashed.
+#: sysdeps/gnu/errlist.c:594
+msgid "Network dropped connection on reset"
+msgstr "Під час перезапуску з’єднання було розірвано"
+
+#. TRANS A network connection was aborted locally.
+#: sysdeps/gnu/errlist.c:603
+msgid "Software caused connection abort"
+msgstr "З’єднання розірвано програмним забезпеченням"
+
+#. 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:614
+msgid "Connection reset by peer"
+msgstr "Вузол розірвав з’єднання"
+
+#. 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:625
+msgid "No buffer space available"
+msgstr "У буфері не залишилося місця"
+
+#. TRANS You tried to connect a socket that is already connected.
+#. TRANS @xref{Connecting}.
+#: sysdeps/gnu/errlist.c:635
+msgid "Transport endpoint is already connected"
+msgstr "Кінцеву точку передавання вже з’єднано"
+
+#. 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:647
+msgid "Transport endpoint is not connected"
+msgstr "Кінцеву точку передавання не з’єднано"
+
+#. 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:658
+msgid "Destination address required"
+msgstr "Слід вказати адресу призначення"
+
+#. TRANS The socket has already been shut down.
+#: sysdeps/gnu/errlist.c:667
+msgid "Cannot send after transport endpoint shutdown"
+msgstr "Надсилання неможливе після завершення роботи кінцевої точки каналу зв’язку"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:676
+msgid "Too many references: cannot splice"
+msgstr "Забагато посилань: не вдалося об’єднати"
+
+#. 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 "Перевищено інтервал очікування з'єднання"
+
+#. 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 "У з'єднанні відмовлено"
+
+#. 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 "Забагато рівнів символічних посилань"
+
+#. 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 "Файл є занадто великим"
+
+#. TRANS The remote host for a requested network connection is down.
+#: sysdeps/gnu/errlist.c:726
+msgid "Host is down"
+msgstr "Вузол вимкнено"
+
+#. TRANS The remote host for a requested network connection is not reachable.
+#: sysdeps/gnu/errlist.c:735
+msgid "No route to host"
+msgstr "Немає маршруту до вузла"
+
+#. 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 "Каталог непорожній"
+
+#. 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 "Забагато процесів"
+
+#. 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 "Забагато користувачів"
+
+#. TRANS The user's disk quota was exceeded.
+#: sysdeps/gnu/errlist.c:775
+msgid "Disk quota exceeded"
+msgstr "Перевищено квоту диска"
+
+#. TRANS Stale file handle. 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 "Застарілий дескриптор файла"
+
+#. 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 "Об’єкт є віддаленим"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:809
+msgid "RPC struct is bad"
+msgstr "помилкова структура RPC"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:818
+msgid "RPC version wrong"
+msgstr "помилкова версія RPC"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:827
+msgid "RPC program not available"
+msgstr "програма RPC недоступна"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:836
+msgid "RPC program version wrong"
+msgstr "помилкова версія програми RPC"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:845
+msgid "RPC bad procedure for program"
+msgstr "Помилкова процедура RPC для програми"
+
+#. TRANS No locks available. 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:857
+msgid "No locks available"
+msgstr "Блокування недоступні"
+
+#. 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}.
+#: sysdeps/gnu/errlist.c:870
+msgid "Inappropriate file type or format"
+msgstr "Неналежний тип або формат файла"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:879
+msgid "Authentication error"
+msgstr "Помилка розпізнавання"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:888
+msgid "Need authenticator"
+msgstr "Потрібен запис розпізнавання"
+
+#. TRANS Function not implemented. 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:901
+msgid "Function not implemented"
+msgstr "Функцію не реалізовано"
+
+#. TRANS Not supported. 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:921
+msgid "Not supported"
+msgstr "Не підтримується"
+
+#. 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:931
+msgid "Invalid or incomplete multibyte or wide character"
+msgstr "Некоректний або неповний багатобайтовий або широкий символ"
+
+#. 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:945
+msgid "Inappropriate operation for background process"
+msgstr "Невідповідна дія для фонового процесу"
+
+#. 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:956
+msgid "Translator died"
+msgstr "Транслятор несподівано завершив роботу"
+
+#. 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:967
+msgid "?"
+msgstr "?"
+
+#. TRANS You did @strong{what}?
+#: sysdeps/gnu/errlist.c:976
+msgid "You really blew it this time"
+msgstr "Цього разу ви просто знищили усіх"
+
+#. TRANS Go home and have a glass of warm, dairy-fresh milk.
+#: sysdeps/gnu/errlist.c:985
+msgid "Computer bought the farm"
+msgstr "Комп’ютеру капець"
+
+#. TRANS This error code has no purpose.
+#: sysdeps/gnu/errlist.c:994
+msgid "Gratuitous error"
+msgstr "Безпричинна помилка"
+
+#: sysdeps/gnu/errlist.c:1002
+msgid "Bad message"
+msgstr "Помилкове повідомлення"
+
+#: sysdeps/gnu/errlist.c:1010
+msgid "Identifier removed"
+msgstr "Ідентифікатор вилучено"
+
+#: sysdeps/gnu/errlist.c:1018
+msgid "Multihop attempted"
+msgstr "Спроба кратного переходу"
+
+#: sysdeps/gnu/errlist.c:1026
+msgid "No data available"
+msgstr "Не виявлено даних"
+
+#: sysdeps/gnu/errlist.c:1034
+msgid "Link has been severed"
+msgstr "Зв’язок розірвано"
+
+#: sysdeps/gnu/errlist.c:1042
+msgid "No message of desired type"
+msgstr "Немає повідомлення бажаного типу"
+
+#: sysdeps/gnu/errlist.c:1050
+msgid "Out of streams resources"
+msgstr "Не вистачає ресурсів потоків"
+
+#: sysdeps/gnu/errlist.c:1058
+msgid "Device not a stream"
+msgstr "Пристрій не є потоковим"
+
+#: sysdeps/gnu/errlist.c:1066
+msgid "Value too large for defined data type"
+msgstr "Значення є надто великим для визначеного типу даних"
+
+#: sysdeps/gnu/errlist.c:1074
+msgid "Protocol error"
+msgstr "Помилка протоколу"
+
+#: sysdeps/gnu/errlist.c:1082
+msgid "Timer expired"
+msgstr "Відлік на таймері завершено"
+
+#. TRANS Operation canceled; 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:1094
+msgid "Operation canceled"
+msgstr "Дію скасовано"
+
+#: sysdeps/gnu/errlist.c:1102
+msgid "Interrupted system call should be restarted"
+msgstr "Перерваний системний виклик має бути перезапущено"
+
+#: sysdeps/gnu/errlist.c:1110
+msgid "Channel number out of range"
+msgstr "Номер каналу лежить поза припустимим діапазоном"
+
+#: sysdeps/gnu/errlist.c:1118
+msgid "Level 2 not synchronized"
+msgstr "Рівень 2 не синхронізовано"
+
+#: sysdeps/gnu/errlist.c:1126
+msgid "Level 3 halted"
+msgstr "Рівень 3 перервано"
+
+#: sysdeps/gnu/errlist.c:1134
+msgid "Level 3 reset"
+msgstr "Рівень 3 скинуто"
+
+#: sysdeps/gnu/errlist.c:1142
+msgid "Link number out of range"
+msgstr "Кількість зв’язків поза припустимим діапазоном"
+
+#: sysdeps/gnu/errlist.c:1150
+msgid "Protocol driver not attached"
+msgstr "Драйвер протоколу не долучено"
+
+#: sysdeps/gnu/errlist.c:1158
+msgid "No CSI structure available"
+msgstr "Структура CSI недоступна"
+
+#: sysdeps/gnu/errlist.c:1166
+msgid "Level 2 halted"
+msgstr "Рівень 2 перервано"
+
+#: sysdeps/gnu/errlist.c:1174
+msgid "Invalid exchange"
+msgstr "Некоректний обмін"
+
+#: sysdeps/gnu/errlist.c:1182
+msgid "Invalid request descriptor"
+msgstr "Некоректний дескриптор запиту"
+
+#: sysdeps/gnu/errlist.c:1190
+msgid "Exchange full"
+msgstr "Повний обмін"
+
+#: sysdeps/gnu/errlist.c:1198
+msgid "No anode"
+msgstr "Немає anode"
+
+#: sysdeps/gnu/errlist.c:1206
+msgid "Invalid request code"
+msgstr "Некоректний код запиту"
+
+#: sysdeps/gnu/errlist.c:1214
+msgid "Invalid slot"
+msgstr "Некоректний слот"
+
+#: sysdeps/gnu/errlist.c:1222
+msgid "File locking deadlock error"
+msgstr "Помилка взаємного блокування файла"
+
+#: sysdeps/gnu/errlist.c:1230
+msgid "Bad font file format"
+msgstr "Помилковий формат файла шрифту"
+
+#: sysdeps/gnu/errlist.c:1238
+msgid "Machine is not on the network"
+msgstr "Комп’ютер не перебуває у мережі"
+
+#: sysdeps/gnu/errlist.c:1246
+msgid "Package not installed"
+msgstr "Пакунок не встановлено"
+
+#: sysdeps/gnu/errlist.c:1254
+msgid "Advertise error"
+msgstr "Помилка під час оголошення"
+
+#: sysdeps/gnu/errlist.c:1262
+msgid "Srmount error"
+msgstr "Помилка srmount"
+
+#: sysdeps/gnu/errlist.c:1270
+msgid "Communication error on send"
+msgstr "Помилка обміну даними під час надсилання"
+
+#: sysdeps/gnu/errlist.c:1278
+msgid "RFS specific error"
+msgstr "Специфічна для RFS помилка"
+
+#: sysdeps/gnu/errlist.c:1286
+msgid "Name not unique on network"
+msgstr "Назва не є унікальною у мережі"
+
+#: sysdeps/gnu/errlist.c:1294
+msgid "File descriptor in bad state"
+msgstr "Файловий дескриптор у помилковому стані"
+
+#: sysdeps/gnu/errlist.c:1302
+msgid "Remote address changed"
+msgstr "Віддалену адресу змінено"
+
+#: sysdeps/gnu/errlist.c:1310
+msgid "Can not access a needed shared library"
+msgstr "Не вдалося отримати доступ до потрібної бібліотеки спільного використання"
+
+#: sysdeps/gnu/errlist.c:1318
+msgid "Accessing a corrupted shared library"
+msgstr "Доступ до пошкодженої бібліотеки спільного використання"
+
+#: sysdeps/gnu/errlist.c:1326
+msgid ".lib section in a.out corrupted"
+msgstr "Розділ .lib у a.out пошкоджено"
+
+#: sysdeps/gnu/errlist.c:1334
+msgid "Attempting to link in too many shared libraries"
+msgstr "Спроба компонування надто великої кількості бібліотек спільного використання"
+
+#: sysdeps/gnu/errlist.c:1342
+msgid "Cannot exec a shared library directly"
+msgstr "Не можна виконувати бібліотеку спільного використання безпосередньо"
+
+#: sysdeps/gnu/errlist.c:1350
+msgid "Streams pipe error"
+msgstr "Помилка каналу потоків"
+
+#: sysdeps/gnu/errlist.c:1358
+msgid "Structure needs cleaning"
+msgstr "Структура потребує чищення"
+
+#: sysdeps/gnu/errlist.c:1366
+msgid "Not a XENIX named type file"
+msgstr "Не є файлом іменованих типів XENIX"
+
+#: sysdeps/gnu/errlist.c:1374
+msgid "No XENIX semaphores available"
+msgstr "Семафори XENIX недоступні"
+
+#: sysdeps/gnu/errlist.c:1382
+msgid "Is a named type file"
+msgstr "Є файлом іменованих типів"
+
+#: sysdeps/gnu/errlist.c:1390
+msgid "Remote I/O error"
+msgstr "Помилка під час віддаленого введення-виведення"
+
+#: sysdeps/gnu/errlist.c:1398
+msgid "No medium found"
+msgstr "Не знайдено носія"
+
+#: sysdeps/gnu/errlist.c:1406
+msgid "Wrong medium type"
+msgstr "Помилковий тип носія"
+
+#: sysdeps/gnu/errlist.c:1414
+msgid "Required key not available"
+msgstr "Потрібний ключ недоступний"
+
+#: sysdeps/gnu/errlist.c:1422
+msgid "Key has expired"
+msgstr "Строк дії ключа вичерпано"
+
+#: sysdeps/gnu/errlist.c:1430
+msgid "Key has been revoked"
+msgstr "Ключ було відкликано"
+
+#: sysdeps/gnu/errlist.c:1438
+msgid "Key was rejected by service"
+msgstr "Служба відмовилася прийняти ключ"
+
+#: sysdeps/gnu/errlist.c:1446
+msgid "Owner died"
+msgstr "Власник завершив роботу"
+
+#: sysdeps/gnu/errlist.c:1454
+msgid "State not recoverable"
+msgstr "Невідновлюваний стан"
+
+#: sysdeps/gnu/errlist.c:1462
+msgid "Operation not possible due to RF-kill"
+msgstr "Дію не може бути виконано через RF-kill"
+
+#: sysdeps/gnu/errlist.c:1470
+msgid "Memory page has hardware error"
+msgstr "На сторінці пам’яті виявлено апаратну помилку"
+
+#: sysdeps/mach/_strerror.c:56
+msgid "Error in unknown error system: "
+msgstr "Помилка у невідомій системі помилок: "
+
+#: sysdeps/posix/gai_strerror-strs.h:1
+msgid "Address family for hostname not supported"
+msgstr "Сімейство адрес не підтримується для цього вузла"
+
+#: sysdeps/posix/gai_strerror-strs.h:2
+msgid "Temporary failure in name resolution"
+msgstr "Тимчасова помилка розв'язання назв"
+
+#: sysdeps/posix/gai_strerror-strs.h:3
+msgid "Bad value for ai_flags"
+msgstr "Неправильне значення ai_flags"
+
+#: sysdeps/posix/gai_strerror-strs.h:4
+msgid "Non-recoverable failure in name resolution"
+msgstr "Критична помилка при розв'язанні назв"
+
+#: sysdeps/posix/gai_strerror-strs.h:5
+msgid "ai_family not supported"
+msgstr "ai_family не підтримується"
+
+#: sysdeps/posix/gai_strerror-strs.h:6
+msgid "Memory allocation failure"
+msgstr "Помилка виділення пам'яті"
+
+#: sysdeps/posix/gai_strerror-strs.h:7
+msgid "No address associated with hostname"
+msgstr "З даною назвою вузла не пов'язано жодної адреси"
+
+#: sysdeps/posix/gai_strerror-strs.h:8
+msgid "Name or service not known"
+msgstr "Невідома назва чи сервіс"
+
+#: sysdeps/posix/gai_strerror-strs.h:9
+msgid "Servname not supported for ai_socktype"
+msgstr "Servname не підтримується для ai_socktype"
+
+#: sysdeps/posix/gai_strerror-strs.h:10
+msgid "ai_socktype not supported"
+msgstr "ai_socktype не підтримується"
+
+#: sysdeps/posix/gai_strerror-strs.h:11
+msgid "System error"
+msgstr "Системна помилка"
+
+#: sysdeps/posix/gai_strerror-strs.h:12
+msgid "Processing request in progress"
+msgstr "Триває обробка запиту"
+
+#: sysdeps/posix/gai_strerror-strs.h:13
+msgid "Request canceled"
+msgstr "Запит скасовано"
+
+#: sysdeps/posix/gai_strerror-strs.h:14
+msgid "Request not canceled"
+msgstr "Запит не скасовано"
+
+#: sysdeps/posix/gai_strerror-strs.h:15
+msgid "All requests done"
+msgstr "Всі запити завершені"
+
+#: sysdeps/posix/gai_strerror-strs.h:16
+msgid "Interrupted by a signal"
+msgstr "Перервано за сигналом"
+
+#: sysdeps/posix/gai_strerror-strs.h:17
+msgid "Parameter string not correctly encoded"
+msgstr "Неправильно закодований рядок параметрів"
+
+#: sysdeps/unix/sysv/linux/i386/readelflib.c:65
+#, c-format
+msgid "%s is for unknown machine %d.\n"
+msgstr "%s призначено для невідомої архітектури %d.\n"
+
+#: sysdeps/unix/sysv/linux/lddlibc4.c:60
+#, c-format
+msgid ""
+"Usage: lddlibc4 FILE\n"
+"\n"
+msgstr ""
+"Користування: lddlibc4 ФАЙЛ\n"
+"\n"
+
+#: sysdeps/unix/sysv/linux/lddlibc4.c:81
+#, c-format
+msgid "cannot open `%s'"
+msgstr "не вдалося відкрити «%s»"
+
+#: sysdeps/unix/sysv/linux/lddlibc4.c:85
+#, c-format
+msgid "cannot read header from `%s'"
+msgstr "не вдалося прочитати заголовок з «%s»"
+
+#: timezone/zdump.c:246
+msgid "lacks alphabetic at start"
+msgstr "не містить літери на початку"
+
+#: timezone/zdump.c:248
+msgid "has fewer than 3 alphabetics"
+msgstr "містить менше 3 літер"
+
+#: timezone/zdump.c:250
+msgid "has more than 6 alphabetics"
+msgstr "містить більше 6 літер"
+
+#: timezone/zdump.c:258
+msgid "differs from POSIX standard"
+msgstr "суперечить стандарту POSIX"
+
+#: timezone/zdump.c:264
+#, c-format
+msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
+msgstr "%s: попередження: скорочення зони «%s» «%s» %s\n"
+
+#: timezone/zdump.c:273
+#, c-format
+msgid ""
+"%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"
+"\n"
+"Report bugs to %s.\n"
+msgstr ""
+"%s: користування: %s [ --version ] [ --help ] [ -v ] [ -c [початковий рік,]кінцевий рік ] назва_зони ...\n"
+"\n"
+"Про вади повідомляйте за адресою %s.\n"
+
+#: timezone/zdump.c:340
+#, c-format
+msgid "%s: wild -c argument %s\n"
+msgstr "%s: помилковий аргумент -c %s\n"
+
+#: timezone/zdump.c:426
+msgid "Error writing to standard output"
+msgstr "Помилка під час спроби запису до стандартного виведення"
+
+#: timezone/zdump.c:439
+#, c-format
+msgid "%s: use of -v on system with floating time_t other than float or double\n"
+msgstr "%s: використання -v у системі з числом з рухомою крапкою time_t, відмінним від типу float або double\n"
+
+#: timezone/zic.c:361
+#, c-format
+msgid "%s: Memory exhausted: %s\n"
+msgstr "%s: вичерпано пам’ять: %s\n"
+
+#: timezone/zic.c:401
+#, c-format
+msgid "\"%s\", line %d: %s"
+msgstr "«%s», рядок %d: %s"
+
+#: timezone/zic.c:404
+#, c-format
+msgid " (rule from \"%s\", line %d)"
+msgstr " (правило з «%s», рядок %d)"
+
+#: timezone/zic.c:415
+msgid "warning: "
+msgstr "попередження: "
+
+#: timezone/zic.c:425
+#, c-format
+msgid ""
+"%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
+"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
+"\n"
+"Report bugs to %s.\n"
+msgstr ""
+"%s: користування: %s [ --version ] [ --help ] [ -v ] [ -l місцевий час ] [ -p правила_posix ] \\\n"
+"\t[ -d каталог ] [ -L високос_секунди ] [ -y yearistype ] [ назва файла ... ]\n"
+"\n"
+"Про вади повідомляйте за адресою %s.\n"
+
+#: timezone/zic.c:460
+msgid "wild compilation-time specification of zic_t"
+msgstr "помилкова специфікації під час збирання для zic_t"
+
+#: timezone/zic.c:479
+#, c-format
+msgid "%s: More than one -d option specified\n"
+msgstr "%s: вказано декілька параметрів -d\n"
+
+#: timezone/zic.c:489
+#, c-format
+msgid "%s: More than one -l option specified\n"
+msgstr "%s: вказано декілька параметрів -l\n"
+
+#: timezone/zic.c:499
+#, c-format
+msgid "%s: More than one -p option specified\n"
+msgstr "%s: вказано декілька параметрів -p\n"
+
+#: timezone/zic.c:509
+#, c-format
+msgid "%s: More than one -y option specified\n"
+msgstr "%s: вказано декілька параметрів -y\n"
+
+#: timezone/zic.c:519
+#, c-format
+msgid "%s: More than one -L option specified\n"
+msgstr "%s: вказано декілька параметрів -L\n"
+
+#: timezone/zic.c:566
+msgid "link to link"
+msgstr "посилання на посилання"
+
+#: timezone/zic.c:629
+msgid "hard link failed, symbolic link used"
+msgstr "створення жорсткого посилання зазнало невдачі, використано символічне посилання"
+
+#: timezone/zic.c:637
+#, c-format
+msgid "%s: Can't link from %s to %s: %s\n"
+msgstr "%s: не можна створити посилання з %s до %s: %s\n"
+
+#: timezone/zic.c:697 timezone/zic.c:699
+msgid "same rule name in multiple files"
+msgstr "правило з однією назвою зберігається у декількох файлах"
+
+#: timezone/zic.c:740
+msgid "unruly zone"
+msgstr "зона без правил"
+
+#: timezone/zic.c:747
+#, c-format
+msgid "%s in ruleless zone"
+msgstr "%s у зоні без правил"
+
+#: timezone/zic.c:767
+msgid "standard input"
+msgstr "стандартне джерело даних"
+
+#: timezone/zic.c:772
+#, c-format
+msgid "%s: Can't open %s: %s\n"
+msgstr "%s: не вдалося відкрити %s: %s\n"
+
+#: timezone/zic.c:783
+msgid "line too long"
+msgstr "рядок надто довгий"
+
+#: timezone/zic.c:803
+msgid "input line of unknown type"
+msgstr "рядок вхідних даних невідомого типу"
+
+#: timezone/zic.c:819
+#, c-format
+msgid "%s: Leap line in non leap seconds file %s\n"
+msgstr "%s: високосний рядок у файлі без високосних секунд %s\n"
+
+#: timezone/zic.c:826 timezone/zic.c:1243 timezone/zic.c:1265
+#, c-format
+msgid "%s: panic: Invalid l_value %d\n"
+msgstr "%s: паніка: некоректне значення l_value %d\n"
+
+#: timezone/zic.c:834
+#, c-format
+msgid "%s: Error reading %s\n"
+msgstr "%s: помилка під час читання %s\n"
+
+#: timezone/zic.c:841
+#, c-format
+msgid "%s: Error closing %s: %s\n"
+msgstr "%s: помилка під час спроби закрити %s: %s\n"
+
+#: timezone/zic.c:846
+msgid "expected continuation line not found"
+msgstr "очікуваного рядка продовження не знайдено"
+
+#: timezone/zic.c:887 timezone/zic.c:2413 timezone/zic.c:2427
+msgid "time overflow"
+msgstr "переповнення запису часу"
+
+#: timezone/zic.c:891
+msgid "24:00 not handled by pre-1998 versions of zic"
+msgstr "У zic до 1998 року не підтримується 24:00"
+
+#: timezone/zic.c:894
+msgid "values over 24 hours not handled by pre-2007 versions of zic"
+msgstr "значення, більші за 24 годин не обробляються версіями zic до 2007 року"
+
+#: timezone/zic.c:905
+msgid "wrong number of fields on Rule line"
+msgstr "помилкова кількість полів у рядку Rule"
+
+#: timezone/zic.c:909
+msgid "nameless rule"
+msgstr "правило без назви"
+
+#: timezone/zic.c:914
+msgid "invalid saved time"
+msgstr "помилковий літній час"
+
+#: timezone/zic.c:932
+msgid "wrong number of fields on Zone line"
+msgstr "помилкова кількість полів у рядку Zone"
+
+#: timezone/zic.c:938
+#, c-format
+msgid "\"Zone %s\" line and -l option are mutually exclusive"
+msgstr "Рядок «Zone %s» і параметр -l не можна використовувати разом"
+
+#: timezone/zic.c:946
+#, c-format
+msgid "\"Zone %s\" line and -p option are mutually exclusive"
+msgstr "Рядок «Zone %s» і параметр -p не можна використовувати разом"
+
+#: timezone/zic.c:958
+#, c-format
+msgid "duplicate zone name %s (file \"%s\", line %d)"
+msgstr "дублювання назв поясів %s (файл «%s», рядок %d)"
+
+#: timezone/zic.c:972
+msgid "wrong number of fields on Zone continuation line"
+msgstr "помилкова кількість полів у рядку продовження Zone"
+
+#: timezone/zic.c:1009
+msgid "invalid UTC offset"
+msgstr "некоректне значення різниці з Грінвичем"
+
+#: timezone/zic.c:1012
+msgid "invalid abbreviation format"
+msgstr "некоректний формат абревіатури"
+
+#: timezone/zic.c:1041
+msgid "Zone continuation line end time is not after end time of previous line"
+msgstr "кінцевий час у рядку продовження Zone не перевищує кінцевого часу у попередньому рядку"
+
+#: timezone/zic.c:1066
+msgid "wrong number of fields on Leap line"
+msgstr "помилкова кількість полів у рядку Leap"
+
+#: timezone/zic.c:1075
+msgid "invalid leaping year"
+msgstr "некоректний високосний рік"
+
+#: timezone/zic.c:1095 timezone/zic.c:1197
+msgid "invalid month name"
+msgstr "некоректна назва місяця"
+
+#: timezone/zic.c:1108 timezone/zic.c:1310 timezone/zic.c:1324
+msgid "invalid day of month"
+msgstr "некоректний день місяця"
+
+#: timezone/zic.c:1113
+msgid "time before zero"
+msgstr "час до нульового"
+
+#: timezone/zic.c:1117
+msgid "time too small"
+msgstr "надто малий час"
+
+#: timezone/zic.c:1121
+msgid "time too large"
+msgstr "надто великий час"
+
+#: timezone/zic.c:1125 timezone/zic.c:1226
+msgid "invalid time of day"
+msgstr "некоректний час доби"
+
+#: timezone/zic.c:1144
+msgid "illegal CORRECTION field on Leap line"
+msgstr "некоректне поле CORRECTION у рядку Leap"
+
+#: timezone/zic.c:1149
+msgid "illegal Rolling/Stationary field on Leap line"
+msgstr "некоректне поле Rolling/Stationary у рядку Leap"
+
+#: timezone/zic.c:1163
+msgid "wrong number of fields on Link line"
+msgstr "помилкова кількість полів у рядку Link"
+
+#: timezone/zic.c:1167
+msgid "blank FROM field on Link line"
+msgstr "порожнє поле FROM у рядку Link"
+
+#: timezone/zic.c:1171
+msgid "blank TO field on Link line"
+msgstr "порожнє поле TO у рядку Link"
+
+#: timezone/zic.c:1247
+msgid "invalid starting year"
+msgstr "некоректний рік початку"
+
+#: timezone/zic.c:1269
+msgid "invalid ending year"
+msgstr "некоректний рік завершення"
+
+#: timezone/zic.c:1273
+msgid "starting year greater than ending year"
+msgstr "значення початкового року перевищує значення кінцевого року"
+
+#: timezone/zic.c:1280
+msgid "typed single year"
+msgstr "типізований одинарний рік"
+
+#: timezone/zic.c:1315
+msgid "invalid weekday name"
+msgstr "некоректна назва дня тижня"
+
+#: timezone/zic.c:1481
+#, c-format
+msgid "%s: Can't remove %s: %s\n"
+msgstr "%s: не вдалося вилучити %s: %s\n"
+
+#: timezone/zic.c:1491
+#, c-format
+msgid "%s: Can't create %s: %s\n"
+msgstr "%s: не вдалося створити %s: %s\n"
+
+#: timezone/zic.c:1683
+#, c-format
+msgid "%s: Error writing %s\n"
+msgstr "%s: помилка під час спроби запису %s\n"
+
+#: timezone/zic.c:1966
+msgid "no POSIX environment variable for zone"
+msgstr "немає змінної середовища POSIX для часового поясу"
+
+#: timezone/zic.c:2133
+msgid "can't determine time zone abbreviation to use just after until time"
+msgstr "не вдалося визначити скорочення часового поясу, яким слід скористатися безпосередньо після часу завершення"
+
+#: timezone/zic.c:2177
+msgid "too many transitions?!"
+msgstr "забагато переходів?!"
+
+#: timezone/zic.c:2192
+msgid "internal error - addtype called with bad isdst"
+msgstr "внутрішня помилка - addtype викликано з помилковим значенням isdst"
+
+#: timezone/zic.c:2196
+msgid "internal error - addtype called with bad ttisstd"
+msgstr "внутрішня помилка - addtype викликано з помилковим значенням ttisstd"
+
+#: timezone/zic.c:2200
+msgid "internal error - addtype called with bad ttisgmt"
+msgstr "внутрішня помилка - addtype викликано з помилковим значенням ttisgmt"
+
+#: timezone/zic.c:2219
+msgid "too many local time types"
+msgstr "забагато типів місцевого часу"
+
+#: timezone/zic.c:2223
+msgid "UTC offset out of range"
+msgstr "зсув відносно UTC поза межами припустимого діапазону"
+
+#: timezone/zic.c:2247
+msgid "too many leap seconds"
+msgstr "забагато високосних секунд"
+
+#: timezone/zic.c:2253
+msgid "repeated leap second moment"
+msgstr "повторюваний момент високосної секунди"
+
+#: timezone/zic.c:2303
+msgid "Wild result from command execution"
+msgstr "Неочікуваний результат виконання команди"
+
+#: timezone/zic.c:2304
+#, c-format
+msgid "%s: command was '%s', result was %d\n"
+msgstr "%s: команда — «%s», результат — %d\n"
+
+#: timezone/zic.c:2395
+msgid "Odd number of quotation marks"
+msgstr "Непарна кількість лапок"
+
+#: timezone/zic.c:2472
+msgid "use of 2/29 in non leap-year"
+msgstr "використання 29 лютого у невисокосному році"
+
+#: timezone/zic.c:2507
+msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
+msgstr "правило виходить за межі початку або кінця місяця: це не працюватиме з версіями zic до 2004 року"
+
+#: timezone/zic.c:2538
+msgid "time zone abbreviation lacks alphabetic at start"
+msgstr "скорочення назви часового поясу не починається з літери"
+
+#: timezone/zic.c:2540
+msgid "time zone abbreviation has fewer than 3 alphabetics"
+msgstr "скорочення назви часового поясу складається з менше ніж 3 літер"
+
+#: timezone/zic.c:2542
+msgid "time zone abbreviation has too many alphabetics"
+msgstr "скорочення назви часового поясу складається з надто великої кількості літер"
+
+#: timezone/zic.c:2552
+msgid "time zone abbreviation differs from POSIX standard"
+msgstr "скорочення назви часового поясу суперечить стандарту POSIX"
+
+#: timezone/zic.c:2564
+msgid "too many, or too long, time zone abbreviations"
+msgstr "забагато скорочень назв часових поясів або вони є надто довгими"
+
+#: timezone/zic.c:2604
+#, c-format
+msgid "%s: Can't create directory %s: %s\n"
+msgstr "%s: не вдалося створити каталог %s: %s\n"
+
+#: timezone/zic.c:2625
+#, c-format
+msgid "%s: %d did not sign extend correctly\n"
+msgstr "%s: %d неправильно визначило знак поширення\n"
diff --git a/libc/ports/ChangeLog b/libc/ports/ChangeLog
index fcb58cc0a..9b638017f 100644
--- a/libc/ports/ChangeLog
+++ b/libc/ports/ChangeLog
@@ -1,3 +1,10 @@
+2013-09-02 Mike Frysinger <vapier@gentoo.org>
+
+ * sysdeps/unix/sysv/linux/hppa/syscalls.list (fanotify_mark): New
+ entry.
+ * sysdeps/unix/sysv/linux/hppa/Versions (libc): Add GLIBC_2.19 and
+ fanotify_mark.
+
2013-01-02 Joseph Myers <joseph@codesourcery.com>
* README: Update copyright dates in example.
diff --git a/libc/ports/ChangeLog.alpha b/libc/ports/ChangeLog.alpha
index 4a4db09fb..e5c7bc1da 100644
--- a/libc/ports/ChangeLog.alpha
+++ b/libc/ports/ChangeLog.alpha
@@ -1,3 +1,11 @@
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/alpha/alphaev67/stpncpy.S: Fix then/than typos.
+
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/unix/sysv/linux/alpha/bits/netdb.h: Fix typos.
+
2013-07-02 Richard Henderson <rth@redhat.com>
* sysdeps/alpha/fpu/libm-test-ulps: Update.
diff --git a/libc/ports/ChangeLog.am33 b/libc/ports/ChangeLog.am33
index 3206e0b74..79bcc0a10 100644
--- a/libc/ports/ChangeLog.am33
+++ b/libc/ports/ChangeLog.am33
@@ -1,3 +1,11 @@
+2013-08-29 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/unix/sysv/linux/am33/bits/fcntl.h: Fix typos.
+
+2013-08-21 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/am33/fpu/fraiseexcpt.c: Fix typos.
+
2013-06-05 Joseph Myers <joseph@codesourcery.com>
* sysdeps/am33/elf/start.S: Remove trailing whitespace.
diff --git a/libc/ports/ChangeLog.arm b/libc/ports/ChangeLog.arm
index 1e7a35c6a..8ef09b116 100644
--- a/libc/ports/ChangeLog.arm
+++ b/libc/ports/ChangeLog.arm
@@ -1,3 +1,33 @@
+2013-08-30 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/arm/armv6t2/strlen.S: Use sfi_pld and sfi_breg macros.
+
+ * sysdeps/arm/armv6t2/strlen.S: Include <arm-features.h> first thing.
+ [NO_THUMB]: Adapt code for ARM mode.
+
+2013-08-30 Will Newton <will.newton@linaro.org>
+
+ [BZ #15909]
+ * sysdeps/unix/sysv/linux/arm/clone.S (__clone): Use blx
+ instead of mov lr, pc.
+
+2013-08-30 Will Newton <will.newton@linaro.org>
+
+ * sysdeps/arm/armv6t2/strlen.S: New file.
+
+2013-08-29 Thomas Schwinge <thomas@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/arm/ldsodefs.h (VALID_ELF_OSABI)
+ (MORE_ELF_HEADER_DATA): Use ELFOSABI_GNU instead of
+ ELFOSABI_LINUX.
+
+2013-08-28 Kyle McMartin <kyle@redhat.com>
+ Carlos O'Donell <carlos@redhat.com>
+
+ [BZ #15905]
+ * sysdeps/arm/dl-machine [!RTLD_BOOTSTRAP] (elf_machine_rel):
+ Pass GLRO(dl_hwcap) to the IFUNC resolver.
+
2013-07-03 Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/include/bits/setjmp.h [_ISOMAC] (JMP_BUF_REGLIST):
diff --git a/libc/ports/ChangeLog.hppa b/libc/ports/ChangeLog.hppa
index d40fb9950..ea4ef886f 100644
--- a/libc/ports/ChangeLog.hppa
+++ b/libc/ports/ChangeLog.hppa
@@ -1,3 +1,14 @@
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/unix/sysv/linux/hppa/clone.S: Fix typos.
+ * sysdeps/unix/sysv/linux/hppa/nptl/pthread.h: Likewise.
+
+2013-08-21 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/hppa/dl-lookupcfg.h: Fix typos.
+ * sysdeps/hppa/fpu/fraiseexcpt.c: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/sysdep.h: Likewise.
+
2013-07-23 Carlos O'Donell <carlos@redhat.com>
* sysdeps/hppa/fpu/libm-test-ulps: Regenerate.
diff --git a/libc/ports/ChangeLog.ia64 b/libc/ports/ChangeLog.ia64
index 92b81cba9..efe352e6b 100644
--- a/libc/ports/ChangeLog.ia64
+++ b/libc/ports/ChangeLog.ia64
@@ -1,3 +1,30 @@
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/ia64/fpu/libm_reduce.S: Fix typos.
+ * sysdeps/ia64/fpu/s_erfcf.S: Likewise.
+ * sysdeps/ia64/fpu/s_erfcl.S: Likewise.
+ * sysdeps/ia64/fpu/s_erfc.S: Likewise.
+ * sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c: Likewise.
+
+2013-08-29 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/ia64/fpu/e_acoshl.S: Fix typos.
+ * sysdeps/ia64/fpu/e_logf.S: Likewise.
+ * sysdeps/ia64/fpu/e_log.S: Likewise.
+ * sysdeps/ia64/fpu/libm_lgammaf.S: Likewise.
+ * sysdeps/ia64/fpu/libm_lgammal.S: Likewise.
+ * sysdeps/ia64/fpu/s_log1p.S: Likewise.
+ * sysdeps/ia64/fpu/w_tgammal.S: Likewise.
+
+2013-08-21 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/ia64/fpu/e_atanhl.S: Fix typos.
+ * sysdeps/ia64/fpu/e_log2l.S: Likewise.
+ * sysdeps/ia64/fpu/e_logl.S: Likewise.
+ * sysdeps/ia64/fpu/fraiseexcpt.c: Likewise.
+ * sysdeps/ia64/fpu/libm_lgammal.S: Likewise.
+ * sysdeps/ia64/fpu/s_log1pl.S: Likewise.
+
2013-07-04 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/ia64/sys/ptrace.h (PTRACE_LISTEN):
diff --git a/libc/ports/ChangeLog.m68k b/libc/ports/ChangeLog.m68k
index 2666d38e8..ba9865a9d 100644
--- a/libc/ports/ChangeLog.m68k
+++ b/libc/ports/ChangeLog.m68k
@@ -1,3 +1,11 @@
+2013-09-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/m68k/mmap64.c: New file.
+
+2013-08-21 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/m68k/m680x0/fpu/fraiseexcpt.c: Fix typos.
+
2013-07-20 Andreas Schwab <schwab@linux-m68k.org>
* sysdeps/unix/sysv/linux/m68k/dl-static.c: New file.
diff --git a/libc/ports/ChangeLog.mips b/libc/ports/ChangeLog.mips
index 6e42b77de..5844bf589 100644
--- a/libc/ports/ChangeLog.mips
+++ b/libc/ports/ChangeLog.mips
@@ -1,3 +1,29 @@
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/mips/memcpy.S: Fix then/than typos.
+
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/mips/memcpy.S: Fix typos.
+
+2013-08-29 Thomas Schwinge <thomas@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/mips/ldsodefs.h (VALID_ELF_ABIVERSION):
+ Use ELFOSABI_GNU instead of ELFOSABI_LINUX.
+
+2013-08-29 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/mips/sys/asm.h: Fix typos.
+
+2013-08-22 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * sysdeps/mips/fpu_control.h: Document bits reserved for
+ architecture implementers.
+ (_FPU_RESERVED): Clear bit #21.
+ * sysdeps/mips/fpu/fedisblxcpt.c (fedisableexcept): Don't clear
+ reserved bits.
+ * sysdeps/mips/fpu/feenablxcpt.c (feenableexcept): Likewise.
+
2013-07-02 Joseph Myers <joseph@codesourcery.com>
* sysdeps/mips/mips32/libm-test-ulps: Regenerated.
diff --git a/libc/ports/ChangeLog.powerpc b/libc/ports/ChangeLog.powerpc
index e503682ce..375e9566e 100644
--- a/libc/ports/ChangeLog.powerpc
+++ b/libc/ports/ChangeLog.powerpc
@@ -1,3 +1,7 @@
+2013-08-30 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/powerpc/powerpc32/405/memcpy.S: Fix typos.
+
2013-08-17 Alexandre Oliva <aoliva@redhat.com>
PR 15483
diff --git a/libc/ports/ChangeLog.tile b/libc/ports/ChangeLog.tile
index a2ec5e18c..5ad254c5f 100644
--- a/libc/ports/ChangeLog.tile
+++ b/libc/ports/ChangeLog.tile
@@ -1,3 +1,7 @@
+2013-08-21 Ondřej Bílka <neleai@seznam.cz>
+
+ * sysdeps/tile/jmpbuf-offsets.h: Fix typos.
+
2013-07-22 Chris Metcalf <cmetcalf@tilera.com>
[BZ #15759]
diff --git a/libc/ports/sysdeps/alpha/alphaev67/stpncpy.S b/libc/ports/sysdeps/alpha/alphaev67/stpncpy.S
index 47841bbfa..336db7dd0 100644
--- a/libc/ports/sysdeps/alpha/alphaev67/stpncpy.S
+++ b/libc/ports/sysdeps/alpha/alphaev67/stpncpy.S
@@ -16,7 +16,7 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
-/* Copy no more then N bytes from SRC to DEST, returning the address of
+/* Copy no more than N bytes from SRC to DEST, returning the address of
the terminating '\0' in DEST. */
#include <sysdep.h>
diff --git a/libc/ports/sysdeps/am33/fpu/fraiseexcpt.c b/libc/ports/sysdeps/am33/fpu/fraiseexcpt.c
index f62e83a19..1610adf5e 100644
--- a/libc/ports/sysdeps/am33/fpu/fraiseexcpt.c
+++ b/libc/ports/sysdeps/am33/fpu/fraiseexcpt.c
@@ -35,7 +35,7 @@ __feraiseexcept (int excepts)
/* First: invalid exception. */
if (excepts & FE_INVALID)
{
- /* One example of a invalid operation is 0 * Infinity. */
+ /* One example of an invalid operation is 0 * Infinity. */
float x = HUGE_VALF, y = 0.0f;
__asm__ __volatile__ ("fmul %1,%0" : "+f" (x) : "f" (y));
}
diff --git a/libc/ports/sysdeps/arm/armv6t2/strlen.S b/libc/ports/sysdeps/arm/armv6t2/strlen.S
new file mode 100644
index 000000000..f2b3ab4b5
--- /dev/null
+++ b/libc/ports/sysdeps/arm/armv6t2/strlen.S
@@ -0,0 +1,169 @@
+/* Copyright (C) 2010-2011,2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/*
+ Assumes:
+ ARMv6T2, AArch32
+
+ */
+
+#include <arm-features.h> /* This might #define NO_THUMB. */
+#include <sysdep.h>
+
+#ifdef __ARMEB__
+#define S2LO lsl
+#define S2HI lsr
+#else
+#define S2LO lsr
+#define S2HI lsl
+#endif
+
+#ifndef NO_THUMB
+/* This code is best on Thumb. */
+ .thumb
+#else
+/* Using bne.w explicitly is desirable in Thumb mode because it helps
+ align the following label without a nop. In ARM mode there is no
+ such difference. */
+.macro bne.w label
+ bne \label
+.endm
+
+/* This clobbers the condition codes, which the real Thumb cbnz instruction
+ does not do. But it doesn't matter for any of the uses here. */
+.macro cbnz reg, label
+ cmp \reg, #0
+ bne \label
+.endm
+#endif
+
+/* Parameters and result. */
+#define srcin r0
+#define result r0
+
+/* Internal variables. */
+#define src r1
+#define data1a r2
+#define data1b r3
+#define const_m1 r12
+#define const_0 r4
+#define tmp1 r4 /* Overlaps const_0 */
+#define tmp2 r5
+
+ .text
+ .p2align 6
+ENTRY(strlen)
+ sfi_pld srcin, #0
+ strd r4, r5, [sp, #-8]!
+ cfi_adjust_cfa_offset (8)
+ cfi_rel_offset (r4, 0)
+ cfi_rel_offset (r5, 4)
+ cfi_remember_state
+ bic src, srcin, #7
+ mvn const_m1, #0
+ ands tmp1, srcin, #7 /* (8 - bytes) to alignment. */
+ sfi_pld src, #32
+ bne.w .Lmisaligned8
+ mov const_0, #0
+ mov result, #-8
+.Lloop_aligned:
+ /* Bytes 0-7. */
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B]
+ sfi_pld src, #64
+ add result, result, #8
+.Lstart_realigned:
+ uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */
+ sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */
+ uadd8 data1b, data1b, const_m1
+ sel data1b, data1a, const_m1 /* Only used if d1a == 0. */
+ cbnz data1b, .Lnull_found
+
+ /* Bytes 8-15. */
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B, #8]
+ uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */
+ add result, result, #8
+ sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */
+ uadd8 data1b, data1b, const_m1
+ sel data1b, data1a, const_m1 /* Only used if d1a == 0. */
+ cbnz data1b, .Lnull_found
+
+ /* Bytes 16-23. */
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B, #16]
+ uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */
+ add result, result, #8
+ sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */
+ uadd8 data1b, data1b, const_m1
+ sel data1b, data1a, const_m1 /* Only used if d1a == 0. */
+ cbnz data1b, .Lnull_found
+
+ /* Bytes 24-31. */
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B, #24]
+ add src, src, #32
+ uadd8 data1a, data1a, const_m1 /* Saturating GE<0:3> set. */
+ add result, result, #8
+ sel data1a, const_0, const_m1 /* Select based on GE<0:3>. */
+ uadd8 data1b, data1b, const_m1
+ sel data1b, data1a, const_m1 /* Only used if d1a == 0. */
+ cmp data1b, #0
+ beq .Lloop_aligned
+
+.Lnull_found:
+ cmp data1a, #0
+ itt eq
+ addeq result, result, #4
+ moveq data1a, data1b
+#ifndef __ARMEB__
+ rev data1a, data1a
+#endif
+ clz data1a, data1a
+ ldrd r4, r5, [sp], #8
+ cfi_adjust_cfa_offset (-8)
+ cfi_restore (r4)
+ cfi_restore (r5)
+ add result, result, data1a, lsr #3 /* Bits -> Bytes. */
+ DO_RET(lr)
+
+.Lmisaligned8:
+ cfi_restore_state
+ sfi_breg src, \
+ ldrd data1a, data1b, [\B]
+ and tmp2, tmp1, #3
+ rsb result, tmp1, #0
+ lsl tmp2, tmp2, #3 /* Bytes -> bits. */
+ tst tmp1, #4
+ sfi_pld src, #64
+ S2HI tmp2, const_m1, tmp2
+#ifdef NO_THUMB
+ mvn tmp1, tmp2
+ orr data1a, data1a, tmp1
+ itt ne
+ orrne data1b, data1b, tmp1
+#else
+ orn data1a, data1a, tmp2
+ itt ne
+ ornne data1b, data1b, tmp2
+#endif
+ movne data1a, const_m1
+ mov const_0, #0
+ b .Lstart_realigned
+
+END(strlen)
+libc_hidden_builtin_def (strlen)
diff --git a/libc/ports/sysdeps/arm/dl-machine.h b/libc/ports/sysdeps/arm/dl-machine.h
index d25152733..85dba67fb 100644
--- a/libc/ports/sysdeps/arm/dl-machine.h
+++ b/libc/ports/sysdeps/arm/dl-machine.h
@@ -503,7 +503,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
break;
case R_ARM_IRELATIVE:
value = map->l_addr + *reloc_addr;
- value = ((Elf32_Addr (*) (void)) value) ();
+ value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
*reloc_addr = value;
break;
#endif
diff --git a/libc/ports/sysdeps/hppa/dl-lookupcfg.h b/libc/ports/sysdeps/hppa/dl-lookupcfg.h
index 5c84c4367..f3125e5ec 100644
--- a/libc/ports/sysdeps/hppa/dl-lookupcfg.h
+++ b/libc/ports/sysdeps/hppa/dl-lookupcfg.h
@@ -57,7 +57,7 @@ void _dl_unmap (struct link_map *map);
})
-/* The test for "addr & 2" below is to accomodate old binaries which
+/* The test for "addr & 2" below is to accommodate old binaries which
violated the ELF ABI by pointing DT_INIT and DT_FINI at a function
descriptor. */
#define DL_DT_INIT_ADDRESS(map, addr) \
diff --git a/libc/ports/sysdeps/hppa/fpu/fraiseexcpt.c b/libc/ports/sysdeps/hppa/fpu/fraiseexcpt.c
index 0b55d3439..28e2db4aa 100644
--- a/libc/ports/sysdeps/hppa/fpu/fraiseexcpt.c
+++ b/libc/ports/sysdeps/hppa/fpu/fraiseexcpt.c
@@ -42,7 +42,7 @@ feraiseexcept (int excepts)
/* First: Invalid exception. */
if (excepts & FE_INVALID)
{
- /* One example of a invalid operation is 0 * Infinity. */
+ /* One example of an invalid operation is 0 * Infinity. */
double d = HUGE_VAL;
__asm__ __volatile__ (
" fcpy,dbl %%fr0,%%fr22\n"
diff --git a/libc/ports/sysdeps/ia64/fpu/e_acoshl.S b/libc/ports/sysdeps/ia64/fpu/e_acoshl.S
index 1ce292c88..71f899e42 100644
--- a/libc/ports/sysdeps/ia64/fpu/e_acoshl.S
+++ b/libc/ports/sysdeps/ia64/fpu/e_acoshl.S
@@ -249,7 +249,7 @@
RODATA
.align 64
-// Near 1 path rational aproximation coefficients
+// Near 1 path rational approximation coefficients
LOCAL_OBJECT_START(Poly_P)
data8 0xB0978143F695D40F, 0x3FF1 // .84205539791447100108478906277453574946e-4
data8 0xB9800D841A8CAD29, 0x3FF6 // .28305085180397409672905983082168721069e-2
@@ -655,7 +655,7 @@ GLOBAL_LIBM_ENTRY(acoshl)
};;
{ .mfi
- getf.d GR_Arg = FR_Arg // get arument as double (int64)
+ getf.d GR_Arg = FR_Arg // get argument as double (int64)
fma.s0 FR_Two = f1, f1, f1 // construct 2.0
addl GR_ad_z_1 = @ltoff(Constants_Z_1#),gp // logl tables
}
diff --git a/libc/ports/sysdeps/ia64/fpu/e_atanhl.S b/libc/ports/sysdeps/ia64/fpu/e_atanhl.S
index 846a89ec3..5d828d5ff 100644
--- a/libc/ports/sysdeps/ia64/fpu/e_atanhl.S
+++ b/libc/ports/sysdeps/ia64/fpu/e_atanhl.S
@@ -99,7 +99,7 @@
// calculation is subdivided into two stages. The first stage is
// calculating of X = 2*|x|/(1-|x|). The second one is calculating of
// sign(x)*log1pl(X)/2. To obtain required accuracy we use precise division
-// algorythm output of which is a pair of two extended precision values those
+// algorithm output of which is a pair of two extended precision values those
// approximate result of division with accuracy higher than working
// precision. This pair is passed to modified log1pl function.
//
diff --git a/libc/ports/sysdeps/ia64/fpu/e_log.S b/libc/ports/sysdeps/ia64/fpu/e_log.S
index 3c5ebc2f0..d755fa5f2 100644
--- a/libc/ports/sysdeps/ia64/fpu/e_log.S
+++ b/libc/ports/sysdeps/ia64/fpu/e_log.S
@@ -134,7 +134,7 @@
// InvX = frcpa(x)
// r = InvX*x - 1
// P(r) = r*((r*A3 - A2) + r^4*((A4 + r*A5) + r^2*(A6 + r*A7)),
-// all coefficients are calcutated in quad and rounded to double
+// all coefficients are calculated in quad and rounded to double
// precision. A7,A6,A5,A4 are stored in memory whereas A3 and A2
// created with setf.
//
diff --git a/libc/ports/sysdeps/ia64/fpu/e_log2l.S b/libc/ports/sysdeps/ia64/fpu/e_log2l.S
index 837c55d29..f33969aba 100644
--- a/libc/ports/sysdeps/ia64/fpu/e_log2l.S
+++ b/libc/ports/sysdeps/ia64/fpu/e_log2l.S
@@ -471,7 +471,7 @@ GLOBAL_IEEE754_ENTRY(log2l)
(p7) br.cond.spnt LOG2_PSEUDO_ZERO
}
{.mfi
- // get T_low adress
+ // get T_low address
shladd r3=r28,3,r3
// if first 8 bits after leading 1 are all ones, use polynomial approx. only
(p10) fms.s1 f6=f7,f36,f1
diff --git a/libc/ports/sysdeps/ia64/fpu/e_logf.S b/libc/ports/sysdeps/ia64/fpu/e_logf.S
index 3d11a296c..9175f9551 100644
--- a/libc/ports/sysdeps/ia64/fpu/e_logf.S
+++ b/libc/ports/sysdeps/ia64/fpu/e_logf.S
@@ -159,7 +159,7 @@
//
// 3. How we define is input argument such that |x-1| < 1/256 or not.
//
-// To do it we analyze biased exponent and significand of input argment.
+// To do it we analyze biased exponent and significand of input argument.
//
// a) First we test is biased exponent equal to 0xFFFE or 0xFFFF (i.e.
// we test is 0.5 <= x < 2). This comparison can be performed using
@@ -838,7 +838,7 @@ GLOBAL_IEEE754_ENTRY(log10f)
{ .mib
setf.exp FR_A2 = GR_05 // create A2
sub GR_de = GR_Exp,GR_05 // biased_exponent_of_x - 0xFFFE
- // needed to comparion with 0.5 and 2.0
+ // needed for comparison with 0.5 and 2.0
br.cond.sptk logf_log10f_common
};;
GLOBAL_IEEE754_END(log10f)
@@ -873,7 +873,7 @@ GLOBAL_IEEE754_ENTRY(logf)
setf.d FR_A3 = GR_A3 // create A3
fcmp.eq.s1 p13,p14 = f0,f0 // p13 - true for logf
sub GR_de = GR_Exp,GR_05 // biased_exponent_of_x - 0xFFFE
- // needed to comparion with 0.5 and 2.0
+ // needed for comparison with 0.5 and 2.0
}
{ .mlx
setf.exp FR_A2 = GR_05 // create A2
diff --git a/libc/ports/sysdeps/ia64/fpu/e_logl.S b/libc/ports/sysdeps/ia64/fpu/e_logl.S
index e12c65d51..996f64aae 100644
--- a/libc/ports/sysdeps/ia64/fpu/e_logl.S
+++ b/libc/ports/sysdeps/ia64/fpu/e_logl.S
@@ -211,7 +211,7 @@
//
// Calculate X_1 := X_0 * Z_1 truncated to lsb = 2^(-14)
// = 1.0 0 0 0 d_5 ... d_14
-// This is accomplised by integer multiplication.
+// This is accomplished by integer multiplication.
// It is proved that X_1 indeed always begin
// with 1.0000 in fixed point.
//
@@ -232,7 +232,7 @@
//
// Calculate X_2 := X_1 * Z_2 truncated to lsb = 2^(-14)
// = 1.0 0 0 0 0 0 0 0 d_9 d_10 ... d_14
-// This is accomplised by integer multiplication.
+// This is accomplished by integer multiplication.
// It is proved that X_2 indeed always begin
// with 1.00000000 in fixed point.
//
diff --git a/libc/ports/sysdeps/ia64/fpu/fraiseexcpt.c b/libc/ports/sysdeps/ia64/fpu/fraiseexcpt.c
index aaa9b6166..76c1b7a31 100644
--- a/libc/ports/sysdeps/ia64/fpu/fraiseexcpt.c
+++ b/libc/ports/sysdeps/ia64/fpu/fraiseexcpt.c
@@ -40,7 +40,7 @@ feraiseexcept (int excepts)
/* First: invalid exception. */
if (FE_INVALID & excepts)
{
- /* One example of a invalid operation is 0 * Infinity. */
+ /* One example of an invalid operation is 0 * Infinity. */
tmp = 0;
__asm__ __volatile__ ("frcpa.s0 %0,p1=f0,f0" : "=f" (tmp) : : "p1" );
}
diff --git a/libc/ports/sysdeps/ia64/fpu/libm_lgammaf.S b/libc/ports/sysdeps/ia64/fpu/libm_lgammaf.S
index 4bd92c3b2..7218911f5 100644
--- a/libc/ports/sysdeps/ia64/fpu/libm_lgammaf.S
+++ b/libc/ports/sysdeps/ia64/fpu/libm_lgammaf.S
@@ -1064,7 +1064,7 @@ lgammaf_0_1:
{ .mfi
ldfpd FR_Ln2,FR_05 = [GR_ad_Data],16
fma.s1 FR_P32 = FR_P3,FR_r,FR_P2
- // input argument cann't be equal to 1.0
+ // input argument can't be equal to 1.0
cmp.eq p0,p14 = r0,r0
};;
{ .mfi
@@ -1456,7 +1456,7 @@ lgammaf_negrecursion:
// load coefficients of polynomial approximation
// of ln(GAMMA(x)), x is close to one of negative roots
(p13) ldfpd FR_R3,FR_R2 = [GR_ad_RootCo]
- // argumenth for logarithm
+ // arguments for logarithm
(p10) fma.s1 FR_Req = FR_Req,FR_Xp2,f0
mov GR_ExpMask = 0x1ffff
}
diff --git a/libc/ports/sysdeps/ia64/fpu/libm_lgammal.S b/libc/ports/sysdeps/ia64/fpu/libm_lgammal.S
index 351befb14..185433ab8 100644
--- a/libc/ports/sysdeps/ia64/fpu/libm_lgammal.S
+++ b/libc/ports/sysdeps/ia64/fpu/libm_lgammal.S
@@ -317,7 +317,7 @@
//
// Calculate X_1 := X_0 * Z_1 truncated to lsb = 2^(-14)
// = 1.0 0 0 0 d_5 ... d_14
-// This is accomplised by integer multiplication.
+// This is accomplished by integer multiplication.
// It is proved that X_1 indeed always begin
// with 1.0000 in fixed point.
//
@@ -338,7 +338,7 @@
//
// Calculate X_2 := X_1 * Z_2 truncated to lsb = 2^(-14)
// = 1.0 0 0 0 0 0 0 0 d_9 d_10 ... d_14
-// This is accomplised by integer multiplication.
+// This is accomplished by integer multiplication.
// It is proved that X_2 indeed always begin
// with 1.00000000 in fixed point.
//
@@ -1334,7 +1334,7 @@ LOCAL_OBJECT_END(lgammal_near_neg_half_data)
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LOCAL_OBJECT_START(lgammal_right_roots_polynomial_data)
// Polynomial coefficients for right root on [-3, -2]
-// Lgammal is aproximated by polynomial within [-.056244 ; .158208 ] range
+// Lgammal is approximated by polynomial within [-.056244 ; .158208 ] range
data8 0xBBBD5E9DCD11030B, 0xB867411D9FF87DD4 //A0
data8 0x3FF83FE966AF535E, 0x3CAA21235B8A769A //A1
data8 0x40136EEBB002F55C, 0x3CC3959A6029838E //A2
@@ -1356,7 +1356,7 @@ data8 0x40E0FB2C989CE4A3 //A17
data8 0x40E52739AB005641 //A18
data8 0x41161E3E6DDF503A //A19
// Polynomial coefficients for right root on [-4, -3]
-// Lgammal is aproximated by polynomial within [-.172797 ; .171573 ] range
+// Lgammal is approximated by polynomial within [-.172797 ; .171573 ] range
data8 0x3C172712B248E42E, 0x38CB8D17801A5D67 //A0
data8 0x401F20A65F2FAC54, 0x3CCB9EA1817A824E //A1
data8 0x4039D4D2977150EF, 0x3CDA42E149B6276A //A2
@@ -1378,7 +1378,7 @@ data8 0x42A7256F59B286F7 //A17
data8 0x42D462D1586DE61F //A18
data8 0x42FBB1228D6C5118 //A19
// Polynomial coefficients for right root on [-5, -4]
-// Lgammal is aproximated by polynomial within [-.163171 ; .161988 ] range
+// Lgammal is approximated by polynomial within [-.163171 ; .161988 ] range
data8 0x3C5840FBAFDEE5BB, 0x38CAC0336E8C490A //A0
data8 0x403ACA5CF4921642, 0x3CCEDCDDA5491E56 //A1
data8 0x40744415CD813F8E, 0x3CFBFEBC17E39146 //A2
@@ -1400,7 +1400,7 @@ data8 0x44A3507DA81D5C01 //A17
data8 0x44EF06A31E39EEDF //A18
data8 0x45333774C99F523F //A19
// Polynomial coefficients for right root on [-6, -5]
-// Lgammal is aproximated by polynomial within [-.156450 ; .156126 ] range
+// Lgammal is approximated by polynomial within [-.156450 ; .156126 ] range
data8 0x3C71B82D6B2B3304, 0x3917186E3C0DC231 //A0
data8 0x405ED72E0829AE02, 0x3C960C25157980EB //A1
data8 0x40BCECC32EC22F9B, 0x3D5D8335A32F019C //A2
@@ -1422,7 +1422,7 @@ data8 0x4709D045390A3810 //A17
data8 0x4778D360873C9F64 //A18
data8 0x47E26965BE9A682A //A19
// Polynomial coefficients for right root on [-7, -6]
-// Lgammal is aproximated by polynomial within [-.154582 ; .154521 ] range
+// Lgammal is approximated by polynomial within [-.154582 ; .154521 ] range
data8 0x3C75F103A1B00A48, 0x391C041C190C726D //A0
data8 0x40869DE49E3AF2AA, 0x3D1C17E1F813063B //A1
data8 0x410FCE23484CFD10, 0x3DB6F38C2F11DAB9 //A2
@@ -1444,7 +1444,7 @@ data8 0x49C47CC9AE3F1073 //A17
data8 0x4A5D38E8C35EFF45 //A18
data8 0x4AF0123E89694CD8 //A19
// Polynomial coefficients for right root on [-8, -7]
-// Lgammal is aproximated by polynomial within [-.154217 ; .154208 ] range
+// Lgammal is approximated by polynomial within [-.154217 ; .154208 ] range
data8 0xBCD2507D818DDD68, 0xB97F6940EA2871A0 //A0
data8 0x40B3B407AA387BCB, 0x3D6320238F2C43D1 //A1
data8 0x41683E85DAAFBAC7, 0x3E148D085958EA3A //A2
@@ -1466,7 +1466,7 @@ data8 0x4CC05021086F637B //A17
data8 0x4D8450A345B0FB49 //A18
data8 0x4E43825848865DB2 //A19
// Polynomial coefficients for right root on [-9, -8]
-// Lgammal is aproximated by polynomial within [-.154160 ; .154158 ] range
+// Lgammal is approximated by polynomial within [-.154160 ; .154158 ] range
data8 0x3CDF4358564F2B46, 0x397969BEE6042F81 //A0
data8 0x40E3B088FED67721, 0x3D82787BA937EE85 //A1
data8 0x41C83A3893550EF4, 0x3E542ED57E244DA8 //A2
@@ -1488,7 +1488,7 @@ data8 0x4FF03797EACD0F23 //A17
data8 0x50E4304A8E68A730 //A18
data8 0x51D3618FB2EC9F93 //A19
// Polynomial coefficients for right root on [-10, -9]
-// Lgammal is aproximated by polynomial within [-.154152 ; .154152 ] range
+// Lgammal is approximated by polynomial within [-.154152 ; .154152 ] range
data8 0x3D42F34DA97ECF0C, 0x39FD1256F345B0D0 //A0
data8 0x4116261203919787, 0x3DC12D44055588EB //A1
data8 0x422EA8F32FB7FE99, 0x3ED849CE4E7B2D77 //A2
@@ -1510,7 +1510,7 @@ data8 0x534E00B6B0C8B809 //A17
data8 0x5475022FE21215B2 //A18
data8 0x5596B02BF6C5E19B //A19
// Polynomial coefficients for right root on [-11, -10]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0x3D7AA9C2E2B1029C, 0x3A15FB37578544DB //A0
data8 0x414BAF825A0C91D4, 0x3DFB9DA2CE398747 //A1
data8 0x4297F3EC8AE0AF03, 0x3F34208B55FB8781 //A2
@@ -1532,7 +1532,7 @@ data8 0x56D4D10FEEDB030C //A17
data8 0x5832385DF86AD28A //A18
data8 0x598898914B4D6523 //A19
// Polynomial coefficients for right root on [-12, -11]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0xBD96F61647C58B03, 0xBA3ABB0C2A6C755B //A0
data8 0x418308A82714B70D, 0x3E1088FC6A104C39 //A1
data8 0x4306A493DD613C39, 0x3FB2341ECBF85741 //A2
@@ -1554,7 +1554,7 @@ data8 0x5A824088688B008D //A17
data8 0x5C15F75EF7E08EBD //A18
data8 0x5DA462EA902F0C90 //A19
// Polynomial coefficients for right root on [-13, -12]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0x3DC3191752ACFC9D, 0x3A26CB6629532DBF //A0
data8 0x41BC8CFC051191BD, 0x3E68A84DA4E62AF2 //A1
data8 0x43797926294A0148, 0x400F345FF3723CFF //A2
@@ -1576,7 +1576,7 @@ data8 0x5E518FC34C6F54EF //A17
data8 0x601FB3F17BCCD9A0 //A18
data8 0x61E61128D512FE97 //A1
// Polynomial coefficients for right root on [-14, -13]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0xBE170D646421B3F5, 0xBAAD95F79FCB5097 //A0
data8 0x41F7328CBFCD9AC7, 0x3E743B8B1E8AEDB1 //A1
data8 0x43F0D0FA2DBDA237, 0x40A0422D6A227B55 //A2
@@ -1598,7 +1598,7 @@ data8 0x6240787C4B1C9D6C //A17
data8 0x6448289235E80977 //A18
data8 0x664B5352C6C3449E //A19
// Polynomial coefficients for right root on [-15, -14]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0x3E562C2E34A9207D, 0x3ADC00DA3DFF7A83 //A0
data8 0x42344C3B2F0D90AB, 0x3EB8A2E979F24536 //A1
data8 0x4469BFFF28B50D07, 0x41181E3D05C1C294 //A2
@@ -1620,7 +1620,7 @@ data8 0x664B3998D60D0F9B //A17
data8 0x689178710782FA8B //A18
data8 0x6AD14A66C1C7BEC3 //A19
// Polynomial coefficients for right root on [-16, -15]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0xBE6D7E7192615BAE, 0xBB0137677D7CC719 //A0
data8 0x4273077763F6628C, 0x3F09250FB8FC8EC9 //A1
data8 0x44E6A1BF095B1AB3, 0x4178D5A74F6CB3B3 //A2
@@ -1642,7 +1642,7 @@ data8 0x6A722D2B19B7E2F9 //A17
data8 0x6CF5DEB3073B0743 //A18
data8 0x6F744AC11550B93A //A19
// Polynomial coefficients for right root on [-17, -16]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0xBEDCC6291188207E, 0xBB872E3FDD48F5B7 //A0
data8 0x42B3076EE7525EF9, 0x3F6687A5038CA81C //A1
data8 0x4566A1AAD96EBCB5, 0x421F0FEDFBF548D2 //A2
@@ -1664,7 +1664,7 @@ data8 0x6EB22C9807C21819 //A17
data8 0x7175DE20D04617C4 //A18
data8 0x74344AB87C6D655F //A19
// Polynomial coefficients for right root on [-18, -17]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0xBF28AEEE7B61D77C, 0xBBDBBB5FC57ABF79 //A0
data8 0x42F436F56B3B8A0C, 0x3FA43EE3C5C576E9 //A1
data8 0x45E98A22535D115D, 0x42984678BE78CC48 //A2
@@ -1686,7 +1686,7 @@ data8 0x730962B4500F4A61 //A17
data8 0x76103C6ED099192A //A18
data8 0x79100C7132CFD6E3 //A19
// Polynomial coefficients for right root on [-19, -18]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0x3F3C19A53328A0C3, 0x3BE04ADC3FBE1458 //A0
data8 0x4336C16C16C16C19, 0x3FE58CE3AC4A7C28 //A1
data8 0x46702E85C0898B70, 0x432C922E412CEC6E //A2
@@ -1708,7 +1708,7 @@ data8 0x7777C401A8715CF9 //A17
data8 0x7AC1110C6D350440 //A18
data8 0x7E02D0971CF84865 //A19
// Polynomial coefficients for right root on [-20, -19]
-// Lgammal is aproximated by polynomial within [-.154151 ; .154151 ] range
+// Lgammal is approximated by polynomial within [-.154151 ; .154151 ] range
data8 0xBFAB767F9BE21803, 0xBC5ACEF5BB1BD8B5 //A0
data8 0x4379999999999999, 0x4029241C7F5914C8 //A1
data8 0x46F47AE147AE147A, 0x43AC2979B64B9D7E //A2
@@ -1733,7 +1733,7 @@ LOCAL_OBJECT_END(lgammal_right_roots_polynomial_data)
LOCAL_OBJECT_START(lgammal_left_roots_polynomial_data)
// Polynomial coefficients for left root on [-3, -2]
-// Lgammal is aproximated by polynomial within [.084641 ; -.059553 ] range
+// Lgammal is approximated by polynomial within [.084641 ; -.059553 ] range
data8 0xBC0844590979B82E, 0xB8BC7CE8CE2ECC3B //A0
data8 0xBFFEA12DA904B18C, 0xBC91A6B2BAD5EF6E //A1
data8 0x4023267F3C265A51, 0x3CD7055481D03AED //A2
@@ -1756,7 +1756,7 @@ data8 0x41EA727E3033E2D9 //A18
data8 0xC20812C297729142 //A19
//
// Polynomial coefficients for left root on [-4, -3]
-// Lgammal is aproximated by polynomial within [.147147 ; -.145158 ] range
+// Lgammal is approximated by polynomial within [.147147 ; -.145158 ] range
data8 0xBC3130AE5C4F54DB, 0xB8ED23294C13398A //A0
data8 0xC034B99D966C5646, 0xBCE2E5FE3BC3DBB9 //A1
data8 0x406F76DEAE0436BD, 0x3D14974DDEC057BD //A2
@@ -1778,7 +1778,7 @@ data8 0xC471C4421E908C3A //A17
data8 0x44B92CD4D59D6D17 //A18
data8 0xC4FB3A078B5247FA //A19
// Polynomial coefficients for left root on [-5, -4]
-// Lgammal is aproximated by polynomial within [.155671 ; -.155300 ] range
+// Lgammal is approximated by polynomial within [.155671 ; -.155300 ] range
data8 0xBC57BF3C6E8A94C1, 0xB902FB666934AC9E //A0
data8 0xC05D224A3EF9E41F, 0xBCF6F5713913E440 //A1
data8 0x40BB533C678A3955, 0x3D688E53E3C72538 //A2
@@ -1800,7 +1800,7 @@ data8 0xC6FFDDC6DD938E2E //A17
data8 0x476DD7C07184B9F9 //A18
data8 0xC7D554A30085C052 //A19
// Polynomial coefficients for left root on [-6, -5]
-// Lgammal is aproximated by polynomial within [.157425 ; -.157360 ] range
+// Lgammal is approximated by polynomial within [.157425 ; -.157360 ] range
data8 0x3C9E20A87C8B79F1, 0x39488BE34B2427DB //A0
data8 0xC08661F6A43A5E12, 0xBD3D912526D759CC //A1
data8 0x410F79DCB794F270, 0x3DB9BEE7CD3C1BF5 //A2
@@ -1822,7 +1822,7 @@ data8 0xC9C2C6A864521F3A //A17
data8 0x4A5AB127C62E8DA1 //A18
data8 0xCAECF60EF3183C57 //A19
// Polynomial coefficients for left root on [-7, -6]
-// Lgammal is aproximated by polynomial within [.157749 ; -.157739 ] range
+// Lgammal is approximated by polynomial within [.157749 ; -.157739 ] range
data8 0x3CC9B9E8B8D551D6, 0x3961813C8E1E10DB //A0
data8 0xC0B3ABF7A5CEA91F, 0xBD55638D4BCB4CC4 //A1
data8 0x4168349A25504236, 0x3E0287ECE50CCF76 //A2
@@ -1844,7 +1844,7 @@ data8 0xCCC01CB3021212FF //A17
data8 0x4D841613AC3431D1 //A18
data8 0xCE431C9E9EE43AD9 //A19
// Polynomial coefficients for left root on [-8, -7]
-// Lgammal is aproximated by polynomial within [.157799 ; -.157798 ] range
+// Lgammal is approximated by polynomial within [.157799 ; -.157798 ] range
data8 0xBCF9C7A33AD9478C, 0xB995B0470F11E5ED //A0
data8 0xC0E3AF76FE4C2F8B, 0xBD8DBCD503250511 //A1
data8 0x41C838E76CAAF0D5, 0x3E5D79F5E2E069C3 //A2
@@ -1866,7 +1866,7 @@ data8 0xCFF0351B51508523 //A17
data8 0x50E4364CCBF53100 //A18
data8 0xD1D33CFD0BF96FA6 //A19
// Polynomial coefficients for left root on [-9, -8]
-// Lgammal is aproximated by polynomial within [.157806 ; -.157806 ] range
+// Lgammal is approximated by polynomial within [.157806 ; -.157806 ] range
data8 0x3D333E4438B1B9D4, 0x39E7B956B83964C1 //A0
data8 0xC11625EDFC63DCD8, 0xBDCF39625709EFAC //A1
data8 0x422EA8C150480F16, 0x3EC16ED908AB7EDD //A2
@@ -1888,7 +1888,7 @@ data8 0xD34E085C088404A5 //A17
data8 0x547511892FF8960E //A18
data8 0xD5968FA3B1ED67A9 //A19
// Polynomial coefficients for left root on [-10, -9]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0xBD355818A2B42BA2, 0xB9B7320B6A0D61EA //A0
data8 0xC14BAF7DA5F3770E, 0xBDE64AF9A868F719 //A1
data8 0x4297F3E8791F9CD3, 0x3F2A553E59B4835E //A2
@@ -1910,7 +1910,7 @@ data8 0xD6D4D760074F6E6B //A17
data8 0x5832469D58ED3FA9 //A18
data8 0xD988769F3DC76642 //A19
// Polynomial coefficients for left root on [-11, -10]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0xBDA050601F39778A, 0xBA0D4D1CE53E8241 //A0
data8 0xC18308A7D8EA4039, 0xBE370C379D3EAD41 //A1
data8 0x4306A49380644E6C, 0x3FBBB143C0E7B5C8 //A2
@@ -1932,7 +1932,7 @@ data8 0xDA8246294D210BEC //A17
data8 0x5C1608AAC32C3A8E //A18
data8 0xDDA446E570A397D5 //A19
// Polynomial coefficients for left root on [-12, -11]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0x3DEACBB3081C502E, 0x3A8AA6F01DEDF745 //A0
data8 0xC1BC8CFBFB0A9912, 0xBE6556B6504A2AE6 //A1
data8 0x43797926206941D7, 0x40289A9644C2A216 //A2
@@ -1954,7 +1954,7 @@ data8 0xDE51952FDFD1EC49 //A17
data8 0x601FCCEC1BBD25F1 //A18
data8 0xE1E5F2D76B610920 //A19
// Polynomial coefficients for left root on [-13, -12]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0xBE01612F373268ED, 0xBA97B7A18CDF103B //A0
data8 0xC1F7328CBF7A4FAC, 0xBE89A25A6952F481 //A1
data8 0x43F0D0FA2DBDA237, 0x40A0422EC1CE6084 //A2
@@ -1976,7 +1976,7 @@ data8 0xE2407D92CD613E82 //A17
data8 0x64483B9B62367EB7 //A18
data8 0xE64B2DC830E8A799 //A1
// Polynomial coefficients for left root on [-14, -13]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0x3E563D0B930B371F, 0x3AE779957E14F012 //A0
data8 0xC2344C3B2F083767, 0xBEC0B7769AA3DD66 //A1
data8 0x4469BFFF28B50D07, 0x41181E3F13ED2401 //A2
@@ -1998,7 +1998,7 @@ data8 0xE64B4201CDF9F138 //A17
data8 0x689186351E58AA88 //A18
data8 0xEAD132A585DFC60A //A19
// Polynomial coefficients for left root on [-15, -14]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0xBE6D7DDE12700AC1, 0xBB1E025BF1667FB5 //A0
data8 0xC273077763F60AD5, 0xBF2A1698184C7A9A //A1
data8 0x44E6A1BF095B1AB3, 0x4178D5AE8A4A2874 //A2
@@ -2020,7 +2020,7 @@ data8 0xEA7232C8804F32C3 //A17
data8 0x6CF5EFEE929A0928 //A18
data8 0xEF742EE03EC3E8FF //A19
// Polynomial coefficients for left root on [-16, -15]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0xBEDCC628FEAC7A1B, 0xBB80582C8BEBB198 //A0
data8 0xC2B3076EE752595E, 0xBF5388F55AFAE53E //A1
data8 0x4566A1AAD96EBCB5, 0x421F0FEFE2444293 //A2
@@ -2042,7 +2042,7 @@ data8 0xEEB23234FE191D55 //A17
data8 0x7175EF5D1080B105 //A18
data8 0xF4342ED7B1B7BE31 //A19
// Polynomial coefficients for left root on [-17, -16]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0xBF28AEEE7B58C790, 0xBBC4448DE371FA0A //A0
data8 0xC2F436F56B3B89B1, 0xBF636755245AC63A //A1
data8 0x45E98A22535D115D, 0x4298467DA93DB784 //A2
@@ -2064,7 +2064,7 @@ data8 0xF3096A81A69BD8AE //A17
data8 0x76104951BAD67D5C //A18
data8 0xF90FECC99786FD5B //A19
// Polynomial coefficients for left root on [-18, -17]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0x3F3C19A53328E26A, 0x3BE238D7BA036B3B //A0
data8 0xC336C16C16C16C13, 0xBFEACE245DEC56F3 //A1
data8 0x46702E85C0898B70, 0x432C922B64FD1DA4 //A2
@@ -2086,7 +2086,7 @@ data8 0xF777CB6E2B550D73 //A17
data8 0x7AC11E468A134A51 //A18
data8 0xFE02B6BDD0FC40AA //A19
// Polynomial coefficients for left root on [-19, -18]
-// Lgammal is aproximated by polynomial within [.157807 ; -.157807 ] range
+// Lgammal is approximated by polynomial within [.157807 ; -.157807 ] range
data8 0xBFAB767F9BE217FC, 0xBC4A5541CE0D8D0D //A0
data8 0xC379999999999999, 0xC01A84981B490BE8 //A1
data8 0x46F47AE147AE147A, 0x43AC2987BBC466EB //A2
diff --git a/libc/ports/sysdeps/ia64/fpu/libm_reduce.S b/libc/ports/sysdeps/ia64/fpu/libm_reduce.S
index 8bdf91d6d..8b132497b 100644
--- a/libc/ports/sysdeps/ia64/fpu/libm_reduce.S
+++ b/libc/ports/sysdeps/ia64/fpu/libm_reduce.S
@@ -75,7 +75,7 @@
//
// IEEE Special Conditions:
//
-// No condions should be raised.
+// No conditions should be raised.
//
//*********************************************************************
//
@@ -288,7 +288,7 @@
//
// Set sgn_x := sign(x); x := |x|; x_lo := 2 lsb of x.
//
-// In memory, 2/pi is stored contigously as
+// In memory, 2/pi is stored contiguously as
//
// 0x00000000 0x00000000 0xA2F....
// ^
@@ -786,7 +786,7 @@ __libm_pi_by_2_reduce:
// setf.sig FR_ScaleP3 = GR_x_lo
// fmerge.se FR_X = FR_X,FR_ScaleP3
// Set sgn_x := sign(x); x := |x|; x_lo := 2 lsb of x.
-// 2/pi is stored contigously as
+// 2/pi is stored contiguously as
// 0x00000000 0x00000000.0xA2F....
// M = EXP - BIAS ( M >= 63)
// Given x = 2^m * 1.xxxx...xxx; we calculate L := 62 - m.
diff --git a/libc/ports/sysdeps/ia64/fpu/s_erfc.S b/libc/ports/sysdeps/ia64/fpu/s_erfc.S
index c67c61abe..6729cda2e 100644
--- a/libc/ports/sysdeps/ia64/fpu/s_erfc.S
+++ b/libc/ports/sysdeps/ia64/fpu/s_erfc.S
@@ -65,7 +65,7 @@
//
// Let P14(z) - polynomial approximation of degree 14 for function
// erfc(z+x(i)) * exp( (z+x(i))^2) and 0 <= z <= x(i+1)-x(i).
-// Polynomial coeffitients we have in the table erfc_p_table.
+// Polynomial coefficients we have in the table erfc_p_table.
//
// So we can find result for erfc(x) as above.
// Algorithm description for exp function see below.
diff --git a/libc/ports/sysdeps/ia64/fpu/s_erfcf.S b/libc/ports/sysdeps/ia64/fpu/s_erfcf.S
index ce6be8db6..97c9037cf 100644
--- a/libc/ports/sysdeps/ia64/fpu/s_erfcf.S
+++ b/libc/ports/sysdeps/ia64/fpu/s_erfcf.S
@@ -63,7 +63,7 @@
//
// Let P15(x) - polynomial approximation of degree 15 for function
// erfcf(x) * exp( x^2) and x(i) <= x <= x(i+1), i = 0,1,2,3
-// Polynomial coeffitients we have in the table erfc_p_table.
+// Polynomial coefficients we have in the table erfc_p_table.
//
// So we can find result for erfcf(x) as above.
// Algorithm description for exp function see below.
diff --git a/libc/ports/sysdeps/ia64/fpu/s_erfcl.S b/libc/ports/sysdeps/ia64/fpu/s_erfcl.S
index b9f7004aa..79b94a85a 100644
--- a/libc/ports/sysdeps/ia64/fpu/s_erfcl.S
+++ b/libc/ports/sysdeps/ia64/fpu/s_erfcl.S
@@ -71,7 +71,7 @@
// -0.5*[x(i+1)-x(i)] <= z <= 0.5*[x(i+1)-x(i)].
//
// Let Q(z)= (P(z)- S)/S, S = a0, rounded to 16 bits.
-// Polynomial coeffitients for Q(z) we have in the table erfc_Q_table as
+// Polynomial coefficients for Q(z) we have in the table erfc_Q_table as
// long double values
//
// We use multi precision to calculate input argument -x^2 for expl and
diff --git a/libc/ports/sysdeps/ia64/fpu/s_log1p.S b/libc/ports/sysdeps/ia64/fpu/s_log1p.S
index e1e6dcc80..209732826 100644
--- a/libc/ports/sysdeps/ia64/fpu/s_log1p.S
+++ b/libc/ports/sysdeps/ia64/fpu/s_log1p.S
@@ -103,7 +103,7 @@
// InvX = frcpa(x+1)
// r = InvX*(x+1) - 1
// P(r) = r*((r*A3 - A2) + r^4*((A4 + r*A5) + r^2*(A6 + r*A7)),
-// all coefficients are calcutated in quad and rounded to double
+// all coefficients are calculated in quad and rounded to double
// precision. A7,A6,A5,A4 are stored in memory whereas A3 and A2
// created with setf.
//
diff --git a/libc/ports/sysdeps/ia64/fpu/s_log1pl.S b/libc/ports/sysdeps/ia64/fpu/s_log1pl.S
index f60ce1268..3c8be0282 100644
--- a/libc/ports/sysdeps/ia64/fpu/s_log1pl.S
+++ b/libc/ports/sysdeps/ia64/fpu/s_log1pl.S
@@ -221,7 +221,7 @@
//
// Calculate X_1 := X_0 * Z_1 truncated to lsb = 2^(-14)
// = 1.0 0 0 0 d_5 ... d_14
-// This is accomplised by integer multiplication.
+// This is accomplished by integer multiplication.
// It is proved that X_1 indeed always begin
// with 1.0000 in fixed point.
//
@@ -242,7 +242,7 @@
//
// Calculate X_2 := X_1 * Z_2 truncated to lsb = 2^(-14)
// = 1.0 0 0 0 0 0 0 0 d_9 d_10 ... d_14
-// This is accomplised by integer multiplication.
+// This is accomplished by integer multiplication.
// It is proved that X_2 indeed always begin
// with 1.00000000 in fixed point.
//
diff --git a/libc/ports/sysdeps/ia64/fpu/w_tgammal.S b/libc/ports/sysdeps/ia64/fpu/w_tgammal.S
index ca60eed87..b10c5dc27 100644
--- a/libc/ports/sysdeps/ia64/fpu/w_tgammal.S
+++ b/libc/ports/sysdeps/ia64/fpu/w_tgammal.S
@@ -1629,7 +1629,7 @@ GLOBAL_LIBM_ENTRY(tgammal)
{ .mfi
nop.m 0
- fma.s1 FR_l_B14 = FR_l_B16, FR_l_Z2, FR_l_B14// bernulli tail
+ fma.s1 FR_l_B14 = FR_l_B16, FR_l_Z2, FR_l_B14// Bernoulli tail
nop.i 0
}
{ .mfi
@@ -1640,18 +1640,18 @@ GLOBAL_LIBM_ENTRY(tgammal)
{ .mfi
nop.m 0
- fma.s1 FR_l_B2 = FR_l_B4, FR_l_Z2, FR_l_B2 // bernulli tail
+ fma.s1 FR_l_B2 = FR_l_B4, FR_l_Z2, FR_l_B2 // Bernoulli tail
nop.i 0
}
{ .mfi
nop.m 0
- fma.s1 FR_l_B6 = FR_l_B8, FR_l_Z2, FR_l_B6 // bernulli tail
+ fma.s1 FR_l_B6 = FR_l_B8, FR_l_Z2, FR_l_B6 // Bernoulli tail
nop.i 0
};;
{ .mfi
nop.m 0
- fma.s1 FR_l_B10 = FR_l_B12, FR_l_Z2, FR_l_B10// bernulli tail
+ fma.s1 FR_l_B10 = FR_l_B12, FR_l_Z2, FR_l_B10// Bernoulli tail
nop.i 0
}
{ .mfi
@@ -1795,7 +1795,7 @@ GLOBAL_LIBM_ENTRY(tgammal)
{ .mfi
nop.m 0
- fma.s1 FR_l_SS = FR_l_B10, FR_l_Z8, FR_l_B2 // bernulli tail
+ fma.s1 FR_l_SS = FR_l_B10, FR_l_Z8, FR_l_B2 // Bernoulli tail
nop.i 0
};;
diff --git a/libc/ports/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c b/libc/ports/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
index 54ec89fb9..83c4e4d25 100644
--- a/libc/ports/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
+++ b/libc/ports/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
@@ -33,7 +33,7 @@ __feraiseexcept (int excepts)
/* First: invalid exception. */
if (excepts & FE_INVALID)
{
- /* One example of a invalid operation is 0 * Infinity. */
+ /* One example of an invalid operation is 0 * Infinity. */
double d = HUGE_VAL;
__asm__ __volatile__ ("fmul%.s %#0r0,%0; fnop" : "=f" (d) : "0" (d));
}
diff --git a/libc/ports/sysdeps/mips/fpu/fedisblxcpt.c b/libc/ports/sysdeps/mips/fpu/fedisblxcpt.c
index 1db197f21..7498c0c27 100644
--- a/libc/ports/sysdeps/mips/fpu/fedisblxcpt.c
+++ b/libc/ports/sysdeps/mips/fpu/fedisblxcpt.c
@@ -34,7 +34,6 @@ fedisableexcept (int excepts)
excepts &= FE_ALL_EXCEPT;
new_exc &= ~(excepts << ENABLE_SHIFT);
- new_exc &= ~_FPU_RESERVED;
_FPU_SETCW (new_exc);
return old_exc;
diff --git a/libc/ports/sysdeps/mips/fpu/feenablxcpt.c b/libc/ports/sysdeps/mips/fpu/feenablxcpt.c
index 2a3a07618..bca8e3d23 100644
--- a/libc/ports/sysdeps/mips/fpu/feenablxcpt.c
+++ b/libc/ports/sysdeps/mips/fpu/feenablxcpt.c
@@ -34,7 +34,6 @@ feenableexcept (int excepts)
excepts &= FE_ALL_EXCEPT;
new_exc |= excepts << ENABLE_SHIFT;
- new_exc &= ~_FPU_RESERVED;
_FPU_SETCW (new_exc);
return old_exc;
diff --git a/libc/ports/sysdeps/mips/fpu_control.h b/libc/ports/sysdeps/mips/fpu_control.h
index 6aecb3bc8..770cbb31d 100644
--- a/libc/ports/sysdeps/mips/fpu_control.h
+++ b/libc/ports/sysdeps/mips/fpu_control.h
@@ -28,7 +28,8 @@
* causing unimplemented operation exception. This bit is only
* available for MIPS III and newer.
* 23 -> Condition bit
- * 22-18 -> reserved (read as 0, write with 0)
+ * 22-21 -> reserved for architecture implementers
+ * 20-18 -> reserved (read as 0, write with 0)
* 17 -> cause bit for unimplemented operation
* 16 -> cause bit for invalid exception
* 15 -> cause bit for division by zero exception
@@ -84,7 +85,7 @@ extern fpu_control_t __fpu_control;
#define _FPU_RC_UP 0x2
#define _FPU_RC_DOWN 0x3
-#define _FPU_RESERVED 0xfebc0000 /* Reserved bits in cw */
+#define _FPU_RESERVED 0xfe9c0000 /* Reserved bits in cw */
/* The fdlibm code requires strict IEEE double precision arithmetic,
diff --git a/libc/ports/sysdeps/mips/memcpy.S b/libc/ports/sysdeps/mips/memcpy.S
index aeea491e7..c7168476e 100644
--- a/libc/ports/sysdeps/mips/memcpy.S
+++ b/libc/ports/sysdeps/mips/memcpy.S
@@ -155,14 +155,14 @@
pref PREFETCH_STORE_HINT, (chunk)*32(reg)
#endif
/* MAX_PREFETCH_SIZE is the maximum size of a prefetch, it must not be less
- * then PREFETCH_CHUNK, the assumed size of each prefetch. If the real size
- * of a prefetch is greater then MAX_PREFETCH_SIZE and the PREPAREFORSTORE
- * hint is used, the code will not work corrrectly. If PREPAREFORSTORE is not
+ * than PREFETCH_CHUNK, the assumed size of each prefetch. If the real size
+ * of a prefetch is greater than MAX_PREFETCH_SIZE and the PREPAREFORSTORE
+ * hint is used, the code will not work correctly. If PREPAREFORSTORE is not
* used then MAX_PREFETCH_SIZE does not matter. */
#define MAX_PREFETCH_SIZE 128
-/* PREFETCH_LIMIT is set based on the fact that we neve use an offset greater
- * then 5 on a STORE prefetch and that a single prefetch can never be larger
- * then MAX_PREFETCH_SIZE. We add the extra 32 when USE_DOUBLE is set because
+/* PREFETCH_LIMIT is set based on the fact that we never use an offset greater
+ * than 5 on a STORE prefetch and that a single prefetch can never be larger
+ * than MAX_PREFETCH_SIZE. We add the extra 32 when USE_DOUBLE is set because
* we actually do two prefetches in that case, one 32 bytes after the other. */
#ifdef USE_DOUBLE
# define PREFETCH_LIMIT (5 * PREFETCH_CHUNK) + 32 + MAX_PREFETCH_SIZE
@@ -275,7 +275,7 @@ LEAF(MEMCPY_NAME)
L(memcpy):
#endif
/*
- * If the size is less then 2*NSIZE (8 or 16), go to L(lastb). Regardless of
+ * If the size is less than 2*NSIZE (8 or 16), go to L(lastb). Regardless of
* size, copy dst pointer to v0 for the return value.
*/
slti t2,a2,(2 * NSIZE)
@@ -443,7 +443,7 @@ L(chkw):
PTR_ADDIU a0,a0,UNIT(8)
/*
- * Here we have less then 32(64) bytes to copy. Set up for a loop to
+ * Here we have less than 32(64) bytes to copy. Set up for a loop to
* copy one word (or double word) at a time. Set a2 to count how many
* bytes we have to copy after all the word (or double word) chunks are
* copied and a3 to the dst pointer after all the (d)word chunks have
@@ -635,7 +635,7 @@ L(ua_chkw):
C_ST REG7,UNIT(7)(a0)
PTR_ADDIU a0,a0,UNIT(8)
/*
- * Here we have less then 32(64) bytes to copy. Set up for a loop to
+ * Here we have less than 32(64) bytes to copy. Set up for a loop to
* copy one word (or double word) at a time.
*/
L(ua_chk1w):
diff --git a/libc/ports/sysdeps/mips/sys/asm.h b/libc/ports/sysdeps/mips/sys/asm.h
index 293cf364e..c0ff80ae5 100644
--- a/libc/ports/sysdeps/mips/sys/asm.h
+++ b/libc/ports/sysdeps/mips/sys/asm.h
@@ -472,7 +472,7 @@ symbol = value
# define MTC0 dmtc0
#endif
-/* The MIPS archtectures do not have a uniform memory model. Particular
+/* The MIPS architectures do not have a uniform memory model. Particular
platforms may provide additional guarantees - for instance, the R4000
LL and SC instructions implicitly perform a SYNC, and the 4K promises
strong ordering.
diff --git a/libc/ports/sysdeps/powerpc/powerpc32/405/memcpy.S b/libc/ports/sysdeps/powerpc/powerpc32/405/memcpy.S
index 761e9675a..b01d53920 100644
--- a/libc/ports/sysdeps/powerpc/powerpc32/405/memcpy.S
+++ b/libc/ports/sysdeps/powerpc/powerpc32/405/memcpy.S
@@ -98,7 +98,7 @@ L(string_count_loop): /* Copy odd 0-31 bytes */
lswx r6,0,r4
stswx r6,0,r3
-L(pre_string_copy): /* Check how many 32 byte chunck to copy */
+L(pre_string_copy): /* Check how many 32 byte chunks to copy */
srwi. r7,r5,4
beq L(end_memcpy)
mtctr r7
diff --git a/libc/ports/sysdeps/tile/jmpbuf-offsets.h b/libc/ports/sysdeps/tile/jmpbuf-offsets.h
index 62b841300..c6f5be318 100644
--- a/libc/ports/sysdeps/tile/jmpbuf-offsets.h
+++ b/libc/ports/sysdeps/tile/jmpbuf-offsets.h
@@ -45,7 +45,7 @@
#define JB_PC 25 /* normally LR, r55 */
#define JB_ICS 26 /* interrupt critical section bit */
-/* We save space for some extra state to accomodate future changes. */
+/* We save space for some extra state to accommodate future changes. */
#define JB_LEN 32 /* number of words */
#define JB_SIZE (JB_LEN * REGSIZE)
diff --git a/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h b/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
index b9437ff89..65f76fd10 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
@@ -29,6 +29,6 @@ struct netent
char **n_aliases; /* Alias list. */
int n_addrtype; /* Net address type. */
/* XXX We should probably use uint32_t for the field and ensure
- compatiblity by adding appropriate padding. */
+ compatibility by adding appropriate padding. */
unsigned long int n_net; /* Network number. */
};
diff --git a/libc/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h b/libc/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h
index e5af26052..447483898 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h
@@ -130,7 +130,7 @@
# define DN_CREATE 0x00000004 /* File created. */
# define DN_DELETE 0x00000008 /* File removed. */
# define DN_RENAME 0x00000010 /* File renamed. */
-# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
+# define DN_ATTRIB 0x00000020 /* File changed attributes. */
# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
#endif
diff --git a/libc/ports/sysdeps/unix/sysv/linux/arm/clone.S b/libc/ports/sysdeps/unix/sysv/linux/arm/clone.S
index ce9c2a5ba..6e74fa702 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/arm/clone.S
+++ b/libc/ports/sysdeps/unix/sysv/linux/arm/clone.S
@@ -93,8 +93,8 @@ PSEUDO_END (__clone)
mov lr, pc
bx ip
#else
- mov lr, pc
- ldr pc, [sp], #8
+ ldr lr, [sp], #8
+ blx lr
#endif
@ and we are done, passing the return value through r0
diff --git a/libc/ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h b/libc/ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h
index 50a8bb764..3821bf33b 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h
@@ -44,8 +44,8 @@
|| memcmp (hdr, expected3, size) == 0) \
&& VALID_FLOAT_ABI (ehdr->e_flags))
#define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV \
- || osabi == EXTRA_OSABI \
- || osabi == ELFOSABI_LINUX)
+ || osabi == ELFOSABI_GNU \
+ || osabi == EXTRA_OSABI)
#define MORE_ELF_HEADER_DATA \
static const unsigned char expected2[EI_PAD] = \
{ \
@@ -56,7 +56,7 @@
[EI_CLASS] = ELFW(CLASS), \
[EI_DATA] = byteorder, \
[EI_VERSION] = EV_CURRENT, \
- [EI_OSABI] = ELFOSABI_LINUX \
+ [EI_OSABI] = ELFOSABI_GNU \
}; \
static const unsigned char expected3[EI_PAD] = \
{ \
diff --git a/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions b/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions
index a62ef195a..a392feebc 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions
+++ b/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions
@@ -32,6 +32,9 @@ libc {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
prlimit64;
}
+ GLIBC_2.19 {
+ fanotify_mark;
+ }
}
librt {
GLIBC_2.3 {
diff --git a/libc/ports/sysdeps/unix/sysv/linux/hppa/clone.S b/libc/ports/sysdeps/unix/sysv/linux/hppa/clone.S
index 0d7a7eb63..fd55961be 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/hppa/clone.S
+++ b/libc/ports/sysdeps/unix/sysv/linux/hppa/clone.S
@@ -155,7 +155,7 @@ ENTRY(__clone)
ldw -60(%sp), %arg0
ldw -64(%sp), %r22
- /* $$dyncall fixes childs PIC register */
+ /* $$dyncall fixes child's PIC register */
/* Call the user's function */
#ifdef PIC
diff --git a/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h b/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h
index 70e060415..39e1ab986 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h
@@ -1014,13 +1014,13 @@ extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
int __pshared) __THROW __nonnull ((1));
#ifdef __USE_XOPEN2K
-/* Get the clock selected for the conditon variable attribute ATTR. */
+/* Get the clock selected for the condition variable attribute ATTR. */
extern int pthread_condattr_getclock (const pthread_condattr_t *
__restrict __attr,
__clockid_t *__restrict __clock_id)
__THROW __nonnull ((1, 2));
-/* Set the clock selected for the conditon variable attribute ATTR. */
+/* Set the clock selected for the condition variable attribute ATTR. */
extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
__clockid_t __clock_id)
__THROW __nonnull ((1));
diff --git a/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list b/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
index ae36d46a4..ae462edfe 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
+++ b/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -36,3 +36,4 @@ socketpair - socketpair i:iiif __socketpair socketpair
setrlimit - setrlimit i:ip __setrlimit setrlimit
getrlimit - getrlimit i:ip __getrlimit getrlimit
prlimit64 EXTRA prlimit64 i:iipp __prlimit64 prlimit64@@GLIBC_2.17
+fanotify_mark EXTRA fanotify_mark i:iiiiis __fanotify_mark fanotify_mark@@GLIBC_2.19
diff --git a/libc/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h b/libc/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
index c8c20e715..0d27b4075 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
@@ -219,7 +219,7 @@
/* FIXME: This comment is not true.
- * All the syscall assembly macros rely on finding the approriate
+ * All the syscall assembly macros rely on finding the appropriate
SYSCALL_ERROR_LABEL or rather HANDLER. */
/* int * __errno_location(void) so you have to store your value
diff --git a/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c b/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c
index efe95b186..9d263f285 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c
+++ b/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c
@@ -19,7 +19,7 @@
/* The public __longjmp() implementation is limited to jumping within
the same stack. That is, in general it is not possible to use this
__longjmp() implementation to cross from one stack to another.
- In constrast, the __sigstack_longjmp() implemented here allows
+ In contrast, the __sigstack_longjmp() implemented here allows
crossing from the alternate signal stack to the normal stack
as a special case. */
diff --git a/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
index 31a8c3c8c..420378027 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -47,9 +47,3 @@
# undef __ASSUME_PSELECT
# undef __ASSUME_PPOLL
#endif
-
-#ifdef __mcoldfire__
-/* ColdFire kernels have PAGE_SHIFT set to 13 and expect
- mmap2 offset to be provided in 8K pages. */
-# define MMAP2_PAGE_SHIFT 13
-#endif
diff --git a/libc/ports/sysdeps/unix/sysv/linux/m68k/mmap64.c b/libc/ports/sysdeps/unix/sysv/linux/m68k/mmap64.c
new file mode 100644
index 000000000..8bf898701
--- /dev/null
+++ b/libc/ports/sysdeps/unix/sysv/linux/m68k/mmap64.c
@@ -0,0 +1,5 @@
+/* ColdFire and Sun 3 kernels have PAGE_SHIFT set to 13 and expect
+ mmap2 offset to be provided in 8K pages. Determine the shift
+ dynamically with getpagesize. */
+#define MMAP2_PAGE_SHIFT -1
+#include <sysdeps/unix/sysv/linux/mmap64.c>
diff --git a/libc/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/libc/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h
index eb45f7229..76c38c8d2 100644
--- a/libc/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h
+++ b/libc/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h
@@ -30,11 +30,11 @@ extern void _dl_static_init (struct link_map *map);
#define DL_STATIC_INIT(map) _dl_static_init (map)
/* Allow ABIVERSION == 1, meaning PLTs and copy relocations are
- required, with ELFOSABI_SYSV. */
+ required, with ELFOSABI_SYSV, and ELFOSABI_GNU. */
#undef VALID_ELF_ABIVERSION
#define VALID_ELF_ABIVERSION(osabi,ver) \
(ver == 0 \
|| (osabi == ELFOSABI_SYSV && ver < 2) \
- || (osabi == ELFOSABI_LINUX && ver < LIBC_ABI_MAX))
+ || (osabi == ELFOSABI_GNU && ver < LIBC_ABI_MAX))
#endif /* ldsodefs.h */
diff --git a/libc/resolv/gai_notify.c b/libc/resolv/gai_notify.c
index 9e4bdf667..48cb58ab0 100644
--- a/libc/resolv/gai_notify.c
+++ b/libc/resolv/gai_notify.c
@@ -117,7 +117,7 @@ __gai_notify (struct requestlist *req)
#endif
}
else
- /* This is part of a asynchronous `getaddrinfo_a' operation. If
+ /* This is part of an asynchronous `getaddrinfo_a' operation. If
this request is the last one, send the signal. */
if (--*waitlist->counterp == 0)
{
diff --git a/libc/resolv/ns_name.c b/libc/resolv/ns_name.c
index adf64bbd9..f355cf344 100644
--- a/libc/resolv/ns_name.c
+++ b/libc/resolv/ns_name.c
@@ -180,7 +180,7 @@ libresolv_hidden_def (ns_name_ntop)
strong_alias (ns_name_ntop, __ns_name_ntop)
/*%
- * Convert a ascii string into an encoded domain name as per RFC1035.
+ * Convert an ascii string into an encoded domain name as per RFC1035.
*
* return:
*
@@ -681,7 +681,7 @@ libresolv_hidden_def (ns_name_skip)
/*%
* Thinking in noninternationalized USASCII (per the DNS spec),
- * is this characted special ("in need of quoting") ?
+ * is this character special ("in need of quoting") ?
*
* return:
*\li boolean.
diff --git a/libc/resolv/ns_samedomain.c b/libc/resolv/ns_samedomain.c
index 44b843a74..df6a4a26f 100644
--- a/libc/resolv/ns_samedomain.c
+++ b/libc/resolv/ns_samedomain.c
@@ -29,7 +29,7 @@ static const char rcsid[] = "$BINDId: ns_samedomain.c,v 8.9 1999/10/15 21:06:51
* Check whether a name belongs to a domain.
*
* Inputs:
- *\li a - the domain whose ancestory is being verified
+ *\li a - the domain whose ancestry is being verified
*\li b - the potential ancestor we're checking against
*
* Return:
diff --git a/libc/resolv/res_comp.c b/libc/resolv/res_comp.c
index c7212fab1..2ff7ddb1c 100644
--- a/libc/resolv/res_comp.c
+++ b/libc/resolv/res_comp.c
@@ -81,7 +81,7 @@ static const char rcsid[] = "$BINDId: res_comp.c,v 8.15 1999/10/13 16:39:39 vixi
/*
* Expand compressed domain name 'comp_dn' to full domain name.
- * 'msg' is a pointer to the begining of the message,
+ * 'msg' is a pointer to the beginning of the message,
* 'eomorig' points to the first location after the message,
* 'exp_dn' is a pointer to a buffer of size 'length' for the result.
* Return size of compressed name or -1 if there was an error.
diff --git a/libc/resolv/res_hconf.c b/libc/resolv/res_hconf.c
index 8ac46380a..a92751b87 100644
--- a/libc/resolv/res_hconf.c
+++ b/libc/resolv/res_hconf.c
@@ -359,6 +359,7 @@ _res_hconf_init (void)
#ifndef NOT_IN_libc
+# if defined SIOCGIFCONF && defined SIOCGIFNETMASK
/* List of known interfaces. */
libc_freeres_ptr (
static struct netaddr
@@ -373,6 +374,7 @@ static struct netaddr
} ipv4;
} u;
} *ifaddrs);
+# endif
/* Reorder addresses returned in a hostent such that the first address
is an address on the local subnet, if there is such an address.
diff --git a/libc/resolv/res_libc.c b/libc/resolv/res_libc.c
index 42c5ff907..29e2340fe 100644
--- a/libc/resolv/res_libc.c
+++ b/libc/resolv/res_libc.c
@@ -133,9 +133,7 @@ libc_hidden_def (__res_maybe_init)
This differs from plain `struct __res_state _res;' in that it doesn't
create a common definition, but a plain symbol that resides in .bss,
which can have an alias. */
-struct __res_state _res __attribute__((section (".bss")));
-
-#include <tls.h>
+struct __res_state _res __attribute__ ((nocommon));
#undef __resp
__thread struct __res_state *__resp = &_res;
@@ -144,7 +142,7 @@ extern __thread struct __res_state *__libc_resp
/* We declare this with compat_symbol so that it's not
visible at link time. Programs must use the accessor functions. */
-#if defined SHARED && defined DO_VERSIONING
+#ifdef SHARED
# include <shlib-compat.h>
compat_symbol (libc, _res, _res, GLIBC_2_0);
#endif
diff --git a/libc/resolv/res_mkquery.c b/libc/resolv/res_mkquery.c
index c0798dc54..6170763fa 100644
--- a/libc/resolv/res_mkquery.c
+++ b/libc/resolv/res_mkquery.c
@@ -77,6 +77,7 @@ static const char rcsid[] = "$BINDId: res_mkquery.c,v 8.12 1999/10/13 16:39:40 v
#include <resolv.h>
#include <stdio.h>
#include <string.h>
+#include <sys/time.h>
/* Options. Leave them on. */
/* #define DEBUG */
diff --git a/libc/resolv/res_send.c b/libc/resolv/res_send.c
index 60da5c901..5a73696e5 100644
--- a/libc/resolv/res_send.c
+++ b/libc/resolv/res_send.c
@@ -875,7 +875,7 @@ send_vc(res_state statp,
}
}
/*
- * If the calling applicating has bailed out of
+ * If the calling application has bailed out of
* a previous call and failed to arrange to have
* the circuit closed or the server has got
* itself confused, then drop the packet and
@@ -1229,8 +1229,11 @@ send_dg(res_state statp,
/* Yes, we test ANSCP here. If we have two buffers
both will be allocatable. */
&& anscp
+#ifdef FIONREAD
&& (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0
- || *thisanssizp < *thisresplenp)) {
+ || *thisanssizp < *thisresplenp)
+#endif
+ ) {
u_char *newp = malloc (MAXPACKET);
if (newp != NULL) {
*anssizp = MAXPACKET;
diff --git a/libc/socket/Makefile b/libc/socket/Makefile
index ad9c063a6..dc8bbde5c 100644
--- a/libc/socket/Makefile
+++ b/libc/socket/Makefile
@@ -28,6 +28,6 @@ routines := accept bind connect getpeername getsockname getsockopt \
setsockopt shutdown socket socketpair isfdtype opensock \
sockatmark accept4 recvmmsg sendmmsg
-aux := have_sock_cloexec
+aux := have_sock_cloexec sa_len
include ../Rules
diff --git a/libc/socket/sa_len.c b/libc/socket/sa_len.c
new file mode 100644
index 000000000..5cbcf4b58
--- /dev/null
+++ b/libc/socket/sa_len.c
@@ -0,0 +1,108 @@
+/* Helper for SA_LEN macro.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+
+/* If _HAVE_SA_LEN is defined, then SA_LEN just uses sockaddr.sa_len
+ and there is no need for a helper function. */
+
+#ifndef _HAVE_SA_LEN
+
+/* All configurations have at least these two headers
+ and their associated address families. */
+
+# include <netinet/in.h>
+# include <sys/un.h>
+
+/* More-specific sa_len.c files #define these various HAVE_*_H
+ macros and then #include this file. */
+
+# ifdef HAVE_NETASH_ASH_H
+# include <netash/ash.h>
+# endif
+# ifdef HAVE_NETATALK_AT_H
+# include <netatalk/at.h>
+# endif
+# ifdef HAVE_NETAX25_AX25_H
+# include <netax25/ax25.h>
+# endif
+# ifdef HAVE_NETECONET_EC_H
+# include <neteconet/ec.h>
+# endif
+# ifdef HAVE_NETIPX_IPX_H
+# include <netipx/ipx.h>
+# endif
+# ifdef HAVE_NETPACKET_PACKET_H
+# include <netpacket/packet.h>
+# endif
+# ifdef HAVE_NETROSE_ROSE_H
+# include <netrose/rose.h>
+# endif
+# ifdef HAVE_NETIUCV_IUCV_H
+# include <netiucv/iucv.h>
+# endif
+
+int
+__libc_sa_len (sa_family_t af)
+{
+ switch (af)
+ {
+# ifdef HAVE_NETATALK_AT_H
+ case AF_APPLETALK:
+ return sizeof (struct sockaddr_at);
+# endif
+# ifdef HAVE_NETASH_ASH_H
+ case AF_ASH:
+ return sizeof (struct sockaddr_ash);
+# endif
+# ifdef HAVE_NETAX25_AX25_H
+ case AF_AX25:
+ return sizeof (struct sockaddr_ax25);
+# endif
+# ifdef HAVE_NETECONET_EC_H
+ case AF_ECONET:
+ return sizeof (struct sockaddr_ec);
+# endif
+ case AF_INET:
+ return sizeof (struct sockaddr_in);
+ case AF_INET6:
+ return sizeof (struct sockaddr_in6);
+# ifdef HAVE_NETIPX_IPX_H
+ case AF_IPX:
+ return sizeof (struct sockaddr_ipx);
+# endif
+# ifdef HAVE_NETIUCV_IUCV_H
+ case AF_IUCV:
+ return sizeof (struct sockaddr_iucv);
+# endif
+ case AF_LOCAL:
+ return sizeof (struct sockaddr_un);
+# ifdef HAVE_NETPACKET_PACKET_H
+ case AF_PACKET:
+ return sizeof (struct sockaddr_ll);
+# endif
+# ifdef HAVE_NETROSE_ROSE_H
+ case AF_ROSE:
+ return sizeof (struct sockaddr_rose);
+# endif
+ }
+ return 0;
+}
+libc_hidden_def (__libc_sa_len)
+
+#endif /* Not _HAVE_SA_LEN. */
diff --git a/libc/stdio-common/vfscanf.c b/libc/stdio-common/vfscanf.c
index dc5f0f94f..e0f976db7 100644
--- a/libc/stdio-common/vfscanf.c
+++ b/libc/stdio-common/vfscanf.c
@@ -2217,7 +2217,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
}
/* Start checking against localized digits, if
- convertion is done correctly. */
+ conversion is done correctly. */
while (1)
{
if (got_e && wp[wpsize - 1] == exp_char
diff --git a/libc/stdlib/Makefile b/libc/stdlib/Makefile
index 89ce992c9..afbe79bc7 100644
--- a/libc/stdlib/Makefile
+++ b/libc/stdlib/Makefile
@@ -175,6 +175,6 @@ $(objpfx)tst-strtod6: $(link-libm)
tst-tls-atexit-lib.so-no-z-defs = yes
-LDFLAGS-tst-tls-atexit = $(common-objpfx)nptl/libpthread.so \
+$(objpfx)tst-tls-atexit: $(common-objpfx)nptl/libpthread.so \
$(common-objpfx)dlfcn/libdl.so
$(objpfx)tst-tls-atexit.out: $(objpfx)tst-tls-atexit-lib.so
diff --git a/libc/stdlib/fmtmsg.c b/libc/stdlib/fmtmsg.c
index 05344f0ad..5185de427 100644
--- a/libc/stdlib/fmtmsg.c
+++ b/libc/stdlib/fmtmsg.c
@@ -116,9 +116,9 @@ fmtmsg (long int classification, const char *label, int severity,
if (cp == NULL)
return MM_NOTOK;
- /* The first field must not contain more then 10 bytes. */
+ /* The first field must not contain more than 10 bytes. */
if (cp - label > 10
- /* The second field must not have more then 14 bytes. */
+ /* The second field must not have more than 14 bytes. */
|| strlen (cp + 1) > 14)
return MM_NOTOK;
}
diff --git a/libc/stdlib/random.c b/libc/stdlib/random.c
index e4302b079..d286bcf22 100644
--- a/libc/stdlib/random.c
+++ b/libc/stdlib/random.c
@@ -160,7 +160,7 @@ static int32_t randtbl[DEG_3 + 1] =
static struct random_data unsafe_state =
{
/* FPTR and RPTR are two pointers into the state info, a front and a rear
- pointer. These two pointers are always rand_sep places aparts, as they
+ pointer. These two pointers are always rand_sep places apart, as they
cycle through the state information. (Yes, this does mean we could get
away with just one pointer, but the code for random is more efficient
this way). The pointers are left positioned as they would be from the call:
diff --git a/libc/stdlib/stdlib.h b/libc/stdlib/stdlib.h
index 99a830dc1..813da19e0 100644
--- a/libc/stdlib/stdlib.h
+++ b/libc/stdlib/stdlib.h
@@ -927,7 +927,7 @@ extern int grantpt (int __fd) __THROW;
Call after grantpt(). */
extern int unlockpt (int __fd) __THROW;
-/* Return the pathname of the pseudo terminal slave assoicated with
+/* Return the pathname of the pseudo terminal slave associated with
the master FD is open on, or NULL on errors.
The returned storage is good until the next call to this function. */
extern char *ptsname (int __fd) __THROW __wur;
diff --git a/libc/stdlib/strtod_l.c b/libc/stdlib/strtod_l.c
index fb223872d..91cb626f7 100644
--- a/libc/stdlib/strtod_l.c
+++ b/libc/stdlib/strtod_l.c
@@ -43,11 +43,10 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **,
# define SET_MANTISSA(flt, mant) \
do { union ieee754_double u; \
u.d = (flt); \
- if ((mant & 0xfffffffffffffULL) == 0) \
- mant = 0x8000000000000ULL; \
- u.ieee.mantissa0 = ((mant) >> 32) & 0xfffff; \
- u.ieee.mantissa1 = (mant) & 0xffffffff; \
- (flt) = u.d; \
+ u.ieee_nan.mantissa0 = (mant) >> 32; \
+ u.ieee_nan.mantissa1 = (mant); \
+ if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \
+ (flt) = u.d; \
} while (0)
#endif
/* End of configuration part. */
diff --git a/libc/stdlib/strtof_l.c b/libc/stdlib/strtof_l.c
index 6fb44bd40..c4c1c1f2d 100644
--- a/libc/stdlib/strtof_l.c
+++ b/libc/stdlib/strtof_l.c
@@ -37,10 +37,9 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **,
#define SET_MANTISSA(flt, mant) \
do { union ieee754_float u; \
u.f = (flt); \
- if ((mant & 0x7fffff) == 0) \
- mant = 0x400000; \
- u.ieee.mantissa = (mant) & 0x7fffff; \
- (flt) = u.f; \
+ u.ieee_nan.mantissa = (mant); \
+ if (u.ieee.mantissa != 0) \
+ (flt) = u.f; \
} while (0)
#include "strtod_l.c"
diff --git a/libc/stdlib/tst-strtod6.c b/libc/stdlib/tst-strtod6.c
index 1d87266a2..15e79fddf 100644
--- a/libc/stdlib/tst-strtod6.c
+++ b/libc/stdlib/tst-strtod6.c
@@ -4,12 +4,13 @@
#include <string.h>
static int
-do_test (void)
+test (const char str[])
{
- static const char str[] = "NaN(blabla)something";
char *endp;
int result = 0;
+ puts (str);
+
double d = strtod (str, &endp);
if (!isnan (d))
{
@@ -64,5 +65,24 @@ do_test (void)
return result;
}
+static int
+do_test (void)
+{
+ int result = 0;
+
+ result |= test ("NaN(blabla)something");
+ result |= test ("NaN(1234)something");
+ /* UINT32_MAX. */
+ result |= test ("NaN(4294967295)something");
+ /* UINT64_MAX. */
+ result |= test ("NaN(18446744073709551615)something");
+ /* The case of zero is special in that "something" has to be done to make the
+ mantissa different from zero, which would mean infinity instead of
+ NaN. */
+ result |= test ("NaN(0)something");
+
+ return result;
+}
+
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
diff --git a/libc/streams/stropts.h b/libc/streams/stropts.h
index 798860264..5af61dc36 100644
--- a/libc/streams/stropts.h
+++ b/libc/streams/stropts.h
@@ -35,7 +35,7 @@ typedef __uid_t uid_t;
typedef __t_scalar_t t_scalar_t;
typedef __t_uscalar_t t_uscalar_t;
-/* Get system specific contants. */
+/* Get system specific constants. */
#include <bits/stropts.h>
diff --git a/libc/string/Makefile b/libc/string/Makefile
index 2991e1fed..bc9a0cec3 100644
--- a/libc/string/Makefile
+++ b/libc/string/Makefile
@@ -71,6 +71,10 @@ noinl-tester-ENV = LANGUAGE=C
tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata
tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata
bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata
+test-strcasecmp-ENV = LOCPATH=$(common-objpfx)localedata
+test-strncasecmp-ENV = LOCPATH=$(common-objpfx)localedata
+test-strcasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata
+test-strncasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata
CFLAGS-inl-tester.c = -fno-builtin
CFLAGS-noinl-tester.c = -fno-builtin
CFLAGS-tst-strlen.c = -fno-builtin
diff --git a/libc/string/test-strcasecmp.c b/libc/string/test-strcasecmp.c
index f32150198..bdfcccaa1 100644
--- a/libc/string/test-strcasecmp.c
+++ b/libc/string/test-strcasecmp.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <locale.h>
#include <ctype.h>
#define TEST_MAIN
#define TEST_NAME "strcasecmp"
@@ -206,14 +207,18 @@ do_random_tests (void)
}
}
-int
-test_main (void)
+static void
+test_locale (const char *locale)
{
size_t i;
- test_init ();
+ if (setlocale (LC_CTYPE, locale) == NULL)
+ {
+ error (0, 0, "cannot set locale \"%s\"", locale);
+ ret = 1;
+ }
- printf ("%23s", "");
+ printf ("%-23s", locale);
FOR_EACH_IMPL (impl, 0)
printf ("\t%s", impl->name);
putchar ('\n');
@@ -246,6 +251,19 @@ test_main (void)
}
do_random_tests ();
+}
+
+int
+test_main (void)
+{
+ test_init ();
+
+ test_locale ("C");
+ test_locale ("en_US.ISO-8859-1");
+ test_locale ("en_US.UTF-8");
+ test_locale ("tr_TR.ISO-8859-9");
+ test_locale ("tr_TR.UTF-8");
+
return ret;
}
diff --git a/libc/string/test-strncasecmp.c b/libc/string/test-strncasecmp.c
index 4eedd3d02..00eca4a26 100644
--- a/libc/string/test-strncasecmp.c
+++ b/libc/string/test-strncasecmp.c
@@ -17,6 +17,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <locale.h>
#include <ctype.h>
#define TEST_MAIN
#define TEST_NAME "strncasecmp"
@@ -256,17 +257,21 @@ bz14195 (void)
check_result (impl, empty_string, "", 5, 0);
}
-int
-test_main (void)
+static void
+test_locale (const char *locale)
{
size_t i;
- test_init ();
+ if (setlocale (LC_CTYPE, locale) == NULL)
+ {
+ error (0, 0, "cannot set locale \"%s\"", locale);
+ ret = 1;
+ }
bz12205 ();
bz14195 ();
- printf ("%23s", "");
+ printf ("%23s", locale);
FOR_EACH_IMPL (impl, 0)
printf ("\t%s", impl->name);
putchar ('\n');
@@ -329,6 +334,19 @@ test_main (void)
}
do_random_tests ();
+}
+
+int
+test_main (void)
+{
+ test_init ();
+
+ test_locale ("C");
+ test_locale ("en_US.ISO-8859-1");
+ test_locale ("en_US.UTF-8");
+ test_locale ("tr_TR.ISO-8859-9");
+ test_locale ("tr_TR.UTF-8");
+
return ret;
}
diff --git a/libc/sunrpc/Makefile b/libc/sunrpc/Makefile
index 7f2f914a4..91e667d22 100644
--- a/libc/sunrpc/Makefile
+++ b/libc/sunrpc/Makefile
@@ -65,7 +65,7 @@ ifeq ($(link-obsolete-rpc),yes)
headers += $(headers-in-tirpc) $(headers-not-in-tirpc)
endif
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
need-export-routines-$(OPTION_EGLIBC_SUNRPC) += \
auth_des auth_unix clnt_gen clnt_perr clnt_tcp \
clnt_udp get_myaddr key_call netname pm_getport \
diff --git a/libc/sunrpc/clnt_tcp.c b/libc/sunrpc/clnt_tcp.c
index b46905fb0..f4ba0efe1 100644
--- a/libc/sunrpc/clnt_tcp.c
+++ b/libc/sunrpc/clnt_tcp.c
@@ -410,7 +410,7 @@ clnttcp_control (CLIENT *cl, int request, char *info)
/*
* This RELIES on the information that, in the call body,
* the version number field is the fifth field from the
- * begining of the RPC header. MUST be changed if the
+ * beginning of the RPC header. MUST be changed if the
* call_struct is changed
*/
memcpy (&ui32, ct->ct_mcall + 4 * BYTES_PER_XDR_UNIT, sizeof (ui32));
@@ -426,7 +426,7 @@ clnttcp_control (CLIENT *cl, int request, char *info)
/*
* This RELIES on the information that, in the call body,
* the program number field is the field from the
- * begining of the RPC header. MUST be changed if the
+ * beginning of the RPC header. MUST be changed if the
* call_struct is changed
*/
memcpy (&ui32, ct->ct_mcall + 3 * BYTES_PER_XDR_UNIT, sizeof (ui32));
diff --git a/libc/sunrpc/clnt_udp.c b/libc/sunrpc/clnt_udp.c
index 7fc077730..1b6a20b82 100644
--- a/libc/sunrpc/clnt_udp.c
+++ b/libc/sunrpc/clnt_udp.c
@@ -598,7 +598,7 @@ clntudp_control (CLIENT *cl, int request, char *info)
/*
* This RELIES on the information that, in the call body,
* the version number field is the fifth field from the
- * begining of the RPC header. MUST be changed if the
+ * beginning of the RPC header. MUST be changed if the
* call_struct is changed
*/
memcpy (&ui32, cu->cu_outbuf + 4 * BYTES_PER_XDR_UNIT, sizeof (ui32));
@@ -614,7 +614,7 @@ clntudp_control (CLIENT *cl, int request, char *info)
/*
* This RELIES on the information that, in the call body,
* the program number field is the field from the
- * begining of the RPC header. MUST be changed if the
+ * beginning of the RPC header. MUST be changed if the
* call_struct is changed
*/
memcpy (&ui32, cu->cu_outbuf + 3 * BYTES_PER_XDR_UNIT, sizeof (ui32));
diff --git a/libc/sunrpc/clnt_unix.c b/libc/sunrpc/clnt_unix.c
index 2ad819725..32d88b942 100644
--- a/libc/sunrpc/clnt_unix.c
+++ b/libc/sunrpc/clnt_unix.c
@@ -382,7 +382,7 @@ clntunix_control (CLIENT *cl, int request, char *info)
/*
* This RELIES on the information that, in the call body,
* the version number field is the fifth field from the
- * begining of the RPC header. MUST be changed if the
+ * beginning of the RPC header. MUST be changed if the
* call_struct is changed
*/
memcpy (&ui32, ct->ct_mcall + 4 * BYTES_PER_XDR_UNIT, sizeof (ui32));
@@ -398,7 +398,7 @@ clntunix_control (CLIENT *cl, int request, char *info)
/*
* This RELIES on the information that, in the call body,
* the program number field is the field from the
- * begining of the RPC header. MUST be changed if the
+ * beginning of the RPC header. MUST be changed if the
* call_struct is changed
*/
memcpy (&ui32, ct->ct_mcall + 3 * BYTES_PER_XDR_UNIT, sizeof (ui32));
diff --git a/libc/sunrpc/rpc/xdr.h b/libc/sunrpc/rpc/xdr.h
index 4e31eb5fe..d80d8f735 100644
--- a/libc/sunrpc/rpc/xdr.h
+++ b/libc/sunrpc/rpc/xdr.h
@@ -221,7 +221,7 @@ typedef bool_t (*xdrproc_t) (XDR *, void *,...);
/*
* Support struct for discriminated unions.
* You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer. The xdr_union routine gets
+ * an entry with a null procedure pointer. The xdr_union routine gets
* the discriminant value and then searches the array of structures
* for a matching value. If a match is found the associated xdr routine
* is called to handle that part of the union. If there is
diff --git a/libc/sunrpc/rpc_thread.c b/libc/sunrpc/rpc_thread.c
index 94d9f1fd8..fee47f7bf 100644
--- a/libc/sunrpc/rpc_thread.c
+++ b/libc/sunrpc/rpc_thread.c
@@ -80,7 +80,7 @@ __rpc_thread_variables (void)
/* Global variables If we're single-threaded, or if this is the first
thread using the variable, use the existing global variable. This
- provides backwards compatability for existing applications which
+ provides backwards compatibility for existing applications which
dynamically link against this code. */
#undef svc_fdset
#undef rpc_createerr
diff --git a/libc/sysdeps/gnu/Makefile b/libc/sysdeps/gnu/Makefile
index 38fa88c24..9c313dec3 100644
--- a/libc/sysdeps/gnu/Makefile
+++ b/libc/sysdeps/gnu/Makefile
@@ -29,7 +29,7 @@ ifeq ($(subdir),stdio-common)
errlist-c = $(firstword $(wildcard $(addsuffix /errlist.c,$(sysdirs) .)))
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
$(objpfx)errlist-compat.c: $(errlist-c) $(..)sysdeps/gnu/errlist-compat.awk \
$(common-objpfx)Versions.v.i $(before-compile)
else
diff --git a/libc/sysdeps/gnu/ldsodefs.h b/libc/sysdeps/gnu/ldsodefs.h
new file mode 100644
index 000000000..3cc42845b
--- /dev/null
+++ b/libc/sysdeps/gnu/ldsodefs.h
@@ -0,0 +1,48 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. GNU.
+ Copyright (C) 2001-2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _GNU_LDSODEFS_H
+#define _GNU_LDSODEFS_H 1
+
+#include <elf.h>
+#include <libc-abis.h>
+#include <string.h>
+
+/* Accept binaries which identify the binary as using GNU extensions. */
+#define VALID_ELF_HEADER(hdr,exp,size) (memcmp (hdr, exp, size) == 0 \
+ || memcmp (hdr, expected2, size) == 0)
+#define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV \
+ || osabi == ELFOSABI_GNU)
+#define VALID_ELF_ABIVERSION(osabi,ver) \
+ (ver == 0 || (osabi == ELFOSABI_GNU && ver < LIBC_ABI_MAX))
+#define MORE_ELF_HEADER_DATA \
+ static const unsigned char expected2[EI_PAD] = \
+ { \
+ [EI_MAG0] = ELFMAG0, \
+ [EI_MAG1] = ELFMAG1, \
+ [EI_MAG2] = ELFMAG2, \
+ [EI_MAG3] = ELFMAG3, \
+ [EI_CLASS] = ELFW(CLASS), \
+ [EI_DATA] = byteorder, \
+ [EI_VERSION] = EV_CURRENT, \
+ [EI_OSABI] = ELFOSABI_GNU \
+ }
+
+#include_next <ldsodefs.h>
+
+#endif /* _GNU_LDSODEFS_H */
diff --git a/libc/sysdeps/i386/fpu/fraiseexcpt.c b/libc/sysdeps/i386/fpu/fraiseexcpt.c
index 141681d93..c359e5e5a 100644
--- a/libc/sysdeps/i386/fpu/fraiseexcpt.c
+++ b/libc/sysdeps/i386/fpu/fraiseexcpt.c
@@ -31,7 +31,7 @@ __feraiseexcept (int excepts)
/* First: invalid exception. */
if ((FE_INVALID & excepts) != 0)
{
- /* One example of a invalid operation is 0.0 / 0.0. */
+ /* One example of an invalid operation is 0.0 / 0.0. */
double d;
__asm__ __volatile__ ("fldz; fdiv %%st, %%st(0); fwait" : "=t" (d));
(void) &d;
diff --git a/libc/sysdeps/i386/fpu/libm-test-ulps b/libc/sysdeps/i386/fpu/libm-test-ulps
index 530dbd740..4759aa9f7 100644
--- a/libc/sysdeps/i386/fpu/libm-test-ulps
+++ b/libc/sysdeps/i386/fpu/libm-test-ulps
@@ -5470,9 +5470,35 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "gamma (-0x1p-10)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "gamma (-0x1p-15)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "gamma (-0x1p-20)":
+double: 1
+idouble: 1
+Test "gamma (-0x1p-30)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "gamma (-0x1p-5)":
+double: 1
+idouble: 1
Test "gamma (0.7)":
float: 1
ifloat: 1
+Test "gamma (0x1p-40)":
+ildouble: 1
+ldouble: 1
Test "gamma (1.2)":
double: 1
float: 2
@@ -5635,9 +5661,9 @@ ildouble: 1
ldouble: 1
Test "jn (10, 10.0)":
double: 1
-float: 1
+float: 2
idouble: 1
-ifloat: 1
+ifloat: 2
ildouble: 2
ldouble: 2
Test "jn (10, 2.0)":
@@ -5648,6 +5674,14 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "jn (2, 0x1p1023)":
+double: 1
+idouble: 1
+Test "jn (2, 0x1p127)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "jn (2, 2.4048255576957729)":
double: 1
float: 1
@@ -5715,9 +5749,35 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "lgamma (-0x1p-10)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "lgamma (-0x1p-15)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "lgamma (-0x1p-20)":
+double: 1
+idouble: 1
+Test "lgamma (-0x1p-30)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "lgamma (-0x1p-5)":
+double: 1
+idouble: 1
Test "lgamma (0.7)":
float: 1
ifloat: 1
+Test "lgamma (0x1p-40)":
+ildouble: 1
+ldouble: 1
Test "lgamma (1.2)":
double: 1
float: 2
@@ -6844,6 +6904,14 @@ ifloat: 1
Test "yn (10, 2.0)":
float: 3
ifloat: 3
+Test "yn (2, 0x1.ffff62p+99)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "yn (2, 0x1p127)":
+float: 2
+ifloat: 2
Test "yn (3, 0.125)":
ildouble: 1
ldouble: 1
diff --git a/libc/sysdeps/i386/i686/multiarch/memcmp-sse4.S b/libc/sysdeps/i386/i686/multiarch/memcmp-sse4.S
index 14226f5a8..2984a374c 100644
--- a/libc/sysdeps/i386/i686/multiarch/memcmp-sse4.S
+++ b/libc/sysdeps/i386/i686/multiarch/memcmp-sse4.S
@@ -58,7 +58,7 @@
/* Get the entry and convert the relative offset to the \
absolute address. */ \
addl (%ebx,INDEX,SCALE), %ebx; \
-/* We loaded the jump table and adjuested EDX/ESI. Go. */ \
+/* We loaded the jump table and adjusted EDX/ESI. Go. */ \
jmp *%ebx
# else
# define JMPTBL(I, B) I
diff --git a/libc/sysdeps/i386/i686/multiarch/memset-sse2-rep.S b/libc/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
index 53a0b3df0..bcea296a9 100644
--- a/libc/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
+++ b/libc/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
@@ -62,7 +62,7 @@
absolute address. */ \
add (%ebx,%ecx,4), %ebx; \
add %ecx, %edx; \
- /* We loaded the jump table and adjuested EDX. Go. */ \
+ /* We loaded the jump table and adjusted EDX. Go. */ \
jmp *%ebx
#else
# define ENTRANCE
diff --git a/libc/sysdeps/i386/i686/multiarch/memset-sse2.S b/libc/sysdeps/i386/i686/multiarch/memset-sse2.S
index 2db588446..36bca84a7 100644
--- a/libc/sysdeps/i386/i686/multiarch/memset-sse2.S
+++ b/libc/sysdeps/i386/i686/multiarch/memset-sse2.S
@@ -62,7 +62,7 @@
absolute address. */ \
add (%ebx,%ecx,4), %ebx; \
add %ecx, %edx; \
- /* We loaded the jump table and adjuested EDX. Go. */ \
+ /* We loaded the jump table and adjusted EDX. Go. */ \
jmp *%ebx
#else
# define ENTRANCE
diff --git a/libc/sysdeps/i386/i686/multiarch/strcasecmp.S b/libc/sysdeps/i386/i686/multiarch/strcasecmp.S
index 2444af26c..25de4daf4 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcasecmp.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcasecmp.S
@@ -37,6 +37,8 @@ ENTRY(__strcasecmp)
leal __strcasecmp_ssse3@GOTOFF(%ebx), %eax
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
jz 2f
+ testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ jnz 2f
leal __strcasecmp_sse4_2@GOTOFF(%ebx), %eax
2: popl %ebx
cfi_adjust_cfa_offset (-4)
@@ -56,6 +58,8 @@ ENTRY(__strcasecmp)
leal __strcasecmp_ssse3, %eax
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
jz 2f
+ testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
+ jnz 2f
leal __strcasecmp_sse4_2, %eax
2: ret
END(__strcasecmp)
diff --git a/libc/sysdeps/i386/i686/multiarch/strcat-sse2.S b/libc/sysdeps/i386/i686/multiarch/strcat-sse2.S
index 72a1acad4..62d60cdb7 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcat-sse2.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcat-sse2.S
@@ -49,7 +49,7 @@
/* Get the entry and convert the relative offset to the \
absolute address. */ \
addl (%ecx,INDEX,SCALE), %ecx; \
- /* We loaded the jump table and adjuested ECX. Go. */ \
+ /* We loaded the jump table and adjusted ECX. Go. */ \
jmp *%ecx
# else
# define JMPTBL(I, B) I
diff --git a/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S b/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
index 7177205d0..355ed4e67 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
@@ -53,7 +53,7 @@
# define STR1 8
# endif
# define STR2 STR1+4
-# define LOCALE 12 /* Loaded before the adjustement. */
+# define LOCALE 12 /* Loaded before the adjustment. */
# ifdef PIC
# define RETURN POP (%edi); POP (%ebx); ret; \
.p2align 4; CFI_PUSH (%ebx); CFI_PUSH (%edi)
@@ -73,7 +73,7 @@
# endif
# define STR2 STR1+4
# define CNT STR2+4
-# define LOCALE 16 /* Loaded before the adjustement. */
+# define LOCALE 16 /* Loaded before the adjustment. */
# ifdef PIC
# define RETURN POP (%edi); POP (REM); POP (%ebx); ret; \
.p2align 4; \
@@ -121,8 +121,14 @@ ENTRY (__strcasecmp_sse4_2)
movl (%eax), %eax
# endif
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+# ifdef PIC
+ je L(ascii)
+ POP (%ebx)
+ jmp __strcasecmp_nonascii
+# else
jne __strcasecmp_nonascii
jmp L(ascii)
+# endif
END (__strcasecmp_sse4_2)
#endif
@@ -152,8 +158,14 @@ ENTRY (__strncasecmp_sse4_2)
movl (%eax), %eax
# endif
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+# ifdef PIC
+ je L(ascii)
+ POP (%ebx)
+ jmp __strncasecmp_nonascii
+# else
jne __strncasecmp_nonascii
jmp L(ascii)
+# endif
END (__strncasecmp_sse4_2)
#endif
diff --git a/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
index f2bc20427..3eb304bca 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
@@ -61,7 +61,7 @@
# define STR1 4
# endif
# define STR2 STR1+4
-# define LOCALE 12 /* Loaded before the adjustement. */
+# define LOCALE 12 /* Loaded before the adjustment. */
# ifdef PIC
# define RETURN POP (%ebx); ret; .p2align 4; CFI_PUSH (%ebx)
# else
@@ -82,7 +82,7 @@
# endif
# define STR2 STR1+4
# define CNT STR2+4
-# define LOCALE 16 /* Loaded before the adjustement. */
+# define LOCALE 16 /* Loaded before the adjustment. */
# ifdef PIC
# define RETURN POP (REM); POP (%ebx); ret; \
.p2align 4; CFI_PUSH (%ebx); CFI_PUSH (REM)
@@ -138,8 +138,14 @@ ENTRY (__strcasecmp_ssse3)
movl (%eax), %eax
# endif
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+# ifdef PIC
+ je L(ascii)
+ POP (%ebx)
+ jmp __strcasecmp_nonascii
+# else
jne __strcasecmp_nonascii
jmp L(ascii)
+# endif
END (__strcasecmp_ssse3)
#endif
@@ -169,8 +175,14 @@ ENTRY (__strncasecmp_ssse3)
movl (%eax), %eax
# endif
testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+# ifdef PIC
+ je L(ascii)
+ POP (%ebx)
+ jmp __strncasecmp_nonascii
+# else
jne __strncasecmp_nonascii
jmp L(ascii)
+# endif
END (__strncasecmp_ssse3)
#endif
diff --git a/libc/sysdeps/i386/i686/multiarch/strcmp.S b/libc/sysdeps/i386/i686/multiarch/strcmp.S
index 7dc2cefab..41dd3b3f1 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcmp.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcmp.S
@@ -68,6 +68,8 @@ ENTRY(STRCMP)
leal __STRCMP_SSSE3@GOTOFF(%ebx), %eax
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
jz 2f
+ testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ jnz 2f
leal __STRCMP_SSE4_2@GOTOFF(%ebx), %eax
2: popl %ebx
cfi_adjust_cfa_offset (-4)
@@ -87,6 +89,8 @@ ENTRY(STRCMP)
leal __STRCMP_SSSE3, %eax
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
jz 2f
+ testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
+ jnz 2f
leal __STRCMP_SSE4_2, %eax
2: ret
END(STRCMP)
diff --git a/libc/sysdeps/i386/i686/multiarch/strcpy-sse2.S b/libc/sysdeps/i386/i686/multiarch/strcpy-sse2.S
index 07db134fa..d942ac285 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcpy-sse2.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcpy-sse2.S
@@ -64,7 +64,7 @@
/* Get the entry and convert the relative offset to the \
absolute address. */ \
addl (%ecx,INDEX,SCALE), %ecx; \
- /* We loaded the jump table and adjuested ECX. Go. */ \
+ /* We loaded the jump table and adjusted ECX. Go. */ \
jmp *%ecx
# else
# define JMPTBL(I, B) I
@@ -128,7 +128,7 @@ ENTRY (STRCPY)
sub %ecx, %edi
-/* If source adress alignment != destination adress alignment */
+/* If source address alignment != destination address alignment */
.p2align 4
L(Unalign16Both):
mov $16, %ecx
@@ -271,7 +271,7 @@ L(Unaligned64Leave):
lea 49(%edi, %edx), %edi
jmp L(StrncpyFillTailWithZero)
-/* If source adress alignment == destination adress alignment */
+/* If source address alignment == destination address alignment */
L(SourceStringAlignmentZero):
pxor %xmm0, %xmm0
diff --git a/libc/sysdeps/i386/i686/multiarch/strncase.S b/libc/sysdeps/i386/i686/multiarch/strncase.S
index 939cd96ce..de97e1b1a 100644
--- a/libc/sysdeps/i386/i686/multiarch/strncase.S
+++ b/libc/sysdeps/i386/i686/multiarch/strncase.S
@@ -37,6 +37,8 @@ ENTRY(__strncasecmp)
leal __strncasecmp_ssse3@GOTOFF(%ebx), %eax
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
jz 2f
+ testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ jnz 2f
leal __strncasecmp_sse4_2@GOTOFF(%ebx), %eax
2: popl %ebx
cfi_adjust_cfa_offset (-4)
@@ -56,6 +58,8 @@ ENTRY(__strncasecmp)
leal __strncasecmp_ssse3, %eax
testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
jz 2f
+ testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features
+ jnz 2f
leal __strncasecmp_sse4_2, %eax
2: ret
END(__strncasecmp)
diff --git a/libc/sysdeps/i386/i686/multiarch/strstr-c.c b/libc/sysdeps/i386/i686/multiarch/strstr-c.c
index 7516c7ffe..7b8794e9f 100644
--- a/libc/sysdeps/i386/i686/multiarch/strstr-c.c
+++ b/libc/sysdeps/i386/i686/multiarch/strstr-c.c
@@ -4,7 +4,7 @@
#include "init-arch.h"
#define STRSTR __strstr_ia32
-#if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
+#if defined SHARED && !defined NO_HIDDEN
#undef libc_hidden_builtin_def
#define libc_hidden_builtin_def(name) \
__hidden_ver1 (__strstr_ia32, __GI_strstr, __strstr_ia32);
diff --git a/libc/sysdeps/i386/stpncpy.S b/libc/sysdeps/i386/stpncpy.S
index 11882738d..b23e8208a 100644
--- a/libc/sysdeps/i386/stpncpy.S
+++ b/libc/sysdeps/i386/stpncpy.S
@@ -1,4 +1,4 @@
-/* copy no more then N bytes from SRC to DEST, returning the address of
+/* copy no more than N bytes from SRC to DEST, returning the address of
the terminating '\0' in DEST.
For Intel 80x86, x>=3.
Copyright (C) 1994-2013 Free Software Foundation, Inc.
diff --git a/libc/sysdeps/i386/strpbrk.S b/libc/sysdeps/i386/strpbrk.S
index bbc0cbeb6..246ae27c5 100644
--- a/libc/sysdeps/i386/strpbrk.S
+++ b/libc/sysdeps/i386/strpbrk.S
@@ -205,7 +205,7 @@ L(1): leal -4(%edx), %eax /* prepare loop */
1. a character in the stopset was found
and
2. the end of the string was found
- But as a sign that the chracter is in the stopset we store its
+ But as a sign that the character is in the stopset we store its
value in the table. But the value of NUL is NUL so the loop
terminates for NUL in every case. */
diff --git a/libc/sysdeps/ieee754/flt-32/e_jnf.c b/libc/sysdeps/ieee754/flt-32/e_jnf.c
index ad26d7e8a..5984d94a3 100644
--- a/libc/sysdeps/ieee754/flt-32/e_jnf.c
+++ b/libc/sysdeps/ieee754/flt-32/e_jnf.c
@@ -54,7 +54,7 @@ __ieee754_jnf(int n, float x)
b = __ieee754_j1f(x);
for(i=1;i<n;i++){
temp = b;
- b = b*((float)(i+i)/x) - a; /* avoid underflow */
+ b = b*((double)(i+i)/x) - a; /* avoid underflow */
a = temp;
}
} else {
@@ -196,7 +196,7 @@ __ieee754_ynf(int n, float x)
GET_FLOAT_WORD(ib,b);
for(i=1;i<n&&ib!=0xff800000;i++){
temp = b;
- b = ((float)(i+i)/x)*b - a;
+ b = ((double)(i+i)/x)*b - a;
GET_FLOAT_WORD(ib,b);
a = temp;
}
diff --git a/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index 2e9226908..0dba9af8d 100644
--- a/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -150,8 +150,8 @@ __ieee754_lgammaf_r(float x, int *signgamp)
*signgamp = -1;
return one/fabsf(x);
}
- if(__builtin_expect(ix<0x1c800000, 0)) {
- /* |x|<2**-70, return -log(|x|) */
+ if(__builtin_expect(ix<0x30800000, 0)) {
+ /* |x|<2**-30, return -log(|x|) */
if(hx<0) {
*signgamp = -1;
return -__ieee754_logf(-x);
diff --git a/libc/sysdeps/ieee754/k_standard.c b/libc/sysdeps/ieee754/k_standard.c
index 150921f90..4a0d82d1a 100644
--- a/libc/sysdeps/ieee754/k_standard.c
+++ b/libc/sysdeps/ieee754/k_standard.c
@@ -31,7 +31,7 @@ static char rcsid[] = "$NetBSD: k_standard.c,v 1.6 1995/05/10 20:46:35 jtc Exp $
#endif /* !defined(_USE_WRITE) */
/* XXX gcc versions until now don't delay the 0.0/0.0 division until
- runtime but produce NaN at copile time. This is wrong since the
+ runtime but produce NaN at compile time. This is wrong since the
exceptions are not set correctly. */
#if 0
static const double zero = 0.0; /* used as const */
diff --git a/libc/sysdeps/ieee754/ldbl-128/e_expl.c b/libc/sysdeps/ieee754/ldbl-128/e_expl.c
index 589f957c2..23c204ce0 100644
--- a/libc/sysdeps/ieee754/ldbl-128/e_expl.c
+++ b/libc/sysdeps/ieee754/ldbl-128/e_expl.c
@@ -117,7 +117,7 @@ static const long double C[] = {
#define TWO15 C[11]
32768.0L,
-/* Chebyshev polynom coeficients for (exp(x)-1)/x */
+/* Chebyshev polynom coefficients for (exp(x)-1)/x */
#define P1 C[12]
#define P2 C[13]
#define P3 C[14]
diff --git a/libc/sysdeps/ieee754/ldbl-128/strtold_l.c b/libc/sysdeps/ieee754/ldbl-128/strtold_l.c
index 8e0bc0319..d3a1d1e86 100644
--- a/libc/sysdeps/ieee754/ldbl-128/strtold_l.c
+++ b/libc/sysdeps/ieee754/ldbl-128/strtold_l.c
@@ -34,11 +34,13 @@
#define SET_MANTISSA(flt, mant) \
do { union ieee854_long_double u; \
u.d = (flt); \
- u.ieee.mantissa0 = 0x8000; \
- u.ieee.mantissa1 = 0; \
- u.ieee.mantissa2 = ((mant) >> 32); \
- u.ieee.mantissa3 = (mant) & 0xffffffff; \
- (flt) = u.d; \
+ u.ieee_nan.mantissa0 = 0; \
+ u.ieee_nan.mantissa1 = 0; \
+ u.ieee_nan.mantissa2 = (mant) >> 32; \
+ u.ieee_nan.mantissa3 = (mant); \
+ if ((u.ieee.mantissa0 | u.ieee.mantissa1 \
+ | u.ieee.mantissa2 | u.ieee.mantissa3) != 0) \
+ (flt) = u.d; \
} while (0)
#include <strtod_l.c>
diff --git a/libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c b/libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c
index b599f369a..1b994cd7a 100644
--- a/libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c
+++ b/libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c
@@ -116,7 +116,7 @@ static const long double C[] = {
#define TWO15 C[11]
32768.0L,
-/* Chebyshev polynom coeficients for (exp(x)-1)/x */
+/* Chebyshev polynom coefficients for (exp(x)-1)/x */
#define P1 C[12]
#define P2 C[13]
#define P3 C[14]
diff --git a/libc/sysdeps/ieee754/ldbl-128ibm/ieee754.h b/libc/sysdeps/ieee754/ldbl-128ibm/ieee754.h
index e5644f5d3..9e94f53b0 100644
--- a/libc/sysdeps/ieee754/ldbl-128ibm/ieee754.h
+++ b/libc/sysdeps/ieee754/ldbl-128ibm/ieee754.h
@@ -199,6 +199,25 @@ union ibm_extended_long_double
unsigned int mantissa2:20;
unsigned int mantissa3:32;
} ieee;
+
+ /* This format makes it easier to see if a NaN is a signalling NaN. */
+ struct
+ { /* Big endian. There is no other. */
+
+ unsigned int negative:1;
+ unsigned int exponent:11;
+ unsigned int quiet_nan:1;
+ /* Together Mantissa0-3 comprise the mantissa. */
+ unsigned int mantissa0:19;
+ unsigned int mantissa1:32;
+
+ unsigned int negative2:1;
+ unsigned int exponent2:11;
+ /* There is an implied 1 here? */
+ /* Together these comprise the mantissa. */
+ unsigned int mantissa2:20;
+ unsigned int mantissa3:32;
+ } ieee_nan;
};
#define IBM_EXTENDED_LONG_DOUBLE_BIAS 0x3ff /* Added to exponent. */
diff --git a/libc/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c b/libc/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c
index 3b4af5423..a344e9288 100644
--- a/libc/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c
+++ b/libc/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c
@@ -24,9 +24,7 @@
__complex__ long double
__cprojl (__complex__ long double x)
{
- if (isnan (__real__ x) && isnan (__imag__ x))
- return x;
- else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
+ if (__isinf_nsl (__real__ x) || __isinf_nsl (__imag__ x))
{
__complex__ long double res;
diff --git a/libc/sysdeps/ieee754/ldbl-128ibm/strtold_l.c b/libc/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
index 93415f0f0..04e328857 100644
--- a/libc/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
+++ b/libc/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
@@ -44,11 +44,10 @@ libc_hidden_proto (STRTOF)
# define SET_MANTISSA(flt, mant) \
do { union ibm_extended_long_double u; \
u.d = (flt); \
- if ((mant & 0xfffffffffffffULL) == 0) \
- mant = 0x8000000000000ULL; \
- u.ieee.mantissa0 = ((mant) >> 32) & 0xfffff; \
- u.ieee.mantissa1 = (mant) & 0xffffffff; \
- (flt) = u.d; \
+ u.ieee_nan.mantissa0 = (mant) >> 32; \
+ u.ieee_nan.mantissa1 = (mant); \
+ if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \
+ (flt) = u.d; \
} while (0)
#include <strtod_l.c>
diff --git a/libc/sysdeps/ieee754/ldbl-64-128/strtold_l.c b/libc/sysdeps/ieee754/ldbl-64-128/strtold_l.c
index 8182b2bcd..e9b33f2d8 100644
--- a/libc/sysdeps/ieee754/ldbl-64-128/strtold_l.c
+++ b/libc/sysdeps/ieee754/ldbl-64-128/strtold_l.c
@@ -44,11 +44,13 @@ libc_hidden_proto (STRTOF)
#define SET_MANTISSA(flt, mant) \
do { union ieee854_long_double u; \
u.d = (flt); \
- u.ieee.mantissa0 = 0x8000; \
- u.ieee.mantissa1 = 0; \
- u.ieee.mantissa2 = ((mant) >> 32); \
- u.ieee.mantissa3 = (mant) & 0xffffffff; \
- (flt) = u.d; \
+ u.ieee_nan.mantissa0 = 0; \
+ u.ieee_nan.mantissa1 = 0; \
+ u.ieee_nan.mantissa2 = (mant) >> 32; \
+ u.ieee_nan.mantissa3 = (mant); \
+ if ((u.ieee.mantissa0 | u.ieee.mantissa1 \
+ | u.ieee.mantissa2 | u.ieee.mantissa3) != 0) \
+ (flt) = u.d; \
} while (0)
#include <strtod_l.c>
diff --git a/libc/sysdeps/ieee754/ldbl-96/strtold_l.c b/libc/sysdeps/ieee754/ldbl-96/strtold_l.c
index ded84f342..dccf98c46 100644
--- a/libc/sysdeps/ieee754/ldbl-96/strtold_l.c
+++ b/libc/sysdeps/ieee754/ldbl-96/strtold_l.c
@@ -34,11 +34,10 @@
#define SET_MANTISSA(flt, mant) \
do { union ieee854_long_double u; \
u.d = (flt); \
- if ((mant & 0x7fffffffffffffffULL) == 0) \
- mant = 0x4000000000000000ULL; \
- u.ieee.mantissa0 = (((mant) >> 32) & 0x7fffffff) | 0x80000000; \
- u.ieee.mantissa1 = (mant) & 0xffffffff; \
- (flt) = u.d; \
+ u.ieee_nan.mantissa0 = (mant) >> 32; \
+ u.ieee_nan.mantissa1 = (mant); \
+ if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0) \
+ (flt) = u.d; \
} while (0)
#include <stdlib/strtod_l.c>
diff --git a/libc/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h b/libc/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
index b0b863cba..af861c11e 100644
--- a/libc/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
+++ b/libc/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
@@ -10,7 +10,7 @@
SHLIB_COMPAT(lib, introduced, LONG_DOUBLE_COMPAT_VERSION)
#define long_double_symbol(lib, local, symbol) \
long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION)
-#if defined SHARED && defined DO_VERSIONING
+#ifdef SHARED
# define ldbl_hidden_def(local, name) libc_hidden_ver (local, name)
# define ldbl_strong_alias(name, aliasname) \
strong_alias (name, __GL_##name##_##aliasname) \
diff --git a/libc/sysdeps/mach/hurd/bits/errno.h b/libc/sysdeps/mach/hurd/bits/errno.h
index 3b6fe76b3..d20ffe654 100644
--- a/libc/sysdeps/mach/hurd/bits/errno.h
+++ b/libc/sysdeps/mach/hurd/bits/errno.h
@@ -9,6 +9,14 @@
enum __error_t_codes
{
+ /* The value zero always means success and it is perfectly fine for
+ code to use 0 explicitly (or implicitly, e.g. via Boolean coercion).
+ Having an enum entry for zero both makes the debugger print the name
+ for error_t-typed zero values, and prevents the compiler from
+ issuing warnings about 'case 0:' in a switch on an error_t-typed
+ value. */
+ ESUCCESS = 0,
+
#undef EDOM
#undef ERANGE
EPERM = _HURD_ERRNO (1),
@@ -151,7 +159,7 @@ enum __error_t_codes
EDQUOT = _HURD_ERRNO (69),
#define EDQUOT _HURD_ERRNO (69)/* Disk quota exceeded */
ESTALE = _HURD_ERRNO (70),
-#define ESTALE _HURD_ERRNO (70)/* Stale NFS file handle */
+#define ESTALE _HURD_ERRNO (70)/* Stale file handle */
EREMOTE = _HURD_ERRNO (71),
#define EREMOTE _HURD_ERRNO (71)/* Object is remote */
EBADRPC = _HURD_ERRNO (72),
diff --git a/libc/sysdeps/mach/hurd/check_fds.c b/libc/sysdeps/mach/hurd/check_fds.c
index 979fcb7de..cf2064367 100644
--- a/libc/sysdeps/mach/hurd/check_fds.c
+++ b/libc/sysdeps/mach/hurd/check_fds.c
@@ -42,7 +42,7 @@ check_one_fd (int fd, int mode)
{
/* This descriptor hasn't been opened. We try to allocate the
descriptor and open /dev/null on it so that the SUID program
- we are about to start does not accidently use this
+ we are about to start does not accidentally use this
descriptor. */
d = _hurd_alloc_fd (NULL, fd);
if (d != NULL)
diff --git a/libc/sysdeps/mach/hurd/dl-sysdep.c b/libc/sysdeps/mach/hurd/dl-sysdep.c
index d85c22a03..1788ede94 100644
--- a/libc/sysdeps/mach/hurd/dl-sysdep.c
+++ b/libc/sysdeps/mach/hurd/dl-sysdep.c
@@ -54,7 +54,7 @@ int __libc_enable_secure = 0;
INTVARDEF(__libc_enable_secure)
int __libc_multiple_libcs = 0; /* Defining this here avoids the inclusion
of init-first. */
-/* This variable containts the lowest stack address ever used. */
+/* This variable contains the lowest stack address ever used. */
void *__libc_stack_end;
#if HP_TIMING_AVAIL
diff --git a/libc/sysdeps/mach/hurd/errnos.awk b/libc/sysdeps/mach/hurd/errnos.awk
index 35f5628b8..2434daab2 100644
--- a/libc/sysdeps/mach/hurd/errnos.awk
+++ b/libc/sysdeps/mach/hurd/errnos.awk
@@ -31,6 +31,14 @@ BEGIN {
print "";
print "#ifdef _ERRNO_H\n";
print "enum __error_t_codes\n{";
+ print "\t/* The value zero always means success and it is perfectly fine for";
+ print "\t code to use 0 explicitly (or implicitly, e.g. via Boolean coercion).";
+ print "\t Having an enum entry for zero both makes the debugger print the name";
+ print "\t for error_t-typed zero values, and prevents the compiler from";
+ print "\t issuing warnings about 'case 0:' in a switch on an error_t-typed";
+ print "\t value. */";
+ print "\tESUCCESS = 0,"
+ print "";
errnoh = 0;
maxerrno = 0;
in_mach_errors = "";
diff --git a/libc/sysdeps/mach/hurd/i386/init-first.c b/libc/sysdeps/mach/hurd/i386/init-first.c
index 70378d806..8fb613b55 100644
--- a/libc/sysdeps/mach/hurd/i386/init-first.c
+++ b/libc/sysdeps/mach/hurd/i386/init-first.c
@@ -122,8 +122,8 @@ init1 (int argc, char *arg0, ...)
/* We may need to see our own phdrs, e.g. for TLS setup.
Try the usual kludge to find the headers without help from
the exec server. */
- extern const void _start;
- const ElfW(Ehdr) *const ehdr = &_start;
+ extern const void __executable_start;
+ const ElfW(Ehdr) *const ehdr = &__executable_start;
_dl_phdr = (const void *) ehdr + ehdr->e_phoff;
_dl_phnum = ehdr->e_phnum;
assert (ehdr->e_phentsize == sizeof (ElfW(Phdr)));
diff --git a/libc/sysdeps/mach/hurd/profil.c b/libc/sysdeps/mach/hurd/profil.c
index fee244a12..2ed24992b 100644
--- a/libc/sysdeps/mach/hurd/profil.c
+++ b/libc/sysdeps/mach/hurd/profil.c
@@ -216,7 +216,7 @@ fork_profil_parent (void)
}
text_set_element (_hurd_fork_parent_hook, fork_profil_parent);
-/* In the childs, unlock the interlock, and start a profiling thread up
+/* In the child, unlock the interlock, and start a profiling thread up
if necessary. */
static void
fork_profil_child (void)
diff --git a/libc/sysdeps/posix/getaddrinfo.c b/libc/sysdeps/posix/getaddrinfo.c
index 7bb3ded9a..52177e454 100644
--- a/libc/sysdeps/posix/getaddrinfo.c
+++ b/libc/sysdeps/posix/getaddrinfo.c
@@ -802,7 +802,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
&nip);
/* Initialize configurations. */
- if (__builtin_expect (!_res_hconf.initialized, 0))
+ if (__glibc_unlikely (!_res_hconf.initialized))
_res_hconf_init ();
if (__res_maybe_init (&_res, 0) == -1)
no_more = 1;
diff --git a/libc/sysdeps/powerpc/powerpc32/backtrace.c b/libc/sysdeps/powerpc/powerpc32/backtrace.c
index b4b11dd03..8d413e620 100644
--- a/libc/sysdeps/powerpc/powerpc32/backtrace.c
+++ b/libc/sysdeps/powerpc/powerpc32/backtrace.c
@@ -18,6 +18,9 @@
#include <execinfo.h>
#include <stddef.h>
+#include <string.h>
+#include <signal.h>
+#include <bits/libc-vdso.h>
/* This is the stack layout we see with every stack frame.
Note that every routine is required by the ABI to lay out the stack
@@ -35,6 +38,46 @@ struct layout
void *return_address;
};
+#define SIGNAL_FRAMESIZE 64
+
+/* Since the signal handler is just like any other function it needs to
+ save/restore its LR and it will save it into callers stack frame.
+ Since a signal handler doesn't have a caller, the kernel creates a
+ dummy frame to make it look like it has a caller. */
+struct signal_frame_32 {
+ char dummy[SIGNAL_FRAMESIZE];
+ struct sigcontext sctx;
+ mcontext_t mctx;
+ /* We don't care about the rest, since IP value is at 'mctx' field. */
+};
+
+static inline int
+is_sigtramp_address (unsigned int nip)
+{
+#ifdef SHARED
+ if (nip == (unsigned int)__vdso_sigtramp32)
+ return 1;
+#endif
+ return 0;
+}
+
+struct rt_signal_frame_32 {
+ char dummy[SIGNAL_FRAMESIZE + 16];
+ siginfo_t info;
+ struct ucontext uc;
+ /* We don't care about the rest, since IP value is at 'uc' field. */
+};
+
+static inline int
+is_sigtramp_address_rt (unsigned int nip)
+{
+#ifdef SHARED
+ if (nip == (unsigned int)__vdso_sigtramp_rt32)
+ return 1;
+#endif
+ return 0;
+}
+
int
__backtrace (void **array, int size)
{
@@ -50,7 +93,28 @@ __backtrace (void **array, int size)
for ( count = 0;
current != NULL && count < size;
current = current->next, count++)
- array[count] = current->return_address;
+ {
+ gregset_t *gregset = NULL;
+
+ array[count] = current->return_address;
+
+ /* Check if the symbol is the signal trampoline and get the interrupted
+ * symbol address from the trampoline saved area. */
+ if (is_sigtramp_address ((unsigned int)current->return_address))
+ {
+ struct signal_frame_32 *sigframe =
+ (struct signal_frame_32*) current;
+ gregset = &sigframe->mctx.gregs;
+ }
+ else if (is_sigtramp_address_rt ((unsigned int)current->return_address))
+ {
+ struct rt_signal_frame_32 *sigframe =
+ (struct rt_signal_frame_32*) current;
+ gregset = &sigframe->uc.uc_mcontext.uc_regs->gregs;
+ }
+ if (gregset)
+ array[++count] = (void*)((*gregset)[PT_NIP]);
+ }
/* It's possible the second-last stack frame can't return
(that is, it's __libc_start_main), in which case
diff --git a/libc/sysdeps/powerpc/powerpc32/cell/memcpy.S b/libc/sysdeps/powerpc/powerpc32/cell/memcpy.S
index f3605d790..24a0f1248 100644
--- a/libc/sysdeps/powerpc/powerpc32/cell/memcpy.S
+++ b/libc/sysdeps/powerpc/powerpc32/cell/memcpy.S
@@ -49,7 +49,7 @@ EALIGN (memcpy, 5, 0)
.Lbigcopy:
neg r8,r3 /* LS 3 bits = # bytes to 8-byte dest bdry */
- clrlwi r8,r8,32-4 /* aling to 16byte boundary */
+ clrlwi r8,r8,32-4 /* align to 16byte boundary */
sub r7,r4,r3
cmplwi cr0,r8,0
beq+ .Ldst_aligned
diff --git a/libc/sysdeps/powerpc/powerpc32/dl-machine.c b/libc/sysdeps/powerpc/powerpc32/dl-machine.c
index 188f72cdb..3e7202d86 100644
--- a/libc/sysdeps/powerpc/powerpc32/dl-machine.c
+++ b/libc/sysdeps/powerpc/powerpc32/dl-machine.c
@@ -29,13 +29,6 @@
by _dl_sysdep_start via DL_PLATFORM_INIT. */
extern int __cache_line_size attribute_hidden;
-/* Because ld.so is now versioned, these functions can be in their own file;
- no relocations need to be done to call them.
- Of course, if ld.so is not versioned... */
-#if defined SHARED && !(DO_VERSIONING - 0)
-#error This will not work with versioning turned off, sorry.
-#endif
-
/* Stuff for the PLT. */
#define PLT_INITIAL_ENTRY_WORDS 18
diff --git a/libc/sysdeps/powerpc/powerpc32/fpu/setjmp.S b/libc/sysdeps/powerpc/powerpc32/fpu/setjmp.S
index dc93db385..60cd35052 100644
--- a/libc/sysdeps/powerpc/powerpc32/fpu/setjmp.S
+++ b/libc/sysdeps/powerpc/powerpc32/fpu/setjmp.S
@@ -1,4 +1,4 @@
-/* non alitivec (old) version of setjmp for PowerPC.
+/* non altivec (old) version of setjmp for PowerPC.
Copyright (C) 1995-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/libc/sysdeps/powerpc/powerpc32/power4/memcmp.S b/libc/sysdeps/powerpc/powerpc32/power4/memcmp.S
index d7050a2f7..9a455a3c6 100644
--- a/libc/sysdeps/powerpc/powerpc32/power4/memcmp.S
+++ b/libc/sysdeps/powerpc/powerpc32/power4/memcmp.S
@@ -512,7 +512,7 @@ L(zeroLength):
of rBITDIF to 0. If rBITDIF == 0 then rStr1 is word aligned and can
perform the Wunaligned loop.
- Otherwise we know that rSTR1 is not aready word aligned yet.
+ Otherwise we know that rSTR1 is not already word aligned yet.
So we can force the string addresses to the next lower word
boundary and special case this first word using shift left to
eliminate bits preceding the first byte. Since we want to join the
diff --git a/libc/sysdeps/powerpc/powerpc32/power6/memcpy.S b/libc/sysdeps/powerpc/powerpc32/power6/memcpy.S
index c3d55b768..a76f71e04 100644
--- a/libc/sysdeps/powerpc/powerpc32/power6/memcpy.S
+++ b/libc/sysdeps/powerpc/powerpc32/power6/memcpy.S
@@ -269,7 +269,7 @@ L(wus_tail16): /* Move 16 bytes. */
addi 1,1,32
blr
.align 4
-L(wus_tail16p8): /* less then 8 bytes left. */
+L(wus_tail16p8): /* less than 8 bytes left. */
beq cr1,L(wus_tailX) /* exactly 16 bytes, early exit. */
cmplwi cr1,10,20
bf 29,L(wus_tail16p2)
@@ -283,7 +283,7 @@ L(wus_tail16p8): /* less then 8 bytes left. */
addi 1,1,32
blr
.align 4
-L(wus_tail16p4): /* less then 4 bytes left. */
+L(wus_tail16p4): /* less than 4 bytes left. */
addi 12,12,24
addi 11,11,24
bgt cr0,L(wus_tail2)
@@ -291,7 +291,7 @@ L(wus_tail16p4): /* less then 4 bytes left. */
addi 1,1,32
blr
.align 4
-L(wus_tail16p2): /* 16 bytes moved, less then 4 bytes left. */
+L(wus_tail16p2): /* 16 bytes moved, less than 4 bytes left. */
addi 12,12,16
addi 11,11,16
b L(wus_tail2)
@@ -315,7 +315,7 @@ L(wus_tail8): /* Move 8 bytes. */
addi 1,1,32
blr
.align 4
-L(wus_tail8p4): /* less then 4 bytes left. */
+L(wus_tail8p4): /* less than 4 bytes left. */
addi 12,12,8
addi 11,11,8
bgt cr1,L(wus_tail2)
@@ -326,7 +326,7 @@ L(wus_tail8p4): /* less then 4 bytes left. */
.align 4
L(wus_tail4): /* Move 4 bytes. */
/* r6 already loaded speculatively. If we are here we know there is
- more then 4 bytes left. So there is no need to test. */
+ more than 4 bytes left. So there is no need to test. */
addi 12,12,4
stw 6,0(11)
addi 11,11,4
@@ -426,14 +426,14 @@ L(wdu):
First we need to copy word up to but not crossing the next 32-byte
boundary. Then perform aligned loads just before and just after
the boundary and use shifts and or to generate the next aligned
- word for dst. If more then 32 bytes remain we copy (unaligned src)
- the next 7 words and repeat the loop until less then 32-bytes
+ word for dst. If more than 32 bytes remain we copy (unaligned src)
+ the next 7 words and repeat the loop until less than 32-bytes
remain.
- Then if more then 4 bytes remain we again use aligned loads,
+ Then if more than 4 bytes remain we again use aligned loads,
shifts and or to generate the next dst word. We then process the
remaining words using unaligned loads as needed. Finally we check
- if there more then 0 bytes (1-3) bytes remaining and use
+ if there are more than 0 bytes (1-3) bytes remaining and use
halfword and or byte load/stores to complete the copy.
*/
mr 4,12 /* restore unaligned adjusted src ptr */
diff --git a/libc/sysdeps/powerpc/powerpc32/power6/memset.S b/libc/sysdeps/powerpc/powerpc32/power6/memset.S
index ce0663001..8c23c8d13 100644
--- a/libc/sysdeps/powerpc/powerpc32/power6/memset.S
+++ b/libc/sysdeps/powerpc/powerpc32/power6/memset.S
@@ -101,7 +101,7 @@ L(nondcbz):
boundary may not be at cache line (128-byte) boundary. */
L(nzloopstart):
/* memset in 32-byte chunks until we get to a cache line boundary.
- If rLEN is less then the distance to the next cache-line boundary use
+ If rLEN is less than the distance to the next cache-line boundary use
cacheAligned1 code to finish the tail. */
cmplwi cr1,rLEN,128
@@ -306,7 +306,7 @@ L(nzCacheAligned256):
block zero instruction. */
L(zloopstart):
/* memset in 32-byte chunks until we get to a cache line boundary.
- If rLEN is less then the distance to the next cache-line boundary use
+ If rLEN is less than the distance to the next cache-line boundary use
cacheAligned1 code to finish the tail. */
cmplwi cr1,rLEN,128
beq L(medium)
diff --git a/libc/sysdeps/powerpc/powerpc32/power7/memcmp.S b/libc/sysdeps/powerpc/powerpc32/power7/memcmp.S
index f764b7ce3..075e19f14 100644
--- a/libc/sysdeps/powerpc/powerpc32/power7/memcmp.S
+++ b/libc/sysdeps/powerpc/powerpc32/power7/memcmp.S
@@ -515,7 +515,7 @@ L(zeroLength):
of rBITDIF to 0. If rBITDIF == 0 then rStr1 is word aligned and can
perform the Wunaligned loop.
- Otherwise we know that rSTR1 is not aready word aligned yet.
+ Otherwise we know that rSTR1 is not already word aligned yet.
So we can force the string addresses to the next lower word
boundary and special case this first word using shift left to
eliminate bits preceding the first byte. Since we want to join the
diff --git a/libc/sysdeps/powerpc/powerpc32/setjmp.S b/libc/sysdeps/powerpc/powerpc32/setjmp.S
index 851a5b908..8a8cf0d6e 100644
--- a/libc/sysdeps/powerpc/powerpc32/setjmp.S
+++ b/libc/sysdeps/powerpc/powerpc32/setjmp.S
@@ -1,4 +1,4 @@
-/* non alitivec (old) version of setjmp for PowerPC.
+/* non altivec (old) version of setjmp for PowerPC.
Copyright (C) 1995-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/libc/sysdeps/powerpc/powerpc32/sysdep.h b/libc/sysdeps/powerpc/powerpc32/sysdep.h
index 47d02a804..78f54f91c 100644
--- a/libc/sysdeps/powerpc/powerpc32/sysdep.h
+++ b/libc/sysdeps/powerpc/powerpc32/sysdep.h
@@ -99,8 +99,7 @@ GOT_LABEL: ; \
# define JUMPTARGET(name) name
#endif
-#if defined SHARED && defined DO_VERSIONING && defined PIC \
- && !defined NO_HIDDEN
+#if defined SHARED && defined PIC && !defined NO_HIDDEN
# undef HIDDEN_JUMPTARGET
# define HIDDEN_JUMPTARGET(name) __GI_##name##@local
#endif
diff --git a/libc/sysdeps/powerpc/powerpc64/backtrace.c b/libc/sysdeps/powerpc/powerpc64/backtrace.c
index 2d3e051cb..9b9a9f19d 100644
--- a/libc/sysdeps/powerpc/powerpc64/backtrace.c
+++ b/libc/sysdeps/powerpc/powerpc64/backtrace.c
@@ -18,6 +18,9 @@
#include <execinfo.h>
#include <stddef.h>
+#include <string.h>
+#include <signal.h>
+#include <bits/libc-vdso.h>
/* This is the stack layout we see with every stack frame.
Note that every routine is required by the ABI to lay out the stack
@@ -38,6 +41,27 @@ struct layout
void *return_address;
};
+/* Since the signal handler is just like any other function it needs to
+ save/restore its LR and it will save it into callers stack frame.
+ Since a signal handler doesn't have a caller, the kernel creates a
+ dummy frame to make it look like it has a caller. */
+struct signal_frame_64 {
+#define SIGNAL_FRAMESIZE 128
+ char dummy[SIGNAL_FRAMESIZE];
+ struct ucontext uc;
+ /* We don't care about the rest, since the IP value is at 'uc' field. */
+};
+
+static inline int
+is_sigtramp_address (unsigned long nip)
+{
+#ifdef SHARED
+ if (nip == (unsigned long)__vdso_sigtramp_rt64)
+ return 1;
+#endif
+ return 0;
+}
+
int
__backtrace (void **array, int size)
{
@@ -53,7 +77,17 @@ __backtrace (void **array, int size)
for ( count = 0;
current != NULL && count < size;
current = current->next, count++)
- array[count] = current->return_address;
+ {
+ array[count] = current->return_address;
+
+ /* Check if the symbol is the signal trampoline and get the interrupted
+ * symbol address from the trampoline saved area. */
+ if (is_sigtramp_address ((unsigned long)current->return_address))
+ {
+ struct signal_frame_64 *sigframe = (struct signal_frame_64*) current;
+ array[++count] = (void*)sigframe->uc.uc_mcontext.gp_regs[PT_NIP];
+ }
+ }
/* It's possible the second-last stack frame can't return
(that is, it's __libc_start_main), in which case
diff --git a/libc/sysdeps/powerpc/powerpc64/cell/memcpy.S b/libc/sysdeps/powerpc/powerpc64/cell/memcpy.S
index a271965dd..104900ea5 100644
--- a/libc/sysdeps/powerpc/powerpc64/cell/memcpy.S
+++ b/libc/sysdeps/powerpc/powerpc64/cell/memcpy.S
@@ -49,7 +49,7 @@ EALIGN (memcpy, 5, 0)
.Lbigcopy:
neg r8,r3 /* LS 3 bits = # bytes to 8-byte dest bdry */
- clrldi r8,r8,64-4 /* aling to 16byte boundary */
+ clrldi r8,r8,64-4 /* align to 16byte boundary */
sub r7,r4,r3
cmpldi cr0,r8,0
beq+ .Ldst_aligned
diff --git a/libc/sysdeps/powerpc/powerpc64/power6/memcpy.S b/libc/sysdeps/powerpc/powerpc64/power6/memcpy.S
index db29e2b06..d6d242d29 100644
--- a/libc/sysdeps/powerpc/powerpc64/power6/memcpy.S
+++ b/libc/sysdeps/powerpc/powerpc64/power6/memcpy.S
@@ -450,7 +450,7 @@ L(dus_tail16): /* Move 16 bytes. */
ld 3,-16(1)
blr
.align 4
-L(dus_tail16p8): /* less then 8 bytes left. */
+L(dus_tail16p8): /* less than 8 bytes left. */
beq cr1,L(dus_tailX) /* exactly 16 bytes, early exit. */
cmpldi cr1,10,20
bf 29,L(dus_tail16p2)
@@ -464,7 +464,7 @@ L(dus_tail16p8): /* less then 8 bytes left. */
ld 3,-16(1)
blr
.align 4
-L(dus_tail16p4): /* less then 4 bytes left. */
+L(dus_tail16p4): /* less than 4 bytes left. */
addi 12,12,24
addi 3,3,24
bgt cr0,L(dus_tail2)
@@ -472,7 +472,7 @@ L(dus_tail16p4): /* less then 4 bytes left. */
ld 3,-16(1)
blr
.align 4
-L(dus_tail16p2): /* 16 bytes moved, less then 4 bytes left. */
+L(dus_tail16p2): /* 16 bytes moved, less than 4 bytes left. */
addi 12,12,16
addi 3,3,16
b L(dus_tail2)
@@ -497,7 +497,7 @@ L(dus_tail8): /* Move 8 bytes. */
ld 3,-16(1)
blr
.align 4
-L(dus_tail8p4): /* less then 4 bytes left. */
+L(dus_tail8p4): /* less than 4 bytes left. */
addi 12,12,8
addi 3,3,8
bgt cr1,L(dus_tail2)
@@ -508,7 +508,7 @@ L(dus_tail8p4): /* less then 4 bytes left. */
.align 4
L(dus_tail4): /* Move 4 bytes. */
/* r6 already loaded speculatively. If we are here we know there is
- more then 4 bytes left. So there is no need to test. */
+ more than 4 bytes left. So there is no need to test. */
addi 12,12,4
stw 6,0(3)
addi 3,3,4
diff --git a/libc/sysdeps/powerpc/powerpc64/power6/memset.S b/libc/sysdeps/powerpc/powerpc64/power6/memset.S
index 541a45fd3..3e8ae2d25 100644
--- a/libc/sysdeps/powerpc/powerpc64/power6/memset.S
+++ b/libc/sysdeps/powerpc/powerpc64/power6/memset.S
@@ -110,7 +110,7 @@ L(caligned):
boundary may not be at cache line (128-byte) boundary. */
L(nzloopstart):
/* memset in 32-byte chunks until we get to a cache line boundary.
- If rLEN is less then the distance to the next cache-line boundary use
+ If rLEN is less than the distance to the next cache-line boundary use
cacheAligned1 code to finish the tail. */
cmpldi cr1,rLEN,128
@@ -186,7 +186,7 @@ L(nzCacheAligned128):
block zero instruction. */
L(zloopstart):
/* memset in 32-byte chunks until we get to a cache line boundary.
- If rLEN is less then the distance to the next cache-line boundary use
+ If rLEN is less than the distance to the next cache-line boundary use
cacheAligned1 code to finish the tail. */
cmpldi cr1,rLEN,128
beq L(medium)
diff --git a/libc/sysdeps/pthread/aio_notify.c b/libc/sysdeps/pthread/aio_notify.c
index f3953f182..deedd2df6 100644
--- a/libc/sysdeps/pthread/aio_notify.c
+++ b/libc/sysdeps/pthread/aio_notify.c
@@ -157,7 +157,7 @@ __aio_notify (struct requestlist *req)
#endif
}
else
- /* This is part of a asynchronous `lio_listio' operation. If
+ /* This is part of an asynchronous `lio_listio' operation. If
this request is the last one, send the signal. */
if (--*waitlist->counterp == 0)
{
diff --git a/libc/sysdeps/s390/dl-procinfo.h b/libc/sysdeps/s390/dl-procinfo.h
index 45e27f102..65f037b8c 100644
--- a/libc/sysdeps/s390/dl-procinfo.h
+++ b/libc/sysdeps/s390/dl-procinfo.h
@@ -31,7 +31,7 @@
#define _DL_HWCAP_PLATFORM (((1ULL << _DL_PLATFORMS_COUNT) - 1) \
<< _DL_FIRST_PLATFORM)
-/* Hardware capablity bit numbers are derived directly from the
+/* Hardware capability bit numbers are derived directly from the
facility indications as stored by the "store facility list" (STFL)
instruction.
highgprs is an alien in that list. It describes a *kernel*
diff --git a/libc/sysdeps/sparc/fpu/fraiseexcpt.c b/libc/sysdeps/sparc/fpu/fraiseexcpt.c
index 0350df9ca..050e105d8 100644
--- a/libc/sysdeps/sparc/fpu/fraiseexcpt.c
+++ b/libc/sysdeps/sparc/fpu/fraiseexcpt.c
@@ -39,7 +39,7 @@ __feraiseexcept (int excepts)
/* First: invalid exception. */
if ((FE_INVALID & excepts) != 0)
{
- /* One example of a invalid operation is 0/0. */
+ /* One example of an invalid operation is 0/0. */
__asm ("" : "=e" (d) : "0" (c.zero));
d /= c.zero;
__asm __volatile ("" : : "e" (d));
diff --git a/libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h b/libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h
deleted file mode 100644
index 849d2fc3e..000000000
--- a/libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h
+++ /dev/null
@@ -1,342 +0,0 @@
-/* System-specific socket constants and types. 4.4 BSD version.
- Copyright (C) 1991-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef __BITS_SOCKET_H
-#define __BITS_SOCKET_H 1
-
-#ifndef _SYS_SOCKET_H
-# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
-#endif
-
-#define __need_size_t
-#define __need_NULL
-#include <stddef.h>
-
-#include <limits.h> /* XXX Is this allowed? */
-#include <bits/types.h>
-
-/* Type for length arguments in socket calls. */
-#ifndef __socklen_t_defined
-typedef __socklen_t socklen_t;
-# define __socklen_t_defined
-#endif
-
-
-/* Types of sockets. */
-enum __socket_type
-{
- SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
- byte streams. */
-#define SOCK_STREAM SOCK_STREAM
- SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
- of fixed maximum length. */
-#define SOCK_DGRAM SOCK_DGRAM
- SOCK_RAW = 3, /* Raw protocol interface. */
-#define SOCK_RAW SOCK_RAW
- SOCK_RDM = 4, /* Reliably-delivered messages. */
-#define SOCK_RDM SOCK_RDM
- SOCK_SEQPACKET = 5 /* Sequenced, reliable, connection-based,
- datagrams of fixed maximum length. */
-#define SOCK_SEQPACKET SOCK_SEQPACKET
-};
-
-/* Protocol families. */
-#define PF_UNSPEC 0 /* Unspecified. */
-#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
-#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
-#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */
-#define PF_INET 2 /* IP protocol family. */
-#define PF_IMPLINK 3 /* ARPAnet IMP protocol. */
-#define PF_PUP 4 /* PUP protocols. */
-#define PF_CHAOS 5 /* MIT Chaos protocols. */
-#define PF_NS 6 /* Xerox NS protocols. */
-#define PF_ISO 7 /* ISO protocols. */
-#define PF_OSI PF_ISO
-#define PF_ECMA 8 /* ECMA protocols. */
-#define PF_DATAKIT 9 /* AT&T Datakit protocols. */
-#define PF_CCITT 10 /* CCITT protocols (X.25 et al). */
-#define PF_SNA 11 /* IBM SNA protocol. */
-#define PF_DECnet 12 /* DECnet protocols. */
-#define PF_DLI 13 /* Direct data link interface. */
-#define PF_LAT 14 /* DEC Local Area Transport protocol. */
-#define PF_HYLINK 15 /* NSC Hyperchannel protocol. */
-#define PF_APPLETALK 16 /* Don't use this. */
-#define PF_ROUTE 17 /* Internal Routing Protocol. */
-#define PF_LINK 18 /* Link layer interface. */
-#define PF_XTP 19 /* eXpress Transfer Protocol (no AF). */
-#define PF_COIP 20 /* Connection-oriented IP, aka ST II. */
-#define PF_CNT 21 /* Computer Network Technology. */
-#define PF_RTIP 22 /* Help Identify RTIP packets. **/
-#define PF_IPX 23 /* Novell Internet Protocol. */
-#define PF_SIP 24 /* Simple Internet Protocol. */
-#define PF_PIP 25 /* Help Identify PIP packets. */
-#define PF_INET6 26 /* IP version 6. */
-#define PF_MAX 27
-
-/* Address families. */
-#define AF_UNSPEC PF_UNSPEC
-#define AF_LOCAL PF_LOCAL
-#define AF_UNIX PF_UNIX
-#define AF_FILE PF_FILE
-#define AF_INET PF_INET
-#define AF_IMPLINK PF_IMPLINK
-#define AF_PUP PF_PUP
-#define AF_CHAOS PF_CHAOS
-#define AF_NS PF_NS
-#define AF_ISO PF_ISO
-#define AF_OSI PF_OSI
-#define AF_ECMA PF_ECMA
-#define AF_DATAKIT PF_DATAKIT
-#define AF_CCITT PF_CCITT
-#define AF_SNA PF_SNA
-#define AF_DECnet PF_DECnet
-#define AF_DLI PF_DLI
-#define AF_LAT PF_LAT
-#define AF_HYLINK PF_HYLINK
-#define AF_APPLETALK PF_APPLETALK
-#define AF_ROUTE PF_ROUTE
-#define AF_LINK PF_LINK
-#define pseudo_AF_XTP PF_XTP
-#define AF_COIP PF_COIP
-#define AF_CNT PF_CNT
-#define pseudo_AF_RTIP PF_RTIP
-#define AF_IPX PF_IPX
-#define AF_SIP PF_SIP
-#define pseudo_AF_PIP PF_PIP
-#define AF_INET6 PF_INET6
-#define AF_MAX PF_MAX
-
-/* Maximum queue length specifiable by listen. */
-#define SOMAXCONN 128 /* 5 on the origional 4.4 BSD. */
-
-/* Get the definition of the macro to define the common sockaddr members. */
-#include <bits/sockaddr.h>
-
-/* Structure describing a generic socket address. */
-struct sockaddr
- {
- __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
- char sa_data[14]; /* Address data. */
- };
-
-
-/* Structure large enough to hold any socket address (with the historical
- exception of AF_UNIX). We reserve 128 bytes. */
-#if ULONG_MAX > 0xffffffff
-# define __ss_aligntype __uint64_t
-#else
-# define __ss_aligntype __uint32_t
-#endif
-#define _SS_SIZE 128
-#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
-
-struct sockaddr_storage
- {
- __SOCKADDR_COMMON (ss_); /* Address family, etc. */
- __ss_aligntype __ss_align; /* Force desired alignment. */
- char __ss_padding[_SS_PADSIZE];
- };
-
-
-/* Bits in the FLAGS argument to `send', `recv', et al. */
-enum
- {
- MSG_OOB = 0x01, /* Process out-of-band data. */
-#define MSG_OOB MSG_OOB
- MSG_PEEK = 0x02, /* Peek at incoming messages. */
-#define MSG_PEEK MSG_PEEK
- MSG_DONTROUTE = 0x04, /* Don't use local routing. */
-#define MSG_DONTROUTE MSG_DONTROUTE
- MSG_EOR = 0x08, /* Data completes record. */
-#define MSG_EOR MSG_EOR
- MSG_TRUNC = 0x10, /* Data discarded before delivery. */
-#define MSG_TRUNC MSG_TRUNC
- MSG_CTRUNC = 0x20, /* Control data lost before delivery. */
-#define MSG_CTRUNC MSG_CTRUNC
- MSG_WAITALL = 0x40, /* Wait for full request or error. */
-#define MSG_WAITALL MSG_WAITALL
- MSG_DONTWAIT = 0x80, /* This message should be nonblocking. */
-#define MSG_DONTWAIT MSG_DONTWAIT
- MSG_NOSIGNAL = 0x0400 /* Do not generate SIGPIPE on EPIPE. */
-#define MSG_NOSIGNAL MSG_NOSIGNAL
- };
-
-
-/* Structure describing messages sent by
- `sendmsg' and received by `recvmsg'. */
-struct msghdr
- {
- void *msg_name; /* Address to send to/receive from. */
- socklen_t msg_namelen; /* Length of address data. */
-
- struct iovec *msg_iov; /* Vector of data to send/receive into. */
- int msg_iovlen; /* Number of elements in the vector. */
-
- void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
- socklen_t msg_controllen; /* Ancillary data buffer length. */
-
- int msg_flags; /* Flags in received message. */
- };
-
-/* Structure used for storage of ancillary data object information. */
-struct cmsghdr
- {
- socklen_t cmsg_len; /* Length of data in cmsg_data plus length
- of cmsghdr structure. */
- int cmsg_level; /* Originating protocol. */
- int cmsg_type; /* Protocol specific type. */
-#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
- __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
-#endif
- };
-
-/* Ancillary data object manipulation macros. */
-#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
-# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
-#else
-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
-#endif
-
-#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
-
-#define CMSG_FIRSTHDR(mhdr) \
- ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
-
-#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
- & (size_t) ~(sizeof (size_t) - 1))
-#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
- + CMSG_ALIGN (sizeof (struct cmsghdr)))
-#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
-
-extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
- struct cmsghdr *__cmsg) __THROW;
-#ifdef __USE_EXTERN_INLINES
-# ifndef _EXTERN_INLINE
-# define _EXTERN_INLINE __extern_inline
-# endif
-_EXTERN_INLINE struct cmsghdr *
-__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
-{
- if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
- /* The kernel header does this so there may be a reason. */
- return NULL;
-
- __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
- + CMSG_ALIGN (__cmsg->cmsg_len));
- if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
- + __mhdr->msg_controllen)
- || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
- > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
- /* No more entries. */
- return NULL;
- return __cmsg;
-}
-#endif /* Use `extern inline'. */
-
-/* Socket level message types. */
-enum
- {
- SCM_RIGHTS = 0x01, /* Access rights (array of int). */
-#define SCM_RIGHTS SCM_RIGHTS
- SCM_TIMESTAMP = 0x02, /* Timestamp (struct timeval). */
-#define SCM_TIMESTAMP SCM_TIMESTAMP
- SCM_CREDS = 0x03 /* Process creds (struct cmsgcred). */
-#define SCM_CREDS SCM_CREDS
- };
-
-/* Unfortunately, BSD practice dictates this structure be of fixed size.
- If there are more than CMGROUP_MAX groups, the list is truncated.
- (On GNU systems, the `cmcred_euid' field is just the first in the
- list of effective UIDs.) */
-#define CMGROUP_MAX 16
-
-/* Structure delivered by SCM_CREDS. This describes the identity of the
- sender of the data simultaneously received on the socket. By BSD
- convention, this is included only when a sender on a AF_LOCAL socket
- sends cmsg data of this type and size; the sender's structure is
- ignored, and the system fills in the various IDs of the sender process. */
-struct cmsgcred
- {
- __pid_t cmcred_pid;
- __uid_t cmcred_uid;
- __uid_t cmcred_euid;
- __gid_t cmcred_gid;
- int cmcred_ngroups;
- __gid_t cmcred_groups[CMGROUP_MAX];
- };
-
-/* Protocol number used to manipulate socket-level options
- with `getsockopt' and `setsockopt'. */
-#define SOL_SOCKET 0xffff
-
-/* Socket-level options for `getsockopt' and `setsockopt'. */
-enum
- {
- SO_DEBUG = 0x0001, /* Record debugging information. */
-#define SO_DEBUG SO_DEBUG
- SO_ACCEPTCONN = 0x0002, /* Accept connections on socket. */
-#define SO_ACCEPTCONN SO_ACCEPTCONN
- SO_REUSEADDR = 0x0004, /* Allow reuse of local addresses. */
-#define SO_REUSEADDR SO_REUSEADDR
- SO_KEEPALIVE = 0x0008, /* Keep connections alive and send
- SIGPIPE when they die. */
-#define SO_KEEPALIVE SO_KEEPALIVE
- SO_DONTROUTE = 0x0010, /* Don't do local routing. */
-#define SO_DONTROUTE SO_DONTROUTE
- SO_BROADCAST = 0x0020, /* Allow transmission of
- broadcast messages. */
-#define SO_BROADCAST SO_BROADCAST
- SO_USELOOPBACK = 0x0040, /* Use the software loopback to avoid
- hardware use when possible. */
-#define SO_USELOOPBACK SO_USELOOPBACK
- SO_LINGER = 0x0080, /* Block on close of a reliable
- socket to transmit pending data. */
-#define SO_LINGER SO_LINGER
- SO_OOBINLINE = 0x0100, /* Receive out-of-band data in-band. */
-#define SO_OOBINLINE SO_OOBINLINE
- SO_REUSEPORT = 0x0200, /* Allow local address and port reuse. */
-#define SO_REUSEPORT SO_REUSEPORT
- SO_SNDBUF = 0x1001, /* Send buffer size. */
-#define SO_SNDBUF SO_SNDBUF
- SO_RCVBUF = 0x1002, /* Receive buffer. */
-#define SO_RCVBUF SO_RCVBUF
- SO_SNDLOWAT = 0x1003, /* Send low-water mark. */
-#define SO_SNDLOWAT SO_SNDLOWAT
- SO_RCVLOWAT = 0x1004, /* Receive low-water mark. */
-#define SO_RCVLOWAT SO_RCVLOWAT
- SO_SNDTIMEO = 0x1005, /* Send timeout. */
-#define SO_SNDTIMEO SO_SNDTIMEO
- SO_RCVTIMEO = 0x1006, /* Receive timeout. */
-#define SO_RCVTIMEO SO_RCVTIMEO
- SO_ERROR = 0x1007, /* Get and clear error status. */
-#define SO_ERROR SO_ERROR
- SO_STYLE = 0x1008, /* Get socket connection style. */
-#define SO_STYLE SO_STYLE
- SO_TYPE = SO_STYLE /* Compatible name for SO_STYLE. */
-#define SO_TYPE SO_TYPE
- };
-
-/* Structure used to manipulate the SO_LINGER option. */
-struct linger
- {
- int l_onoff; /* Nonzero to linger on close. */
- int l_linger; /* Time to linger. */
- };
-
-#endif /* bits/socket.h */
diff --git a/libc/sysdeps/unix/bsd/ptsname.c b/libc/sysdeps/unix/bsd/ptsname.c
index 3b22a8ca6..60e38d79d 100644
--- a/libc/sysdeps/unix/bsd/ptsname.c
+++ b/libc/sysdeps/unix/bsd/ptsname.c
@@ -26,7 +26,7 @@
static char buffer[sizeof (_PATH_TTY) + 2];
-/* Return the pathname of the pseudo terminal slave assoicated with
+/* Return the pathname of the pseudo terminal slave associated with
the master FD is open on, or NULL on errors.
The returned storage is good until the next call to this function. */
char *
diff --git a/libc/sysdeps/unix/ifreq.c b/libc/sysdeps/unix/ifreq.c
new file mode 100644
index 000000000..2db6d0c30
--- /dev/null
+++ b/libc/sysdeps/unix/ifreq.c
@@ -0,0 +1,79 @@
+/* Copyright (C) 1999-2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "ifreq.h"
+
+
+void
+__ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
+{
+ int fd = sockfd;
+ struct ifconf ifc;
+ int rq_len;
+ int nifs;
+# define RQ_IFS 4
+
+ if (fd < 0)
+ fd = __opensock ();
+ if (fd < 0)
+ {
+ *num_ifs = 0;
+ *ifreqs = NULL;
+ return;
+ }
+
+ ifc.ifc_buf = NULL;
+ rq_len = RQ_IFS * sizeof (struct ifreq) / 2; /* Doubled in the loop. */
+ do
+ {
+ ifc.ifc_len = rq_len *= 2;
+ void *newp = realloc (ifc.ifc_buf, ifc.ifc_len);
+ if (newp == NULL || __ioctl (fd, SIOCGIFCONF, &ifc) < 0)
+ {
+ free (ifc.ifc_buf);
+
+ if (fd != sockfd)
+ __close (fd);
+ *num_ifs = 0;
+ *ifreqs = NULL;
+ return;
+ }
+ ifc.ifc_buf = newp;
+ }
+ while (rq_len < sizeof (struct ifreq) + ifc.ifc_len);
+
+ if (fd != sockfd)
+ __close (fd);
+
+#ifdef _HAVE_SA_LEN
+ struct ifreq *ifr = *ifreqs;
+ nifs = 0;
+ while ((char *) ifr < ifc.ifc_buf + ifc.ifc_len)
+ {
+ ++nifs;
+ ifr = __if_nextreq (ifr);
+ if (ifr == NULL)
+ break;
+ }
+#else
+ nifs = ifc.ifc_len / sizeof (struct ifreq);
+#endif
+
+ *num_ifs = nifs;
+ *ifreqs = realloc (ifc.ifc_buf, nifs * sizeof (struct ifreq));
+}
diff --git a/libc/sysdeps/unix/sysv/linux/Makefile b/libc/sysdeps/unix/sysv/linux/Makefile
index 94916a2b1..234d5a747 100644
--- a/libc/sysdeps/unix/sysv/linux/Makefile
+++ b/libc/sysdeps/unix/sysv/linux/Makefile
@@ -38,7 +38,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
bits/socket_type.h bits/syscall.h bits/sysctl.h \
bits/mman-linux.h
-tests += tst-clone
+tests += tst-clone tst-fanotify
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
@@ -120,7 +120,7 @@ ifeq ($(subdir),socket)
sysdep_headers += net/if_ppp.h net/ppp-comp.h \
net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \
net/if_slip.h net/if_packet.h net/if_shaper.h
-sysdep_routines += cmsg_nxthdr sa_len
+sysdep_routines += cmsg_nxthdr
endif
ifeq ($(subdir),sunrpc)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/chown.c b/libc/sysdeps/unix/sysv/linux/i386/chown.c
index 94f294007..5fa640285 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/chown.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/chown.c
@@ -49,7 +49,7 @@ __real_chown (const char *file, uid_t owner, gid_t group)
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-/* Compiling for compatibiity. */
+/* Compiling for compatibility. */
int
attribute_compat_text_section
__chown_is_lchown (const char *file, uid_t owner, gid_t group)
diff --git a/libc/sysdeps/unix/sysv/linux/ifaddrs.c b/libc/sysdeps/unix/sysv/linux/ifaddrs.c
index 5c1e380fc..89fda156a 100644
--- a/libc/sysdeps/unix/sysv/linux/ifaddrs.c
+++ b/libc/sysdeps/unix/sysv/linux/ifaddrs.c
@@ -301,7 +301,7 @@ map_newlink (int index, struct ifaddrs_storage *ifas, int *map, int max)
return i;
}
- /* This means interfaces changed inbetween the reading of the
+ /* This means interfaces changed between the reading of the
RTM_GETLINK and RTM_GETADDR information. We have to repeat
everything. */
return -1;
diff --git a/libc/sysdeps/unix/sysv/linux/ldsodefs.h b/libc/sysdeps/unix/sysv/linux/ldsodefs.h
index 18ff8528c..ef4866727 100644
--- a/libc/sysdeps/unix/sysv/linux/ldsodefs.h
+++ b/libc/sysdeps/unix/sysv/linux/ldsodefs.h
@@ -18,14 +18,11 @@
#ifndef _LDSODEFS_H
-#include <libc-abis.h>
#include <kernel-features.h>
/* Get the real definitions. */
#include_next <ldsodefs.h>
-/* Now define our stuff. */
-
/* We have the auxiliary vector. */
#define HAVE_AUX_VECTOR
@@ -41,24 +38,4 @@
up the page size information. */
#define HAVE_AUX_PAGESIZE
-/* Accept binaries which identify the binary as using Linux extensions. */
-#define VALID_ELF_HEADER(hdr,exp,size) (memcmp (hdr, exp, size) == 0 \
- || memcmp (hdr, expected2, size) == 0)
-#define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV \
- || osabi == ELFOSABI_LINUX)
-#define VALID_ELF_ABIVERSION(osabi,ver) \
- (ver == 0 || (osabi == ELFOSABI_LINUX && ver < LIBC_ABI_MAX))
-#define MORE_ELF_HEADER_DATA \
- static const unsigned char expected2[EI_PAD] = \
- { \
- [EI_MAG0] = ELFMAG0, \
- [EI_MAG1] = ELFMAG1, \
- [EI_MAG2] = ELFMAG2, \
- [EI_MAG3] = ELFMAG3, \
- [EI_CLASS] = ELFW(CLASS), \
- [EI_DATA] = byteorder, \
- [EI_VERSION] = EV_CURRENT, \
- [EI_OSABI] = ELFOSABI_LINUX \
- }
-
#endif /* ldsodefs.h */
diff --git a/libc/sysdeps/unix/sysv/linux/mmap64.c b/libc/sysdeps/unix/sysv/linux/mmap64.c
index e2dcdc4d9..7d367ca83 100644
--- a/libc/sysdeps/unix/sysv/linux/mmap64.c
+++ b/libc/sysdeps/unix/sysv/linux/mmap64.c
@@ -19,6 +19,7 @@
#include <errno.h>
#include <unistd.h>
#include <sys/mman.h>
+#include <string.h>
#include <sysdep.h>
#include <sys/syscall.h>
@@ -42,9 +43,8 @@ __mmap64 (void *addr, size_t len, int prot, int flags, int fd, off64_t offset)
#if MMAP2_PAGE_SHIFT == -1
if (page_shift == 0)
{
- int page_size = getpagesize ();
- while ((1 << ++page_shift) != page_size)
- ;
+ int page_size = __getpagesize ();
+ page_shift = __ffs (page_size) - 1;
}
#endif
if (offset & ((1 << page_shift) - 1))
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-dirent.h b/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-dirent.h
deleted file mode 100644
index c18e9fa4b..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-dirent.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "aix-types.h"
-
-struct aixdirent
- {
- aixino_t d_ino;
- aixoff_t d_off;
- unsigned short int d_reclen;
- unsigned short int d_namlen;
- char d_name[256]; /* We must not include limits.h! */
- };
-
-struct aixdirent64
- {
- aixino64_t d_ino;
- aixoff64_t d_off;
- unsigned short int d_reclen;
- unsigned short int d_namlen;
- char d_name[256]; /* We must not include limits.h! */
- };
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-errno.h b/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-errno.h
deleted file mode 100644
index 38f6e210d..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-errno.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright (C) 1999-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define AIX_EPERM 1
-#define AIX_ENOENT 2
-#define AIX_ESRCH 3
-#define AIX_EINTR 4
-#define AIX_EIO 5
-#define AIX_ENXIO 6
-#define AIX_E2BIG 7
-#define AIX_ENOEXEC 8
-#define AIX_EBADF 9
-#define AIX_ECHILD 10
-#define AIX_EAGAIN 11
-#define AIX_ENOMEM 12
-#define AIX_EACCES 13
-#define AIX_EFAULT 14
-#define AIX_ENOTBLK 15
-#define AIX_EBUSY 16
-#define AIX_EEXIST 17
-#define AIX_EXDEV 18
-#define AIX_ENODEV 19
-#define AIX_ENOTDIR 20
-#define AIX_EISDIR 21
-#define AIX_EINVAL 22
-#define AIX_ENFILE 23
-#define AIX_EMFILE 24
-#define AIX_ENOTTY 25
-#define AIX_ETXTBSY 26
-#define AIX_EFBIG 27
-#define AIX_ENOSPC 28
-#define AIX_ESPIPE 29
-#define AIX_EROFS 30
-#define AIX_EMLINK 31
-#define AIX_EPIPE 32
-#define AIX_EDOM 33
-#define AIX_ERANGE 34
-#define AIX_ENOMSG 35
-#define AIX_EIDRM 36
-#define AIX_ECHRNG 37
-#define AIX_EL2NSYNC 38
-#define AIX_EL3HLT 39
-#define AIX_EL3RST 40
-#define AIX_ELNRNG 41
-#define AIX_EUNATCH 42
-#define AIX_ENOCSI 43
-#define AIX_EL2HLT 44
-#define AIX_EDEADLK 45
-#define AIX_ENOTREADY 46
-#define AIX_EWRPROTECT 47
-#define AIX_EFORMAT 48
-#define AIX_ENOLCK 49
-#define AIX_ENOCONNECT 50
-#define AIX_ESTALE 52
-#define AIX_EDIST 53
-#define AIX_EWOULDBLOCK 54
-#define AIX_EINPROGRESS 55
-#define AIX_EALREADY 56
-#define AIX_ENOTSOCK 57
-#define AIX_EDESTADDRREQ 58
-#define AIX_EMSGSIZE 59
-#define AIX_EPROTOTYPE 60
-#define AIX_ENOPROTOOPT 61
-#define AIX_EPROTONOSUPPORT 62
-#define AIX_ESOCKTNOSUPPORT 63
-#define AIX_EOPNOTSUPP 64
-#define AIX_EPFNOSUPPORT 65
-#define AIX_EAFNOSUPPORT 66
-#define AIX_EADDRINUSE 67
-#define AIX_EADDRNOTAVAIL 68
-#define AIX_ENETDOWN 69
-#define AIX_ENETUNREACH 70
-#define AIX_ENETRESET 71
-#define AIX_ECONNABORTED 72
-#define AIX_ECONNRESET 73
-#define AIX_ENOBUFS 74
-#define AIX_EISCONN 75
-#define AIX_ENOTCONN 76
-#define AIX_ESHUTDOWN 77
-#define AIX_ETIMEDOUT 78
-#define AIX_ECONNREFUSED 79
-#define AIX_EHOSTDOWN 80
-#define AIX_EHOSTUNREACH 81
-#define AIX_ERESTART 82
-#define AIX_EPROCLIM 83
-#define AIX_EUSERS 84
-#define AIX_ELOOP 85
-#define AIX_ENAMETOOLONG 86
-#define AIX_EDQUOT 88
-#define AIX_ECORRUPT 89
-#define AIX_EREMOTE 93
-#define AIX_ENOSYS 109
-#define AIX_EMEDIA 110
-#define AIX_ESOFT 111
-#define AIX_ENOATTR 112
-#define AIX_ESAD 113
-#define AIX_ENOTRUST 114
-#define AIX_ETOOMANYREFS 115
-#define AIX_EILSEQ 116
-#define AIX_ECANCELED 117
-#define AIX_ENOSR 118
-#define AIX_ETIME 119
-#define AIX_EBADMSG 120
-#define AIX_EPROTO 121
-#define AIX_ENODATA 122
-#define AIX_ENOSTR 123
-#define AIX_ENOTSUP 124
-#define AIX_EMULTIHOP 125
-#define AIX_ENOLINK 126
-#define AIX_EOVERFLOW 127
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-stat.h b/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-stat.h
deleted file mode 100644
index 2b092c2b1..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-stat.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 1999-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-struct aixstat
- {
- aixdev_t st_dev;
- aixino_t st_ino;
- aixmode_t st_mode;
- aixnlink_t st_nlink;
- unsigned short int st_flag;
- aixuid_t st_uid;
- aixgid_t st_gid;
- aixdev_t st_rdev;
- aixoff_t st_size;
- aixtime_t st_atime;
- unsigned long int __unused1;
- aixtime_t st_mtime;
- unsigned long int __unused2;
- aixtime_t st_ctime;
- unsigned long int __unused3;
- aixblksize_t st_blksize;
- aixblkcnt_t st_blocks;
- int st_vfstype;
- unsigned int st_vfs;
- unsigned int st_type;
- unsigned int st_gen;
-
-#define _STATBUF_RESERVED_SPACE 9
- unsigned int st_reserved[_STATBUF_RESERVED_SPACE];
- };
-
-struct aixstat64
- {
- aixdev_t st_dev;
- aixino64_t st_ino;
- aixmode_t st_mode;
- aixnlink_t st_nlink;
- unsigned short int st_flag;
- aixuid_t st_uid;
- aixgid_t st_gid;
- aixdev_t st_rdev;
- int st_ssize;
- aixtime_t st_atime;
- unsigned long int __unused1;
- aixtime_t st_mtime;
- unsigned long int __unused2;
- aixtime_t st_ctime;
- unsigned long int __unused3;
- aixblksize_t st_blksize;
- aixblkcnt64_t st_blocks;
- int st_vfstype;
- unsigned int st_vfs;
- unsigned int st_type;
- unsigned int st_gen;
- unsigned int st_reserved[_STATBUF_RESERVED_SPACE];
- unsigned int st_padto_ll;
- aixoff64_t st_size;
- };
-
-#define aix_major(x) (int) ((unsigned int) (x) >> 16)
-#define aix_minor(x) (int) ((x) & 0xFFFF)
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-termios.h b/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-termios.h
deleted file mode 100644
index b4414e687..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/aix-termios.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 2000-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include "aix-types.h"
-
-#define AIX_NCCS 16
-struct aixtermios
-{
- aixtcflag_t c_iflag;
- aixtcflag_t c_oflag;
- aixtcflag_t c_cflag;
- aixtcflag_t c_lflag;
- aixcc_t c_line;
- aixcc_t c_cc[AIX_NCCS];
- aixspeed_t c_ispeed;
- aixspeed_t c_ospeed;
-};
-
-#define AIX_VINTR 0
-#define AIX_VQUIT 1
-#define AIX_VERASE 2
-#define AIX_VKILL 3
-#define AIX_VEOF 4
-#define AIX_VEOL 5
-#define AIX_VEOL2 6
-#define AIX_VSTART 7
-#define AIX_VSTOP 8
-#define AIX_VSUSP 9
-#define AIX_VDSUSP 10
-#define AIX_VREPRINT 11
-#define AIX_VDISCRD 12
-#define AIX_VWERSE 13
-#define AIX_VLNEXT 14
-
-#define AIX_IUCLC 0x00000800
-#define AIX_IXANY 0x00001000
-#define AIX_IMAXBE 0x00010000
-
-#define AIX_OLCUC 0x00000002
-#define AIX_ONLCR 0x00000004
-#define AIX_TABDLY 0x00000c00
-#define AIX_TAB0 0x00000000
-#define AIX_TAB1 0x00000400
-#define AIX_TAB2 0x00000800
-#define AIX_TAB3 0x00000c00
-#define AIX_BSDLY 0x00001000
-#define AIX_BS0 0x00000000
-#define AIX_BS1 0x00001000
-#define AIX_FFDLY 0x00002000
-#define AIX_FF0 0x00000000
-#define AIX_FF1 0x00002000
-#define AIX_NLDLY 0x00004000
-#define AIX_NL0 0x00000000
-#define AIX_NL1 0x00004000
-#define AIX_VTDLY 0x00008000
-#define AIX_VT0 0x00000000
-#define AIX_VT1 0x00008000
-
-#define AIX_CBAUD 0x0000000f
-#define AIX_CSIZE 0x00000030
-#define AIX_CS5 0x00000000
-#define AIX_CS6 0x00000010
-#define AIX_CS7 0x00000020
-#define AIX_CS8 0x00000030
-#define AIX_CSTOPB 0x00000040
-#define AIX_CREAD 0x00000080
-#define AIX_PARENB 0x00000100
-#define AIX_PARODD 0x00000200
-#define AIX_HUPCL 0x00000400
-#define AIX_CLOCAL 0x00000800
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/direntconv.c b/libc/sysdeps/unix/sysv/linux/powerpc/aix/direntconv.c
deleted file mode 100644
index 315ebacbf..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/direntconv.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2000-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <dirent.h>
-#include <string.h>
-#include "linux-dirent.h"
-
-#ifndef DT_UNKNOWN
-# define DT_UNKNOWN 0
-#endif
-
-
-void
-__dirent_aix_to_linux (const struct aixdirent *aixdir,
- struct dirent *linuxdir)
-{
- linuxdir->d_ino = aixdir->d_ino;
- linuxdir->d_off = aixdir->d_off;
- linuxdir->d_reclen = aixdir->d_reclen;
- linuxdir->d_type = DT_UNKNOWN;
- memcpy (linuxdir->d_name, aixdir->d_name, aixdir->d_namlen + 1);
-}
-
-
-void
-__dirent64_aix_to_linux (const struct aixdirent64 *aixdir,
- struct dirent64 *linuxdir)
-{
- linuxdir->d_ino = aixdir->d_ino;
- linuxdir->d_off = aixdir->d_off;
- linuxdir->d_reclen = aixdir->d_reclen;
- linuxdir->d_type = DT_UNKNOWN;
- memcpy (linuxdir->d_name, aixdir->d_name, aixdir->d_namlen + 1);
-}
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/errnoconv.c b/libc/sysdeps/unix/sysv/linux/powerpc/aix/errnoconv.c
deleted file mode 100644
index d543f1777..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/errnoconv.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Convert the error number the AIX kernel returns to what the Linux
- application expects.
- Copyright (C) 2000-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include "linux-errno.h"
-
-
-static int mapping[] =
-{
- [AIX_EPERM] = EPERM,
- [AIX_ENOENT] = ENOENT,
- [AIX_ESRCH] = ESRCH,
- [AIX_EINTR] = EINTR,
- [AIX_EIO] = EIO,
- [AIX_ENXIO] = ENXIO,
- [AIX_E2BIG] = E2BIG,
- [AIX_ENOEXEC] = ENOEXEC,
- [AIX_EBADF] = EBADF,
- [AIX_ECHILD] = ECHILD,
- [AIX_EAGAIN] = EAGAIN,
- [AIX_ENOMEM] = ENOMEM,
- [AIX_EACCES] = EACCES,
- [AIX_EFAULT] = EFAULT,
- [AIX_ENOTBLK] = ENOTBLK,
- [AIX_EBUSY] = EBUSY,
- [AIX_EEXIST] = EEXIST,
- [AIX_EXDEV] = EXDEV,
- [AIX_ENODEV] = ENODEV,
- [AIX_ENOTDIR] = ENOTDIR,
- [AIX_EISDIR] = EISDIR,
- [AIX_EINVAL] = EINVAL,
- [AIX_ENFILE] = ENFILE,
- [AIX_EMFILE] = EMFILE,
- [AIX_ENOTTY] = ENOTTY,
- [AIX_ETXTBSY] = ETXTBSY,
- [AIX_EFBIG] = EFBIG,
- [AIX_ENOSPC] = ENOSPC,
- [AIX_EIDRM] = EIDRM,
- [AIX_ECHRNG] = ECHRNG,
- [AIX_EL2NSYNC] = EL2NSYNC,
- [AIX_EL3HLT] = EL3HLT,
- [AIX_EL3RST] = EL3RST,
- [AIX_ELNRNG] = ELNRNG,
- [AIX_EUNATCH] = EUNATCH,
- [AIX_ENOCSI] = ENOCSI,
- [AIX_EL2HLT] = EL2HLT,
- [AIX_EDEADLK] = EDEADLK,
- [AIX_ENOTREADY] = ENOTREADY,
- // EWPROTECT: no Linux equivalent
- // EFORMAT: no Linux equivalent
- [AIX_ENOLCK] = ENOLCK,
- // ENOCONNECT: No Linux equivalent
- [AIX_ESTALE] = ESTALE,
- // EDIST: no Linux equivalent
- [54] = EAGAIN, // EWOULDBLOCK
- [AIX_EINPROGRESS] = EINPROGRESS,
- [AIX_EALREADY] = EALREADY,
- [AIX_ENOTSOCK] = ENOTSOCK,
- [AIX_EDESTADDRREQ] = EDESTADDRREQ,
- [AIX_EMSGSIZE] = EMSGSIZE,
- [AIX_EPROTOTYPE] = EPROTOTYPE,
- [AIX_ENOPROTOOPT] = ENOPROTOOPT,
- [AIX_EPROTONOSUPPORT] = EPROTONOSUPPORT,
- [AIX_ESOCKTNOSUPPORT] = ESOCKTNOSUPPORT,
- [AIX_EOPNOTSUPP] = EOPNOTSUPP,
- [AIX_EPFNOSUPPORT] = EPFNOSUPPORT,
- [AIX_EAFNOSUPPORT] = EAFNOSUPPORT,
- [AIX_EADDRINUSE] = EADDRINUSE,
- [AIX_EADDRNOTAVAIL] = EADDRNOTAVAIL,
- [AIX_ENETDOWN] = ENETDOWN,
- [AIX_ENETUNREACH] = ENETUNREACH,
- [AIX_ENETRESET] = ENETRESET,
- [AIX_ECONNABORTED] = ECONNABORTED,
- [AIX_ECONNRESET] = ECONNRESET,
- [AIX_ENOBUFS] = ENOBUFS,
- [AIX_EISCONN] = EISCONN,
- [AIX_ENOTCONN] = ENOTCONN,
- [AIX_ESHUTDOWN] = ESHUTDOWN,
- [AIX_ETIMEDOUT] = ETIMEDOUT,
- [AIX_ECONNREFUSED] = ECONNREFUSED,
- [AIX_EHOSTDOWN] = EHOSTDOWN,
- [AIX_EHOSTUNREACH] = EHOSTUNREACH,
- [AIX_ERESTART] = ERESTART,
- [AIX_EPROCLIM] = EPROCLIM,
- [AIX_EUSERS] = EUSERS,
- [AIX_ELOOP] = ELOOP,
- [AIX_ENAMETOOLONG] = ENAMETOOLONG,
- [87] = ENOTEMPTY, // ENOTEMPTY
- [AIX_EDQUOT] = EDQUOT,
- [AIX_ECORRUPT] = ECORRUPT,
- [AIX_EREMOTE] = EREMOTE,
- [AIX_ENOSYS] = ENOSYS,
- [AIX_EMEDIA] = EMEDIA,
- [AIX_ESOFT] = ESOFT,
- [AIX_ENOATTR] = ENOATTR,
- [AIX_ESAD] = ESAD,
- // ENOTRUST: no Linux equivalent
- [AIX_ETOOMANYREFS] = ETOOMANYREFS,
- [AIX_EILSEQ] = EILSEQ,
- [AIX_ECANCELED] = ECANCELED,
- [AIX_ENOSR] = ENOSR,
- [AIX_ETIME] = ETIME,
- [AIX_EBADMSG] = EBADMSG,
- [AIX_EPROTO] = EPROTO,
- [AIX_ENODATA] = ENODATA,
- [AIX_ENOSTR] = ENOSTR,
- [AIX_ENOTSUP] = ENOTSUP,
- [AIX_EMULTIHOP] = EMULTIHOP,
- [AIX_ENOLINK] = ENOLINK,
- [AIX_EOVERFLOW] = EOVERFLOW
-};
-
-
-int
-__errno_aix_to_linux (int err)
-{
- int conv;
-
- if (err >= 0 && err < (sizeof (mapping) / sizeof (mapping[0]))
- && ((conv = mapping[err]) != 0 || err == 0))
- return conv;
-
- /* The error value is not known. Create a special value which can
- be easily recognized as an invalid result. */
- return 512 + err;
-}
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/statconv.c b/libc/sysdeps/unix/sysv/linux/powerpc/aix/statconv.c
deleted file mode 100644
index a01cc0a20..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/statconv.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 2000-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-void
-__stat_aix_to_linux (const struct aixstat *aixstat, struct stat *linuxstat)
-{
- linuxstat->st_dev = makedev (aix_major (aixstat->st_dev),
- aix_minor (aixstat->st_dev));
- linuxstat->st_ino = aixstat->st_ino;
- /* The following assumes that the mode values are the same on AIX
- and Linux which is true in the moment. */
- linuxstat->st_mode = aixstat->st_mode;
- linuxstat->st_nlink = aixstat->st_nlink;
- /* There is no st_flag field in Linux. */
- linuxstat->st_uid = aixstat->st_uid;
- linuxstat->st_gid = aixstat->st_gid;
- linuxstat->st_rdev = makedev (aix_major (aixstat->st_rdev),
- aix_minor (aixstat->st_rdev));
- linuxstat->st_size = aixstat->st_size;
- linuxstat->st_atime = aixstat->st_atime;
- linuxstat->st_mtime = aixstat->st_mtime;
- linuxstat->st_ctime = aixstat->st_ctime;
- linuxstat->st_blksize = aixstat->st_blksize;
- linuxstat->st_blocks = aixstat->st_blocks;
- /* There is no st_vfstype in Linux. */
- /* There is no st_vfs in Linux. */
- /* There is no st_type in Linux. */
- /* There is no st_gen in Linux. */
-
- /* File in the padding values with repeatable values. */
- linuxstat->__pad1 = 0;
- linuxstat->__pad2 = 0;
- linuxstat->__unused1 = 0;
- linuxstat->__unused2 = 0;
- linuxstat->__unused3 = 0;
- linuxstat->__unused4 = 0;
- linuxstat->__unused5 = 0;
-}
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/tcgetattr.c b/libc/sysdeps/unix/sysv/linux/powerpc/aix/tcgetattr.c
deleted file mode 100644
index 5e281f661..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/tcgetattr.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright (C) 2000-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <termios.h>
-#include "aix-termios.h"
-
-int
-tcgetattr (fd, linuxtermios_p)
- int fd;
- struct termios *linuxtermios_p;
-{
- struct aixtermios aixtermios;
- int result;
-
- result = /* make syscall */;
-
- if (result != -1)
- {
- /* Convert the result. */
-
- linuxtermios_p->c_cc[VINTR] = aixtermios.c_cc[AIX_VINTR];
- linuxtermios_p->c_cc[VQUIT] = aixtermios.c_cc[AIX_VQUIT];
- linuxtermios_p->c_cc[VERASE] = aixtermios.c_cc[AIX_VERASE];
- linuxtermios_p->c_cc[VKILL] = aixtermios.c_cc[AIX_VKILL];
- linuxtermios_p->c_cc[VEOF] = aixtermios.c_cc[AIX_VEOF];
- // XXX VMIN has the same value as VEOF !?
- linuxtermios_p->c_cc[VEOL] = aixtermios.c_cc[AIX_VEOL];
- // XXX VTIME has the same value as VEOL !?
- linuxtermios_p->c_cc[VEOL2] = aixtermios.c_cc[AIX_VEOL2];
- linuxtermios_p->c_cc[VSTART] = aixtermios.c_cc[AIX_VSTART];
- linuxtermios_p->c_cc[VSTOP] = aixtermios.c_cc[AIX_VSTOP];
- linuxtermios_p->c_cc[VSUSP] = aixtermios.c_cc[AIX_VSUSP];
- // XXX No Linux equivalent for VDSUSP !?
- linuxtermios_p->c_cc[VREPRINT] = aixtermios.c_cc[AIX_VREPRINT];
- linuxtermios_p->c_cc[VDISCARD] = aixtermios.c_cc[AIX_VDISCARD];
- linuxtermios_p->c_cc[VWERASE] = aixtermios.c_cc[AIX_VWERASE];
- linuxtermios_p->c_cc[VLNEXT] = aixtermios.c_cc[AIX_VLNEXT];
-
- linuxtermios_p->c_cflag = aixtermios.c_c_flag & AIX_CBAUD;
-
- /* Only the IUCLC, IXANY, and IMAXBEL values are different in the
- c_iflag member. */
- linuxtermios_p->c_iflag = aixtermios.c_iflag & 0x7ff;
- if (aixtermios.c_iflag & AIX_IXANY)
- linuxtermios_p->c_iflag |= IXANY;
- if (aixtermios.c_iflag & AIX_IUCLC)
- linuxtermios_p->c_iflag |= IUCLC;
- if (aixtermios.c_iflag & AIX_IMAXBEL)
- linuxtermios_p->c_iflag |= IMAXBEL;
-
- /* Many of the c_oflag files differ. Bummer. */
- linuxtermios_p->c_oflag = (aixtermios.c_oflag
- & (OPOST | OCRNL | ONOCR | ONLRET | OFILL
- | OFDEL | TABDLY));
- if (aixtermios.c_oflag & AIX_OLCUC)
- linuxtermios_p->c_oflag |= OLCUC;
- if (aixtermios.c_oflag & AIX_ONLCR)
- linuxtermios_p->c_oflag |= ONLCR;
- if (aixtermiosc_oflag & AIX_NLDLY)
- linuxtermios_p->c_oflag |= NL1;
-
- if (aixtermiosc_oflag.c_oflag & AIX_TABDLY)
- {
-#define offset 2
-#if AIX_TAB1 << offset != TAB1 || AIX_TAB3 << offset != TAB3
-# error "Check the offset"
-#endif
- linuxtermios_p->c_oflag |= (aixtermios.c_oflag >> offset) & TABDLY;
-#undef offset
- }
- if (aixtermios.c_oflag & AIX_FFDLY)
- linuxtermios_p->c_oflag |= FF1;
- if (aixtermios.c_oflag & AIX_BSDLY)
- linuxtermios_p->c_oflag |= BS1;
- if (aixtermios.c_oflag & AIX_VTDLY)
- linuxtermios_p->c_oflag |= VT1;
-
- /* A lot of the c_cflag member is also different. */
- if (aixtermios.c_cflag & AIX_CSIZE)
- {
-#define offset 4
-#if CSIZE >> offset != AIX_CSIZE
-# error "Check the offset"
-#endif
- linuxtermios_p->c_cflag |= (aixtermios.c_cflag >> offset) & CSIZE;
-#undef offset
- }
-
- if (aixtermios.c_cflag & AIX_STOPB)
- linuxtermios_p->c_cflag |= STOPB;
- if (aixtermios.c_cflag & AIX_CREAD)
- linuxtermios_p->c_cflag |= CREAD;
- if (aixtermios.cflag & AIX_PARENB)
- linuxtermios_p->c_cflag |= PARENB;
- if (aixtermios.cflag & AIX_PARODD)
- linuxtermios_p->c_cflag |= PARODD;
- if (aixtermios.c_cflag & AIX_HUPCL)
- linuxtermios_p->c_cflag |= HUPCL;
- if (aixtermios.c_cflag & AIX_CLOCAL)
- linuxtermios_p->c_cflag |= CLOCAL;
-
- /* The c_lflag is information is also different. */
- aixtermios.c_lflag = 0;
- if (aixtermios.c_lflag & AIX_ISIG)
- linuxtermios_p->c_lflag |= ISIG;
- if (aixtermios.c_lflag & AIX_ICANON)
- linuxtermios_p->c_lflag |= ICANON;
- if (aixtermios.c_lflag & AIX_XCASE)
- linuxtermios_p->c_lflag |= XCASE;
- if (aixtermios.c_lflag & AIX_ECHO)
- linuxtermios_p->c_lflag |= ECHO;
- if (aixtermios.c_lflag & AIX_ECHOE)
- linuxtermios_p->c_lflag |= ECHOE;
- if (aixtermios.c_lflag & AIX_ECHOK)
- linuxtermios_p->c_lflag |= ECHOK;
- if (aixtermios.c_lflag & AIX_ECHONL)
- linuxtermios_p->c_lflag |= ECHONL;
- if (aixtermios.c_lflag & AIX_NOFLSH)
- linuxtermios_p->c_lflag |= NOFLSH;
- if (aixtermios.c_lflag & AIX_TOSTOP)
- linuxtermios_p->c_lflag |= TOSTOP;
- if (aixtermios.c_lflag & AIX_ECHOCTL)
- linuxtermios_p->c_lflag |= ECHOCTL;
- if (aixtermios.c_lflag & AIX_ECHOPRT)
- linuxtermios_p->c_lflag |= ECHOPRT;
- if (aixtermios.c_lflag & AIX_ECHOKE)
- linuxtermios_p->c_lflag |= ECHOKE;
- if (aixtermios.c_lflag & AIX_FLUSHO)
- linuxtermios_p->c_lflag |= FLUSHO;
- if (aixtermios.c_lflag & AIX_PENDIN)
- linuxtermios_p->c_lflag |= PENDIN;
- if (aixtermios->c_lflag & AIX_IEXTEN)
- linuxtermios_p->c_lflag |= IEXTEN;
- }
- else
- // Convert error here or in syscall.
- ;
-
- return result;
-}
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/aix/tcsetattr.c b/libc/sysdeps/unix/sysv/linux/powerpc/aix/tcsetattr.c
deleted file mode 100644
index b7330a3de..000000000
--- a/libc/sysdeps/unix/sysv/linux/powerpc/aix/tcsetattr.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Copyright (C) 2000-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <termios.h>
-#include "aix-termios.h"
-
-int
-tcsetattr (fd, optional_actions, linuxtermios_p)
- int fd;
- int optional_actions;
- const struct termios *linuxtermios_p;
-{
- struct aixtermios aixtermios;
- int result;
-
- /* `optional_actions' does not have to be changed, AIX uses the
- same values as Linux. */
-
- aixtermios.c_cc[AIX_VINTR] = linuxtermios_p->c_cc[VINTR];
- aixtermios.c_cc[AIX_VQUIT] = linuxtermios_p->c_cc[VQUIT];
- aixtermios.c_cc[AIX_VERASE] = linuxtermios_p->c_cc[VERASE];
- aixtermios.c_cc[AIX_VKILL] = linuxtermios_p->c_cc[VKILL];
- aixtermios.c_cc[AIX_VEOF] = linuxtermios_p->c_cc[VEOF];
- // XXX VMIN has the same value as VEOF !?
- aixtermios.c_cc[AIX_VEOL] = linuxtermios_p->c_cc[VEOL];
- // XXX VTIME has the same value as VEOL !?
- aixtermios.c_cc[AIX_VEOL2] = linuxtermios_p->c_cc[VEOL2];
- aixtermios.c_cc[AIX_VSTART] = linuxtermios_p->c_cc[VSTART];
- aixtermios.c_cc[AIX_VSTOP] = linuxtermios_p->c_cc[VSTOP];
- aixtermios.c_cc[AIX_VSUSP] = linuxtermios_p->c_cc[VSUSP];
- aixtermios.c_cc[AIX_VDSUSP] = 0; // XXX No Linux equivalent !?
- aixtermios.c_cc[AIX_VREPRINT] = linuxtermios_p->c_cc[VREPRINT];
- aixtermios.c_cc[AIX_VDISCARD] = linuxtermios_p->c_cc[VDISCARD];
- aixtermios.c_cc[AIX_VWERASE] = linuxtermios_p->c_cc[VWERASE];
- aixtermios.c_cc[AIX_VLNEXT] = linuxtermios_p->c_cc[VLNEXT];
-
- /* AIX has not all the speeds (the high one) Linux supports. The
- symbol names and values used for the speeds are fortunately the
- same. */
- if ((linuxtermios_p->c_cflag & CBAUD) > B38400)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- aixtermios.c_c_flag = linuxtermios_p->c_cflag & CBAUD;
-
- /* Only the IUCLC, IXANY, and IMAXBEL values are different in the
- c_iflag member. */
- aixtermios.c_iflag = linuxtermios_p->c_iflag & 0x7ff;
- if (linuxtermios_p->c_iflag & IXANY)
- aixtermios.c_iflag |= AIX_IXANY;
- if (linuxtermios_p->c_iflag & IUCLC)
- aixtermios.c_iflag |= AIX_IUCLC;
- if (linuxtermios_p->c_iflag & IMAXBEL)
- aixtermios.c_iflag |= AIX_IMAXBEL;
-
- /* Many of the c_oflag files differ. Bummer. */
- aixtermios.c_oflag = (linuxtermios_p->c_oflag
- & (OPOST | OCRNL | ONOCR | ONLRET | OFILL
- | OFDEL | TABDLY));
- if (linuxtermios_p->c_oflag & OLCUC)
- aixtermios.c_oflag |= AIX_OLCUC;
- if (linuxtermios_p->c_oflag & ONLCR)
- aixtermios.c_oflag |= AIX_ONLCR;
- if (linuxtermios_p->c_oflag & NLDLY)
- {
- if ((linuxtermios_p->c_oflag & NLDLY) >= NL2)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (linuxtermios_p->c_oflag & NLDLY)
- aixtermios.c_oflag |= AIX_NL1;
- }
- if (linuxtermios_p->c_oflag & TABDLY)
- {
-#define offset 2
-#if TAB1 >> offset != AIX_TAB1 || TAB3 >> offset != AIX_TAB3
-# error "Check the offset"
-#endif
- aixtermios.c_oflag |= (linuxtermios_p->c_oflag >> offset) & AIX_TABDLY;
-#undef offset
- }
- if (linuxtermios_p->c_oflag & FFDLY)
- aixtermios.c_oflag |= AIX_FF1;
- if (linuxtermios_p->c_oflag & BSDLY)
- aixtermios.c_oflag |= AIX_BS1;
- if (linuxtermios_p->c_oflag & VTDLY)
- aixtermios.c_oflag |= AIX_VT1;
-
- /* A lot of the c_cflag member is also different. */
- if (linuxtermios_p->c_cflag & CSIZE)
- {
-#define offset 4
-#if CSIZE >> offset != AIX_CSIZE
-# error "Check the offset"
-#endif
- aixtermios.c_cflag |= (linuxtermios_p->c_cflag >> offset) & AIX_CSIZE;
-#undef offset
- }
-
- if (linuxtermios_p->c_cflag & STOPB)
- aixtermios.c_cflag |= AIX_STOPB;
- if (linuxtermios_p->c_cflag & CREAD)
- aixtermios.c_cflag |= AIX_CREAD;
- if (linuxtermios_p->c_cflag & PARENB)
- aixtermios.c_cflag |= AIX_PARENB;
- if (linuxtermios_p->c_cflag & PARODD)
- aixtermios.c_cflag |= AIX_PARODD;
- if (linuxtermios_p->c_cflag & HUPCL)
- aixtermios.c_cflag |= AIX_HUPCL;
- if (linuxtermios_p->c_cflag & CLOCAL)
- aixtermios.c_cflag |= AIX_CLOCAL;
-
- /* The c_lflag is information is also different. */
- aixtermios.c_lflag = 0;
- if (linuxtermios_p->c_lflag & ISIG)
- aixtermios.c_lflag |= AIX_ISIG;
- if (linuxtermios_p->c_lflag & ICANON)
- aixtermios.c_lflag |= AIX_ICANON;
- if (linuxtermios_p->c_lflag & XCASE)
- aixtermios.c_lflag |= AIX_XCASE;
- if (linuxtermios_p->c_lflag & ECHO)
- aixtermios.c_lflag |= AIX_ECHO;
- if (linuxtermios_p->c_lflag & ECHOE)
- aixtermios.c_lflag |= AIX_ECHOE;
- if (linuxtermios_p->c_lflag & ECHOK)
- aixtermios.c_lflag |= AIX_ECHOK;
- if (linuxtermios_p->c_lflag & ECHONL)
- aixtermios.c_lflag |= AIX_ECHONL;
- if (linuxtermios_p->c_lflag & NOFLSH)
- aixtermios.c_lflag |= AIX_NOFLSH;
- if (linuxtermios_p->c_lflag & TOSTOP)
- aixtermios.c_lflag |= AIX_TOSTOP;
- if (linuxtermios_p->c_lflag & ECHOCTL)
- aixtermios.c_lflag |= AIX_ECHOCTL;
- if (linuxtermios_p->c_lflag & ECHOPRT)
- aixtermios.c_lflag |= AIX_ECHOPRT;
- if (linuxtermios_p->c_lflag & ECHOKE)
- aixtermios.c_lflag |= AIX_ECHOKE;
- if (linuxtermios_p->c_lflag & FLUSHO)
- aixtermios.c_lflag |= AIX_FLUSHO;
- if (linuxtermios_p->c_lflag & PENDIN)
- aixtermios.c_lflag |= AIX_PENDIN;
- if (linuxtermios_p->c_lflag & IEXTEN)
- aixtermios.c_lflag |= AIX_IEXTEN;
-
- result = /* XXX syscall */;
-
- // Convert error here or in syscall.
-
- return result;
-}
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h b/libc/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
index 8b195db1b..ba54de4eb 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
@@ -34,6 +34,13 @@ extern void *__vdso_getcpu;
extern void *__vdso_time;
+#if defined(__PPC64__) || defined(__powerpc64__)
+extern void *__vdso_sigtramp_rt64;
+#else
+extern void *__vdso_sigtramp32;
+extern void *__vdso_sigtramp_rt32;
+#endif
+
/* This macro is needed for PPC64 to return a skeleton OPD entry of a vDSO
symbol. This works because _dl_vdso_vsym always return the function
address, and no vDSO symbols use the TOC or chain pointers from the OPD
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/init-first.c b/libc/sysdeps/unix/sysv/linux/powerpc/init-first.c
index f6f05f0ba..061715f87 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/init-first.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/init-first.c
@@ -29,6 +29,12 @@ void *__vdso_clock_getres;
void *__vdso_get_tbfreq;
void *__vdso_getcpu;
void *__vdso_time;
+#if defined(__PPC64__) || defined(__powerpc64__)
+void *__vdso_sigtramp_rt64;
+#else
+void *__vdso_sigtramp32;
+void *__vdso_sigtramp_rt32;
+#endif
static inline void
_libc_vdso_platform_setup (void)
@@ -46,6 +52,16 @@ _libc_vdso_platform_setup (void)
__vdso_getcpu = _dl_vdso_vsym ("__kernel_getcpu", &linux2615);
__vdso_time = _dl_vdso_vsym ("__kernel_time", &linux2615);
+
+ /* PPC64 uses only one signal trampoline symbol, while PPC32 will use
+ two depending if SA_SIGINFO is used (__kernel_sigtramp_rt32) or not
+ (__kernel_sigtramp32). */
+#if defined(__PPC64__) || defined(__powerpc64__)
+ __vdso_sigtramp_rt64 = _dl_vdso_vsym ("__kernel_sigtramp_rt64", &linux2615);
+#else
+ __vdso_sigtramp32 = _dl_vdso_vsym ("__kernel_sigtramp32", &linux2615);
+ __vdso_sigtramp_rt32 = _dl_vdso_vsym ("__kernel_sigtramp_rt32", &linux2615);
+#endif
}
# define VDSO_SETUP _libc_vdso_platform_setup
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
index ba3dc5a18..0fd674a35 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
@@ -54,7 +54,7 @@ __libc_start_main (int argc, char **argv,
char **temp;
/* ...in which case, we have argc as the top thing on the
stack, followed by argv (NULL-terminated), envp (likewise),
- and the auxilary vector. */
+ and the auxiliary vector. */
/* 32/64-bit agnostic load from stack */
argc = *(long int *) stack_on_entry;
argv = stack_on_entry + 1;
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
index 9273238a1..926f34207 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
@@ -23,7 +23,7 @@
and if appropriate:
__CONTEXT_ENABLE_FPRS
__CONTEXT_ENABLE_VRS
- Any archecture that implements the Vector unit is assumed to also
+ Any architecture that implements the Vector unit is assumed to also
implement the floating unit. */
/* Stack frame offsets. */
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
index 1f653bf50..fb7744839 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
@@ -23,7 +23,7 @@
and if appropriate:
__CONTEXT_ENABLE_FPRS
__CONTEXT_ENABLE_VRS
- Any archecture that implements the Vector unit is assumed to also
+ Any architecture that implements the Vector unit is assumed to also
implement the floating unit. */
/* Stack frame offsets. */
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
index 086d15b91..7e0612595 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
@@ -23,7 +23,7 @@
and if appropriate:
__CONTEXT_ENABLE_FPRS
__CONTEXT_ENABLE_VRS
- Any archecture that implements the Vector unit is assumed to also
+ Any architecture that implements the Vector unit is assumed to also
implement the floating unit. */
/* Stack frame offsets. */
diff --git a/libc/sysdeps/unix/sysv/linux/ptsname.c b/libc/sysdeps/unix/sysv/linux/ptsname.c
index ea6f0fed9..70f1f34be 100644
--- a/libc/sysdeps/unix/sysv/linux/ptsname.c
+++ b/libc/sysdeps/unix/sysv/linux/ptsname.c
@@ -56,7 +56,7 @@ extern const char __libc_ptyname2[] attribute_hidden;
static char buffer[sizeof (_PATH_DEVPTS) + 20];
-/* Return the pathname of the pseudo terminal slave assoicated with
+/* Return the pathname of the pseudo terminal slave associated with
the master FD is open on, or NULL on errors.
The returned storage is good until the next call to this function. */
char *
diff --git a/libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c b/libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
index cd0cb743b..7fbd28a25 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
+++ b/libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
@@ -46,7 +46,7 @@ __real_chown (const char *file, uid_t owner, gid_t group)
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-/* Compiling for compatibiity. */
+/* Compiling for compatibility. */
int
attribute_compat_text_section
__chown_is_lchown (const char *file, uid_t owner, gid_t group)
diff --git a/libc/sysdeps/unix/sysv/linux/s390/sa_len.c b/libc/sysdeps/unix/sysv/linux/s390/sa_len.c
index 6575b83e9..7b47aa8d6 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/sa_len.c
+++ b/libc/sysdeps/unix/sysv/linux/s390/sa_len.c
@@ -1,2 +1,3 @@
-#define NEED_AF_IUCV 1
-#include "../sa_len.c"
+#define HAVE_NETIUCV_IUCV_H
+
+#include <sysdeps/unix/sysv/linux/sa_len.c>
diff --git a/libc/sysdeps/unix/sysv/linux/sa_len.c b/libc/sysdeps/unix/sysv/linux/sa_len.c
index 09fc8eb9b..0e657fa09 100644
--- a/libc/sysdeps/unix/sysv/linux/sa_len.c
+++ b/libc/sysdeps/unix/sysv/linux/sa_len.c
@@ -1,63 +1,9 @@
-/* Copyright (C) 1998-2013 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sys/socket.h>
-
-#include <netash/ash.h>
-#include <netatalk/at.h>
-#include <netax25/ax25.h>
-#include <neteconet/ec.h>
-#include <netinet/in.h>
-#include <netipx/ipx.h>
-#include <netpacket/packet.h>
-#include <netrose/rose.h>
-#include <netiucv/iucv.h>
-#include <sys/un.h>
-
-int
-__libc_sa_len (sa_family_t af)
-{
- switch (af)
- {
- case AF_APPLETALK:
- return sizeof (struct sockaddr_at);
- case AF_ASH:
- return sizeof (struct sockaddr_ash);
- case AF_AX25:
- return sizeof (struct sockaddr_ax25);
- case AF_ECONET:
- return sizeof (struct sockaddr_ec);
- case AF_INET:
- return sizeof (struct sockaddr_in);
- case AF_INET6:
- return sizeof (struct sockaddr_in6);
- case AF_IPX:
- return sizeof (struct sockaddr_ipx);
-#ifdef NEED_AF_IUCV
- case AF_IUCV:
- return sizeof (struct sockaddr_iucv);
-#endif
- case AF_LOCAL:
- return sizeof (struct sockaddr_un);
- case AF_PACKET:
- return sizeof (struct sockaddr_ll);
- case AF_ROSE:
- return sizeof (struct sockaddr_rose);
- }
- return 0;
-}
-libc_hidden_def (__libc_sa_len)
+#define HAVE_NETASH_ASH_H
+#define HAVE_NETATALK_AT_H
+#define HAVE_NETAX25_AX25_H
+#define HAVE_NETECONET_EC_H
+#define HAVE_NETIPX_IPX_H
+#define HAVE_NETPACKET_PACKET_H
+#define HAVE_NETROSE_ROSE_H
+
+#include <socket/sa_len.c>
diff --git a/libc/sysdeps/unix/sysv/linux/socketcall.h b/libc/sysdeps/unix/sysv/linux/socketcall.h
index d1dffa340..d15671720 100644
--- a/libc/sysdeps/unix/sysv/linux/socketcall.h
+++ b/libc/sysdeps/unix/sysv/linux/socketcall.h
@@ -22,7 +22,7 @@
/* Define unique numbers for the operations permitted on socket. Linux
uses a single system call for all these functions. The relevant code
file is /usr/include/linux/net.h.
- We cannot use a enum here because the values are used in assembler
+ We cannot use an enum here because the values are used in assembler
code. */
#define SOCKOP_socket 1
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
index bd3d4f925..5e64efa6a 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
@@ -28,7 +28,7 @@
Returning to the correct parent context is pretty simple on
Sparc. We only need to link up the register windows correctly.
Since global registers are clobbered by calls, we need not be
- concernred about those, and thus is all could be worked out without
+ concerned about those, and thus is all could be worked out without
using a trampoline.
Except that we must deal with the signal mask, thus a trampoline
diff --git a/libc/sysdeps/unix/sysv/linux/tst-fanotify.c b/libc/sysdeps/unix/sysv/linux/tst-fanotify.c
new file mode 100644
index 000000000..b88995d6f
--- /dev/null
+++ b/libc/sysdeps/unix/sysv/linux/tst-fanotify.c
@@ -0,0 +1,56 @@
+/* Basic fanotify test.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/fanotify.h>
+
+static int
+do_test (void)
+{
+ int fd, ret;
+
+ fd = fanotify_init (0, 0);
+ if (fd < 0)
+ {
+ if (errno == ENOSYS)
+ {
+ puts ("SKIP: missing support for fanotify (check CONFIG_FANOTIFY=y)");
+ return 0;
+ }
+
+ perror ("fanotify_init (0, 0) failed");
+ return 1;
+ }
+
+ ret = fanotify_mark (fd, FAN_MARK_ADD | FAN_MARK_MOUNT, FAN_ACCESS
+ | FAN_MODIFY | FAN_OPEN | FAN_CLOSE | FAN_ONDIR
+ | FAN_EVENT_ON_CHILD, AT_FDCWD, ".");
+ if (ret)
+ {
+ perror ("fanotify_mark (...) failed");
+ return 1;
+ }
+
+ puts ("All OK");
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libc/sysdeps/wordsize-32/divdi3.c b/libc/sysdeps/wordsize-32/divdi3.c
index 7898541eb..fa122aa5f 100644
--- a/libc/sysdeps/wordsize-32/divdi3.c
+++ b/libc/sysdeps/wordsize-32/divdi3.c
@@ -333,7 +333,7 @@ strong_alias (__umoddi3, __umoddi3_internal)
/* We declare these with compat_symbol so that they are not visible at
link time. Programs must use the functions from libgcc. */
-#if defined SHARED && defined DO_VERSIONING
+#ifdef SHARED
# include <shlib-compat.h>
compat_symbol (libc, __divdi3, __divdi3, GLIBC_2_0);
compat_symbol (libc, __moddi3, __moddi3, GLIBC_2_0);
diff --git a/libc/sysdeps/x86/fpu/bits/fenv.h b/libc/sysdeps/x86/fpu/bits/fenv.h
index e2fa21dc1..b9040cce9 100644
--- a/libc/sysdeps/x86/fpu/bits/fenv.h
+++ b/libc/sysdeps/x86/fpu/bits/fenv.h
@@ -115,7 +115,7 @@ __NTH (feraiseexcept (int __excepts))
{
if ((FE_INVALID & __excepts) != 0)
{
- /* One example of a invalid operation is 0.0 / 0.0. */
+ /* One example of an invalid operation is 0.0 / 0.0. */
float __f = 0.0;
# ifdef __SSE_MATH__
diff --git a/libc/sysdeps/x86_64/dl-trampoline.S b/libc/sysdeps/x86_64/dl-trampoline.S
index 5770c64bf..a25e390a7 100644
--- a/libc/sysdeps/x86_64/dl-trampoline.S
+++ b/libc/sysdeps/x86_64/dl-trampoline.S
@@ -119,7 +119,7 @@ _dl_runtime_profile:
movq %rax, LR_RSP_OFFSET(%rsp)
/* We always store the XMM registers even if AVX is available.
- This is to provide backward binary compatility for existing
+ This is to provide backward binary compatibility for existing
audit modules. */
movaps %xmm0, (LR_XMM_OFFSET)(%rsp)
movaps %xmm1, (LR_XMM_OFFSET + XMM_SIZE)(%rsp)
diff --git a/libc/sysdeps/x86_64/fpu/fraiseexcpt.c b/libc/sysdeps/x86_64/fpu/fraiseexcpt.c
index 9a251e101..e5f553adf 100644
--- a/libc/sysdeps/x86_64/fpu/fraiseexcpt.c
+++ b/libc/sysdeps/x86_64/fpu/fraiseexcpt.c
@@ -30,7 +30,7 @@ __feraiseexcept (int excepts)
/* First: invalid exception. */
if ((FE_INVALID & excepts) != 0)
{
- /* One example of a invalid operation is 0.0 / 0.0. */
+ /* One example of an invalid operation is 0.0 / 0.0. */
float f = 0.0;
__asm__ __volatile__ ("divss %0, %0 " : : "x" (f));
diff --git a/libc/sysdeps/x86_64/fpu/libm-test-ulps b/libc/sysdeps/x86_64/fpu/libm-test-ulps
index d02618a0a..6fbfa64ae 100644
--- a/libc/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/libc/sysdeps/x86_64/fpu/libm-test-ulps
@@ -6222,11 +6222,39 @@ idouble: 1
Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
+Test "gamma (-0x1p-10)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "gamma (-0x1p-15)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "gamma (-0x1p-20)":
+double: 1
+idouble: 1
+Test "gamma (-0x1p-30)":
+ildouble: 1
+ldouble: 1
+Test "gamma (-0x1p-5)":
+double: 1
+idouble: 1
Test "gamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "gamma (0x1p-10)":
+float: 1
+ifloat: 1
+Test "gamma (0x1p-30)":
+double: 1
+idouble: 1
+Test "gamma (0x1p-40)":
+ildouble: 1
+ldouble: 1
Test "gamma (1.2)":
double: 1
float: 2
@@ -6403,6 +6431,11 @@ idouble: 2
ifloat: 2
ildouble: 1
ldouble: 1
+Test "jn (2, 0x1p127)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "jn (2, 2.4048255576957729)":
double: 2
float: 1
@@ -6486,11 +6519,39 @@ ldouble: 2
Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
+Test "lgamma (-0x1p-10)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "lgamma (-0x1p-15)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "lgamma (-0x1p-20)":
+double: 1
+idouble: 1
+Test "lgamma (-0x1p-30)":
+ildouble: 1
+ldouble: 1
+Test "lgamma (-0x1p-5)":
+double: 1
+idouble: 1
Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "lgamma (0x1p-10)":
+float: 1
+ifloat: 1
+Test "lgamma (0x1p-30)":
+double: 1
+idouble: 1
+Test "lgamma (0x1p-40)":
+ildouble: 1
+ldouble: 1
Test "lgamma (1.2)":
double: 1
float: 2
@@ -7728,6 +7789,16 @@ double: 3
float: 1
idouble: 3
ifloat: 1
+Test "yn (2, 0x1.ffff62p+99)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "yn (2, 0x1p127)":
+double: 1
+float: 3
+idouble: 1
+ifloat: 3
Test "yn (3, 0.125)":
double: 1
idouble: 1
@@ -8428,9 +8499,9 @@ ldouble: 2
Function: "yn":
double: 3
-float: 2
+float: 3
idouble: 3
-ifloat: 2
+ifloat: 3
ildouble: 4
ldouble: 4
diff --git a/libc/sysdeps/x86_64/multiarch/Makefile b/libc/sysdeps/x86_64/multiarch/Makefile
index 203d16eed..5ab950a53 100644
--- a/libc/sysdeps/x86_64/multiarch/Makefile
+++ b/libc/sysdeps/x86_64/multiarch/Makefile
@@ -6,8 +6,10 @@ endif
ifeq ($(subdir),string)
-sysdep_routines += strncat-c stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
- strend-sse4 memcmp-sse4 memcpy-ssse3 memcpy-sse2-unaligned mempcpy-ssse3 \
+sysdep_routines += strncat-c stpncpy-c strncpy-c strcmp-ssse3 \
+ strcmp-sse2-unaligned strncmp-ssse3 \
+ strend-sse4 memcmp-sse4 memcpy-ssse3 \
+ memcpy-sse2-unaligned mempcpy-ssse3 \
memmove-ssse3 memcpy-ssse3-back mempcpy-ssse3-back \
memmove-ssse3-back strcasestr-nonascii strcasecmp_l-ssse3 \
strncase_l-ssse3 strcat-ssse3 strncat-ssse3\
diff --git a/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c
index 28d35793c..f8756d7af 100644
--- a/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c
+++ b/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c
@@ -61,12 +61,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
__memmove_ssse3)
IFUNC_IMPL_ADD (array, i, memmove, 1, __memmove_sse2))
- /* Support sysdeps/x86_64/multiarch/rawmemchr.S. */
- IFUNC_IMPL (i, name, rawmemchr,
- IFUNC_IMPL_ADD (array, i, rawmemchr, HAS_SSE4_2,
- __rawmemchr_sse42)
- IFUNC_IMPL_ADD (array, i, rawmemchr, 1, __rawmemchr_sse2))
-
/* Support sysdeps/x86_64/multiarch/stpncpy.S. */
IFUNC_IMPL (i, name, stpncpy,
IFUNC_IMPL_ADD (array, i, stpncpy, HAS_SSSE3,
@@ -124,6 +118,7 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL (i, name, strcmp,
IFUNC_IMPL_ADD (array, i, strcmp, HAS_SSE4_2, __strcmp_sse42)
IFUNC_IMPL_ADD (array, i, strcmp, HAS_SSSE3, __strcmp_ssse3)
+ IFUNC_IMPL_ADD (array, i, strcmp, 1, __strcmp_sse2_unaligned)
IFUNC_IMPL_ADD (array, i, strcmp, 1, __strcmp_sse2))
/* Support sysdeps/x86_64/multiarch/strcpy.S. */
diff --git a/libc/sysdeps/x86_64/multiarch/rawmemchr.S b/libc/sysdeps/x86_64/multiarch/rawmemchr.S
deleted file mode 100644
index 50de38ffb..000000000
--- a/libc/sysdeps/x86_64/multiarch/rawmemchr.S
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Multiple versions of rawmemchr
- All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2009-2013 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper <drepper@redhat.com>.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <init-arch.h>
-
-
-/* Define multiple versions only for the definition in lib. */
-#ifndef NOT_IN_libc
- .text
-ENTRY(rawmemchr)
- .type rawmemchr, @gnu_indirect_function
- cmpl $0, __cpu_features+KIND_OFFSET(%rip)
- jne 1f
- call __init_cpu_features
-1: testl $bit_Prefer_PMINUB_for_stringop, __cpu_features+FEATURE_OFFSET+index_Prefer_PMINUB_for_stringop(%rip)
- jnz 2f
- testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
- jz 2f
- leaq __rawmemchr_sse42(%rip), %rax
- ret
-2: leaq __rawmemchr_sse2(%rip), %rax
- ret
-
-END(rawmemchr)
-strong_alias (rawmemchr, __rawmemchr)
-
-
- .section .text.sse4.2,"ax",@progbits
- .align 16
- .type __rawmemchr_sse42, @function
- .globl __rawmemchr_sse42
- .hidden __rawmemchr_sse42
-__rawmemchr_sse42:
- cfi_startproc
- CALL_MCOUNT
- movd %esi, %xmm1
- movq %rdi, %rcx
- pxor %xmm2, %xmm2
- andq $~15, %rdi
- orl $0xffffffff, %esi
- pshufb %xmm2, %xmm1
- movdqa (%rdi), %xmm0
- subq %rdi, %rcx
- pcmpeqb %xmm1, %xmm0
- shl %cl, %esi
- pmovmskb %xmm0, %ecx
- movl $16, %eax
- movl $16, %edx
- andl %esi, %ecx
- jnz 1f
-
-2: pcmpestri $0x08, 16(%rdi), %xmm1
- leaq 16(%rdi), %rdi
- jnc 2b
-
- leaq (%rdi,%rcx), %rax
- ret
-
-1: bsfl %ecx, %eax
- addq %rdi, %rax
- ret
- cfi_endproc
- .size __rawmemchr_sse42, .-__rawmemchr_sse42
-
-
-# undef ENTRY
-# define ENTRY(name) \
- .type __rawmemchr_sse2, @function; \
- .align 16; \
- .globl __rawmemchr_sse2; \
- .hidden __rawmemchr_sse2; \
- __rawmemchr_sse2: cfi_startproc; \
- CALL_MCOUNT
-# undef END
-# define END(name) \
- cfi_endproc; .size __rawmemchr_sse2, .-__rawmemchr_sse2
-# undef libc_hidden_builtin_def
-/* It doesn't make sense to send libc-internal rawmemchr calls through a PLT.
- The speedup we get from using SSE4.2 instruction is likely eaten away
- by the indirect call in the PLT. */
-# define libc_hidden_builtin_def(name) \
- .globl __GI___rawmemchr; __GI___rawmemchr = __rawmemchr_sse2
-#endif
-
-#include "../rawmemchr.S"
diff --git a/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S b/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
new file mode 100644
index 000000000..eed843297
--- /dev/null
+++ b/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
@@ -0,0 +1,210 @@
+/* strcmp with unaligned loads
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "sysdep.h"
+#define ALIGN(x) .p2align x
+
+ENTRY ( __strcmp_sse2_unaligned)
+ movl %edi, %eax
+ xorl %edx, %edx
+ pxor %xmm7, %xmm7
+ orl %esi, %eax
+ andl $4095, %eax
+ cmpl $4032, %eax
+ jg L(cross_page)
+ movdqu (%rdi), %xmm1
+ movdqu (%rsi), %xmm0
+ pcmpeqb %xmm1, %xmm0
+ pminub %xmm1, %xmm0
+ pxor %xmm1, %xmm1
+ pcmpeqb %xmm1, %xmm0
+ pmovmskb %xmm0, %eax
+ testq %rax, %rax
+ je L(next_48_bytes)
+L(return):
+ bsfq %rax, %rdx
+ movzbl (%rdi, %rdx), %eax
+ movzbl (%rsi, %rdx), %edx
+ subl %edx, %eax
+ ret
+
+ ALIGN (4)
+L(next_48_bytes):
+ movdqu 16(%rdi), %xmm6
+ movdqu 16(%rsi), %xmm3
+ movdqu 32(%rdi), %xmm5
+ pcmpeqb %xmm6, %xmm3
+ movdqu 32(%rsi), %xmm2
+ pminub %xmm6, %xmm3
+ pcmpeqb %xmm1, %xmm3
+ movdqu 48(%rdi), %xmm4
+ pcmpeqb %xmm5, %xmm2
+ pmovmskb %xmm3, %edx
+ movdqu 48(%rsi), %xmm0
+ pminub %xmm5, %xmm2
+ pcmpeqb %xmm1, %xmm2
+ pcmpeqb %xmm4, %xmm0
+ pmovmskb %xmm2, %eax
+ salq $16, %rdx
+ pminub %xmm4, %xmm0
+ pcmpeqb %xmm1, %xmm0
+ salq $32, %rax
+ orq %rdx, %rax
+ pmovmskb %xmm0, %ecx
+ movq %rcx, %rdx
+ salq $48, %rdx
+ orq %rdx, %rax
+ jne L(return)
+L(main_loop_header):
+ leaq 64(%rdi), %rdx
+ movl $4096, %ecx
+ pxor %xmm9, %xmm9
+ andq $-64, %rdx
+ subq %rdi, %rdx
+ leaq (%rdi, %rdx), %rax
+ addq %rsi, %rdx
+ movq %rdx, %rsi
+ andl $4095, %esi
+ subq %rsi, %rcx
+ shrq $6, %rcx
+ movq %rcx, %rsi
+ jmp L(loop_start)
+
+ ALIGN (4)
+L(loop):
+ addq $64, %rax
+ addq $64, %rdx
+L(loop_start):
+ testq %rsi, %rsi
+ leaq -1(%rsi), %rsi
+ je L(loop_cross_page)
+L(back_to_loop):
+ movdqu (%rdx), %xmm0
+ movdqu 16(%rdx), %xmm1
+ movdqa (%rax), %xmm2
+ movdqa 16(%rax), %xmm3
+ pcmpeqb %xmm2, %xmm0
+ movdqu 32(%rdx), %xmm5
+ pcmpeqb %xmm3, %xmm1
+ pminub %xmm2, %xmm0
+ movdqu 48(%rdx), %xmm6
+ pminub %xmm3, %xmm1
+ movdqa 32(%rax), %xmm2
+ pminub %xmm1, %xmm0
+ movdqa 48(%rax), %xmm3
+ pcmpeqb %xmm2, %xmm5
+ pcmpeqb %xmm3, %xmm6
+ pminub %xmm2, %xmm5
+ pminub %xmm3, %xmm6
+ pminub %xmm5, %xmm0
+ pminub %xmm6, %xmm0
+ pcmpeqb %xmm7, %xmm0
+ pmovmskb %xmm0, %ecx
+ testl %ecx, %ecx
+ je L(loop)
+ pcmpeqb %xmm7, %xmm5
+ movdqu (%rdx), %xmm0
+ pcmpeqb %xmm7, %xmm1
+ movdqa (%rax), %xmm2
+ pcmpeqb %xmm2, %xmm0
+ pminub %xmm2, %xmm0
+ pcmpeqb %xmm7, %xmm6
+ pcmpeqb %xmm7, %xmm0
+ pmovmskb %xmm1, %ecx
+ pmovmskb %xmm5, %r8d
+ pmovmskb %xmm0, %edi
+ salq $16, %rcx
+ salq $32, %r8
+ pmovmskb %xmm6, %esi
+ orq %r8, %rcx
+ orq %rdi, %rcx
+ salq $48, %rsi
+ orq %rsi, %rcx
+ bsfq %rcx, %rcx
+ movzbl (%rax, %rcx), %eax
+ movzbl (%rdx, %rcx), %edx
+ subl %edx, %eax
+ ret
+
+ ALIGN (4)
+L(loop_cross_page):
+ xor %r10, %r10
+ movq %rdx, %r9
+ and $63, %r9
+ subq %r9, %r10
+
+ movdqa (%rdx, %r10), %xmm0
+ movdqa 16(%rdx, %r10), %xmm1
+ movdqu (%rax, %r10), %xmm2
+ movdqu 16(%rax, %r10), %xmm3
+ pcmpeqb %xmm2, %xmm0
+ movdqa 32(%rdx, %r10), %xmm5
+ pcmpeqb %xmm3, %xmm1
+ pminub %xmm2, %xmm0
+ movdqa 48(%rdx, %r10), %xmm6
+ pminub %xmm3, %xmm1
+ movdqu 32(%rax, %r10), %xmm2
+ movdqu 48(%rax, %r10), %xmm3
+ pcmpeqb %xmm2, %xmm5
+ pcmpeqb %xmm3, %xmm6
+ pminub %xmm2, %xmm5
+ pminub %xmm3, %xmm6
+
+ pcmpeqb %xmm7, %xmm0
+ pcmpeqb %xmm7, %xmm1
+ pcmpeqb %xmm7, %xmm5
+ pcmpeqb %xmm7, %xmm6
+
+ pmovmskb %xmm1, %ecx
+ pmovmskb %xmm5, %r8d
+ pmovmskb %xmm0, %edi
+ salq $16, %rcx
+ salq $32, %r8
+ pmovmskb %xmm6, %esi
+ orq %r8, %rdi
+ orq %rcx, %rdi
+ salq $48, %rsi
+ orq %rsi, %rdi
+ movq %r9, %rcx
+ movq $63, %rsi
+ shrq %cl, %rdi
+ test %rdi, %rdi
+ je L(back_to_loop)
+ bsfq %rdi, %rcx
+ movzbl (%rax, %rcx), %eax
+ movzbl (%rdx, %rcx), %edx
+ subl %edx, %eax
+ ret
+
+ ALIGN (4)
+L(cross_page_loop):
+ cmpb %cl, %al
+ jne L(different)
+ addq $1, %rdx
+ cmpq $64, %rdx
+ je L(main_loop_header)
+L(cross_page):
+ movzbl (%rdi, %rdx), %eax
+ movzbl (%rsi, %rdx), %ecx
+ testb %al, %al
+ jne L(cross_page_loop)
+ xorl %eax, %eax
+L(different):
+ subl %ecx, %eax
+ ret
+END (__strcmp_sse2_unaligned)
diff --git a/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S b/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
index a503e9211..c84f1c2b3 100644
--- a/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
+++ b/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
@@ -206,7 +206,7 @@ LABEL(touppermask):
jnz LABEL(less16bytes)/* If not, find different value or null char */
#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
sub $16, %r11
- jbe LABEL(strcmp_exitz)/* finish comparision */
+ jbe LABEL(strcmp_exitz)/* finish comparison */
#endif
add $16, %rsi /* prepare to search next 16 bytes */
add $16, %rdi /* prepare to search next 16 bytes */
diff --git a/libc/sysdeps/x86_64/multiarch/strcmp.S b/libc/sysdeps/x86_64/multiarch/strcmp.S
index 1d4d71183..c5dcd1aa5 100644
--- a/libc/sysdeps/x86_64/multiarch/strcmp.S
+++ b/libc/sysdeps/x86_64/multiarch/strcmp.S
@@ -66,6 +66,7 @@
# define STRCMP_SSE2 __strncasecmp_l_sse2
# define __GI_STRCMP __GI___strncasecmp_l
#else
+# define USE_AS_STRCMP
# define UPDATE_STRNCMP_COUNTER
# ifndef STRCMP
# define STRCMP strcmp
@@ -88,11 +89,17 @@ ENTRY(STRCMP)
jne 1f
call __init_cpu_features
1:
+#ifdef USE_AS_STRCMP
+ leaq __strcmp_sse2_unaligned(%rip), %rax
+ testl $bit_Fast_Unaligned_Load, __cpu_features+CPUID_OFFSET+index_Fast_Unaligned_Load(%rip)
+ jnz 3f
+#else
testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip)
jnz 2f
leaq STRCMP_SSE42(%rip), %rax
testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
jnz 3f
+#endif
2: leaq STRCMP_SSSE3(%rip), %rax
testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
jnz 3f
diff --git a/libc/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S b/libc/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
index cd56e5637..7710173c6 100644
--- a/libc/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
+++ b/libc/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S
@@ -93,7 +93,7 @@ ENTRY (STRCPY)
movdqu (%rsi, %rcx), %xmm1 /* copy 16 bytes */
movdqu %xmm1, (%rdi)
-/* If source adress alignment != destination adress alignment */
+/* If source address alignment != destination address alignment */
.p2align 4
L(Unalign16Both):
sub %rcx, %rdi
@@ -289,7 +289,7 @@ L(Unaligned64Leave):
BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)
# endif
-/* If source adress alignment == destination adress alignment */
+/* If source address alignment == destination address alignment */
L(SourceStringAlignmentLess32):
pxor %xmm0, %xmm0