Florian Weimer [Fri, 29 Apr 2016 15:08:06 +0000 (17:08 +0200)]
getnameinfo: Refactor and fix memory leak [BZ #19642]
Split getnameinfo into separate functions for host and service
lookups, and for different address families.
Gabriel F. T. Gomes [Mon, 25 Jan 2016 15:50:34 +0000 (10:50 -0500)]
powerpc: Zero pad using memset in strncpy/stpncpy
Call __memset_power8 to pad, with zeros, the remaining bytes in the
dest string on __strncpy_power8 and __stpncpy_power8. This improves
performance when n is larger than the input string, giving ~30% gain for
larger strings without impacting much shorter strings.
Florian Weimer [Fri, 29 Apr 2016 08:47:40 +0000 (10:47 +0200)]
NEWS entry for CVE-2016-3075
Florian Weimer [Fri, 29 Apr 2016 08:35:34 +0000 (10:35 +0200)]
CVE-2016-3706: getaddrinfo: stack overflow in hostent conversion [BZ #20010]
When converting a struct hostent response to struct gaih_addrtuple, the
gethosts macro (which is called from gaih_inet) used alloca, without
malloc fallback for large responses. This commit changes this code to
use calloc unconditionally.
This commit also consolidated a second hostent-to-gaih_addrtuple
conversion loop (in gaih_inet) to use the new conversion function.
Florian Weimer [Fri, 29 Apr 2016 07:33:07 +0000 (09:33 +0200)]
glob: Simplify the interface for the GLOB_ALTDIRFUNC callback gl_readdir
Previously, application code had to set up the d_namlen member if
the target supported it, involving conditional compilation. After
this change, glob will use the length of the string in d_name instead
of d_namlen to determine the file name length. All glibc targets
provide the d_type and d_ino members, and setting them as needed for
gl_readdir is straightforward.
Changing the behavior with regards to d_ino is left to a future
cleanup.
Joseph Myers [Thu, 28 Apr 2016 22:01:04 +0000 (22:01 +0000)]
Fix stdio.h namespace for pre-threads POSIX (bug 20014).
stdio.h declares flockfile, ftrylockfile, funlockfile, getc_unlocked,
getchar_unlocked, putc_unlocked and putchar_unlocked if __USE_POSIX,
with comments "These are defined in POSIX.1:1996.". But __USE_POSIX
is actually POSIX.1:1990, and these functions should not be declared
for 1990 / 1992 / 1993 POSIX, XPG3 or XPG4. This patch fixes stdio.h
to use __USE_POSIX199506 instead for those conditionals, as that is
the correct conditional for the version of POSIX that introduced
threads, and with threads those functions.
Tested for x86_64 and x86 (testsuite, and that installed shared
libraries are unchanged by the patch).
[BZ #20014]
* libio/stdio.h (getc_unlocked): Declare if [__USE_POSIX199506],
not [__USE_POSIX].
(getchar_unlocked): Likewise.
(putc_unlocked): Likewise.
(putchar_unlocked): Likewise.
(flockfile): Likewise.
(ftrylockfile): Likewise.
(funlockfile): Likewise.
* conform/Makefile (test-xfail-XPG3/stdio.h/conform): Remove
variable.
(test-xfail-XPG4/stdio.h/conform): Likewise.
Joseph Myers [Thu, 28 Apr 2016 17:19:53 +0000 (17:19 +0000)]
conformtest: Add langinfo.h expectations for YESSTR, NOSTR.
The conformtest expectations for langinfo.h fail to include the YESSTR
and NOSTR constants that were present in UNIX98 and earlier XPG
standards. This patch adds those expectations, so fixing three
XFAILs.
Tested for x86_64 and x86.
* conform/data/langinfo.h-data [XPG3 || XPG4 || UNIX98] (YESSTR):
Expect constant.
[XPG3 || XPG4 || UNIX98] (NOSTR): Likewise.
* conform/Makefile (test-xfail-XPG3/langinfo.h/conform): Remove
variable.
(test-xfail-XPG4/langinfo.h/conform): Likewise.
(test-xfail-UNIX98/langinfo.h/conform): Likewise.
Joseph Myers [Thu, 28 Apr 2016 17:00:52 +0000 (17:00 +0000)]
Also define off_t in stdio.h for UNIX98.
Similar to my previous fix for XOPEN2K
<https://sourceware.org/ml/libc-alpha/2016-04/msg00631.html>, now that
bugs in the conformtest expectations for stdio.h for UNIX98 have been
corrected, that case too fails because fseeko and ftello are now
correctly expected, but off_t is not defined. As in that fix, it
seems appropriate to define off_t in stdio.h for this standard as
well, and this patch does so.
Tested for x86_64 and x86 (testsuite, and that installed shared
libraries are unchanged by the patch).
* libio/stdio.h (off_t): Also define if [__USE_UNIX98].
[__USE_LARGEFILE64] (off64_t): Likewise.
* conform/Makefile (test-xfail-UNIX98/stdio.h/conform): Remove
variable.
Florian Weimer [Thu, 28 Apr 2016 15:41:49 +0000 (17:41 +0200)]
getnameinfo: Do not preserve errno
POSIX does not require it, the companion getaddrinfo implementation
does not do it, and this behavior is not documented in the manual
page, either.
Florian Weimer [Thu, 28 Apr 2016 14:53:56 +0000 (16:53 +0200)]
resolv: Reindent preprocessor conditionals following cleanups
Florian Weimer [Thu, 28 Apr 2016 11:58:18 +0000 (13:58 +0200)]
resolv: Assorted preprocessor cleanups
Florian Weimer [Thu, 28 Apr 2016 11:20:11 +0000 (13:20 +0200)]
resolv: Remove SUNSECURITY preprocessor conditionals
The macro is never defined.
Florian Weimer [Thu, 28 Apr 2016 11:08:53 +0000 (13:08 +0200)]
resolv: Remove BSD compatibility conditionals and header
Florian Weimer [Thu, 28 Apr 2016 09:53:00 +0000 (11:53 +0200)]
resolv: Remove __BIND_NOSTATIC conditionals
The macro is never defined.
Florian Weimer [Thu, 28 Apr 2016 09:51:02 +0000 (11:51 +0200)]
resolv: Remove traces of ULTRIX support
Florian Weimer [Thu, 28 Apr 2016 09:43:41 +0000 (11:43 +0200)]
resolv: Remove RFC1535 conditionals
Florian Weimer [Thu, 28 Apr 2016 09:27:49 +0000 (11:27 +0200)]
resolv: Remove RESOLVSORT preprocess conditionals
Florian Weimer [Thu, 28 Apr 2016 09:23:52 +0000 (11:23 +0200)]
resolv: Remove BIND_UPDATE preprocessor conditionals
Florian Weimer [Thu, 28 Apr 2016 09:14:10 +0000 (11:14 +0200)]
inet: Remove SCCS keywords
Florian Weimer [Thu, 28 Apr 2016 09:01:01 +0000 (11:01 +0200)]
resolv: Remove _LIBC conditionals
Florian Weimer [Thu, 28 Apr 2016 08:55:16 +0000 (10:55 +0200)]
resolv: Remove SCCS and RCS keywords
Florian Weimer [Thu, 28 Apr 2016 09:32:44 +0000 (11:32 +0200)]
Fix ChangeLog date to reflect commit date
Joseph Myers [Wed, 27 Apr 2016 21:28:58 +0000 (21:28 +0000)]
conformtest: Correct stdio.h expectations for fdopen.
The conform/ test of stdio.h wrongly does not expect fdopen for XPG3
and XPG4. fdopen is in those standards; this patch corrects the
expectations.
Tested for x86_64 and x86.
* conform/data/stdio.h-data (fdopen): Expect also for
[XPG3 || XPG4].
Joseph Myers [Wed, 27 Apr 2016 21:17:00 +0000 (21:17 +0000)]
conformtest: Correct some stdio.h expectations for UNIX98.
The conform/ test of stdio.h for UNIX98 fails with surious namespace
errors for functions that are correctly declared for that standard.
This patch fixes the expectations to expect those functions also for
UNIX98. (This does not by itself fix the XFAIL of that test, and is
not based a full review of the header expectations so there could
still be other bugs in the expectations for this header for UNIX98.)
Tested for x86_64 and x86.
* conform/data/stdio.h-data (flockfile): Also expect for [UNIX98].
(fseeko): Likewise.
(ftello): Likewise.
(ftrylockfile): Likewise.
(funlockfile): Likewise.
(getc_unlocked): Likewise.
(getchar_unlocked): Likewise.
(putc_unlocked): Likewise.
(putchar_unlocked): Likewise.
Florian Weimer [Wed, 27 Apr 2016 15:15:57 +0000 (17:15 +0200)]
nss_dns: Skip over non-PTR records in the netent code [BZ #19868]
This requires additional checks for the RDATA length and the
availability of record metadata.
Florian Weimer [Wed, 27 Apr 2016 14:48:45 +0000 (16:48 +0200)]
nss_dns: Remove custom offsetof macro definition
Florian Weimer [Wed, 27 Apr 2016 14:39:12 +0000 (16:39 +0200)]
nss_dns: Check address length before creating addrinfo result [BZ #19831]
Previously, we allocated room in the result space before the check,
leaving uninitialized data there in case the check failed.
This also consolidates the behavior between single (A or AAAA) and
dual (A and AAAA in parallel) queries. Single queries checked
the record length against the QTYPE, not the RRTYPE.
Florian Weimer [Wed, 27 Apr 2016 14:12:32 +0000 (16:12 +0200)]
resolv, nss_dns: Remove remaining syslog logging [BZ #19862]
The fix for bug 14841 only removed part of the logging.
Joseph Myers [Wed, 27 Apr 2016 14:03:14 +0000 (14:03 +0000)]
conformtest: Correct some signal.h expectations for XOPEN2K.
The conformtest expectations for signal.h have various declarations
that are expected for POSIX (1996) and all later standards, except,
wrongly, for XOPEN2K. This shows up as failures of tests for two
other headers, which are allowed to make visible symbols from
signal.h, because of an incorrect namespace failure for sigval
(required in signal.h in XOPEN2K, so should be allowed for those other
headers); signal.h tests for various standards fail anyway because of
other problems in the header. This patch fixes the incorrect
expectations and removes the two XFAILs that this fixes.
Tested for x86_64 and x86.
* conform/data/signal.h-data (union sigval): Expect also if
[XOPEN2K].
(struct sigevent): Likewise.
(SIGEV_NONE): Likewise.
(SIGEV_SIGNAL): Likewise.
(SIGEV_THREAD): Likewise.
(SIGRTMIN): Likewise.
(SIGRTMAX): Likewise.
* conform/Makefile (test-xfail-XOPEN2K/aio.h/conform): Remove
variable.
(test-xfail-XOPEN2K/mqueue.h/conform): Likewise.
Florian Weimer [Wed, 27 Apr 2016 13:11:41 +0000 (15:11 +0200)]
nss_dns: Validate RDATA length against packet length [BZ #19830]
In _nss_dns_getcanonname_r, a check for the availability of RR metadata
was missing as well.
Florian Weimer [Wed, 27 Apr 2016 12:26:47 +0000 (14:26 +0200)]
resolv: Always set *resplen2 out parameter in send_vc [BZ #19825]
In various error scenarios (for example, if the server closes the
TCP connection before sending the full response), send_vc can return
without resetting the *resplen2 value. This can pass uninitialized
or unexpected data to the caller.
Stefan Liebler [Wed, 27 Apr 2016 07:08:29 +0000 (09:08 +0200)]
Add missing iucv related defines.
this patch adds the missing SOL_IUCV socket level definition
and socket options SO_IPRMDATA_MSG, SO_MSGLIMIT, SO_MSGSIZE
which can be used with get/setsockopt().
SCM_IUCV_TRGCLS is needed to send/receive ancillary data with send/recvmsg().
The defines are copied from kernel-source:
include/net/iucv/af_iucv.h
include/linux/socket.h
Mike Frysinger [Sat, 23 Apr 2016 21:24:39 +0000 (17:24 -0400)]
localedata: add more translit entries
Some of the newer symbols we're using are missing translit entries which
causes troubles when generating the locales with older encodings.
tr_TR: ₺ -> "TL"
uz_UZ: ʻ -> "'"
common:
֏ -> "AMD"
₪ -> "ILS"
₱ -> "PHP"
₸ -> "KZT"
₾ -> "GEL"
Adhemerval Zanella [Tue, 26 Apr 2016 20:40:25 +0000 (17:40 -0300)]
libio: Update internal fmemopen position after write (BZ #20005)
Current GLIBC fmemopen fails with a simple testcase:
char buffer[500] = "x";
FILE *stream;
stream = fmemopen(buffer, 500, "r+");
fwrite("fish",sizeof(char),5,stream);
printf("pos-1:%ld\n",ftell(stream));
fflush(stream);
printf("pos-2:%ld\n",ftell(stream));
It returns:
pos-1:5
pos-2:0
Where it should return:
pos-1:5
pos-2:5
This is due the internal write function does not correctly update the internal
object position state and then the seek operation returns a wrong value. This
patch fixes it.
It fixes both BZ #20005 and BZ #19230 (marked as duplicated). A new test is
added to check for such case.
Tested on x86_64 and i686.
* libio/fmemopen.c (fmemopen_write): Update internal position after
write.
* stdio-common/Makefile (tests): Add tst-fmemopen4.c.
* stdio-common/tst-fmemopen4.c: New file..
Joseph Myers [Tue, 26 Apr 2016 15:02:26 +0000 (15:02 +0000)]
Fix langinfo.h nl_langinfo_l namespace (bug 19996).
langinfo.h declares nl_langinfo_l if __USE_XOPEN2K. But this function
was new in the 2008 edition of POSIX. This patch fixes the condition
accordingly.
Tested for x86_64 and x86 (testsuite, and that installed shared
libraries are unchanged by the patch).
[BZ #19996]
* locale/langinfo.h (nl_langinfo_l): Declare if [__USE_XOPEN2K8],
not [__USE_XOPEN2K].
* conform/Makefile (test-xfail-XOPEN2K/langinfo.h/conform): Remove
variable.
Joseph Myers [Tue, 26 Apr 2016 13:56:04 +0000 (13:56 +0000)]
conformtest: Correct XOPEN2K stdarg.h expectations.
The conform/ test expectations for stdarg.h were wrongly missing an
expectation of va_copy for XOPEN2K (based on C99, so including that
macro). This patch fixes this.
Tested for x86_64 and x86.
* conform/data/stdarg.h-data [XOPEN2K] (va_copy): Require macro.
* conform/Makefile (test-xfail-XOPEN2K/stdarg.h/conform): Remove
variable.
Joseph Myers [Tue, 26 Apr 2016 09:55:47 +0000 (09:55 +0000)]
Define off_t in stdio.h for XOPEN2K.
The header conformance test for stdio.h for XOPEN2K fails because the
header does not define the off_t type, used in the expected
declarations for fseeko and ftello.
The absence of this type is not actually strictly a bug (hence no bug
report being filed in Bugzilla), since POSIX didn't require the type
to be declared in this header until the 2008 edition. However, the
glibc convention in such cases - where the type falls under the
general *_t POSIX reservation, and so it's OK to define it for all
POSIX versions - is to make the headers self-contained in this regard
even for the older POSIX versions not requiring the type to be defined
despite including other declarations depending on the type. Thus,
this patch adjusts the condition in the header and removes the XFAIL
(rather than adapting the expectation to work when the functions are
declared using __off_t without off_t being defined).
Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch).
* libio/stdio.h (off_t): Define if [__USE_XOPEN2K], not
[__USE_XOPEN2K8].
[__USE_LARGEFILE64] (off64_t): Likewise.
* conform/Makefile (test-xfail-XOPEN2K/stdio.h/conform): Remove
variable.
Joseph Myers [Mon, 25 Apr 2016 19:29:44 +0000 (19:29 +0000)]
Fix stdio.h cuserid namespace (bug 19989).
stdio.h declares cuserid if __USE_XOPEN. But this was removed in the
2001 edition of POSIX.
The #endif comment "Use X/Open, but not issue 6." reflects the correct
logic, but does not correspond to the #ifdef. The use of a correct
libc-hacker. The online archives for libc-hacker in August 2000 are
broken, but the messages can be found in the qmail archives in
/sourceware1/qmail/lists-sourceware/libc-hacker/archive/26 if you have
shell access to sourceware.
The issue showed up in August 2000 because of a warning about a
non-prototype definition in sysdeps/posix/cuserid.c when there was no
previous prototype declaration. Since we've now eliminated
non-prototype function definitions, that issue does not apply. The
other points from that discussion were about whether it should be
included in _GNU_SOURCE; whether _GNU_SOURCE should include
"everything"; whether deprecated interfaces such as this should be
excluded from it; and whether, even given exclusion of deprecated
interfaces, it should apply for deprecations in a version of POSIX
that at that time had not been released.
This patch follows the more conservative approach to a fix of keeping
the interface in _GNU_SOURCE. That matches how L_cuserid is handled.
I think there is a strong case for eliminating this interface from
_GNU_SOURCE (but this may not automatically be the case for every
interface removed in newer POSIX versions), but then L_cuserid should
also be removed from _GNU_SOURCE (in stdio-common/stdio_lim.h.in) at
the same time.
Tested for x86_64 and x86 (testsuite, and that installed shared
libraries are unchanged by the patch).
[BZ #19989]
* libio/stdio.h (cuserid): Do not declare if
[__USE_XOPEN2K && !__USE_GNU].
* conform/Makefile (test-xfail-XOPEN2K8/stdio.h/conform): Remove
variable.
Paul E. Murphy [Mon, 25 Apr 2016 14:11:02 +0000 (09:11 -0500)]
powerpc: Add optimized strcspn for P8
A few minor adjustments to the P8 strspn gives us
an almost equally optimized P8 strcspn.
Florian Weimer [Mon, 25 Apr 2016 12:10:26 +0000 (14:10 +0200)]
vfprintf: Fix memory with large width and precision [BZ #19931]
Free a previously allocated work buffer if it is not large enough.
Chung-Lin Tang [Mon, 25 Apr 2016 07:08:17 +0000 (00:08 -0700)]
Fix stdlib/tst-makecontext regression for Nios II
Samuel Thibault [Sun, 24 Apr 2016 17:24:36 +0000 (19:24 +0200)]
non-linux: Apply RFC3542 obsoletion of RFC2292 macros
(IPV6_RECVHOPLIMIT, IPV6_HOPLIMIT, IPV6_RECVHOPOPTS, IPV6_HOPOPTS,
IPV6_RTHDRDSTOPTS, IPV6_RECVRTHDR, IPV6_RTHDR, IPV6_RECVDSTOPTS,
IPV6_DSTOPTS, IPV6_RECVPATHMTU, IPV6_PATHMTU, IPV6_DONTFRAG):
New macros.
Samuel Thibault [Sun, 24 Apr 2016 15:22:57 +0000 (17:22 +0200)]
non-linux: Apply RFC3542 obsoletion of RFC2292 macros
RFC2292 macros were obsoleted by RFC3542, and should not be exposed
any more. Notably since IPV6_PKTINFO has been reintroduced with a
completely different API.
* bits/in.h (IPV6_PKTINFO): Rename to IPV6_2292PKTINFO.
(IPV6_HOPOPTS): Rename to IPV6_2292HOPOPTS.
(IPV6_DSTOPTS): Rename to IPV6_2292DSTOPTS.
(IPV6_RTHDR): Rename to IPV6_2292RTHDR.
(IPV6_PKTOPTIONS): Rename to IPV6_2292PKTOPTIONS.
(IPV6_HOPLIMIT): Rename to IPV6_2292HOPLIMIT.
(IPV6_RECVPKTINFO): New macro.
(IPV6_PKTINFO): New macro.
Mike Frysinger [Fri, 22 Apr 2016 21:11:09 +0000 (17:11 -0400)]
tst-fmon/tst-numeric: switch malloc to static stack space [BZ #19671]
The current test code doesn't check the return value of malloc.
This should rarely (if ever) cause a problem, but rather than add
some return value checks, just statically allocate the buffer on
the stack. This will never fail (or if it does, we've got much
bigger problems that don't matter to the test).
Mike Frysinger [Sat, 23 Apr 2016 18:14:55 +0000 (14:14 -0400)]
tst-langinfo: update yesexpr/noexpr baselines
H.J. Lu [Sat, 23 Apr 2016 13:05:01 +0000 (06:05 -0700)]
Reduce number of mmap calls from __libc_memalign in ld.so
__libc_memalign in ld.so allocates one page at a time and tries to
optimize consecutive __libc_memalign calls by hoping that the next
mmap is after the current memory allocation.
However, the kernel hands out mmap addresses in top-down order, so
this optimization in practice never happens, with the result that we
have more mmap calls and waste a bunch of space for each __libc_memalign.
This change makes __libc_memalign to mmap one page extra. Worst case,
the kernel never puts a backing page behind it, but best case it allows
__libc_memalign to operate much much better. For elf/tst-align --direct,
it reduces number of mmap calls from 12 to 9.
* elf/dl-minimal.c (__libc_memalign): Mmap one extra page.
Mike Frysinger [Mon, 18 Apr 2016 00:34:12 +0000 (20:34 -0400)]
localedata: CLDRv29: update LC_MESSAGES yes/no strings [BZ #15264] [BZ #16975]
The yes/no strings should be based on the dictionary words. That means
they are capitalized based on the dictionary rather than position in the
sentence (e.g. the first word).
bo_CN: nostr: changing མེན to མིན།
bo_CN: yesstr: changing ཨིན to ཡིན།
dz_BT: nostr: changing མེན to མེན་
dz_BT: yesstr: changing ཨིན to ཨིན་
en_CA: yesstr: changing Yes to yes
en_CA: nostr: changing No to no
en_US: yesstr: changing Yes to yes
en_US: nostr: changing No to no
es_ES: nostr: changing No to no
es_ES: yesstr: changing Si to sí
fi_FI: nostr: changing Ei to ei
fi_FI: yesstr: changing Kyllä to kyllä
ig_NG: yesstr: changing Ee to Eye
ko_KR: nostr: changing 아니오 to 아니요
ky_KG: nostr: changing Жок to жок
ky_KG: yesstr: changing Ооба to ооба
ms_MY: nostr: changing Tidak to tidak
ms_MY: yesstr: changing Ya to ya
te_IN: nostr: changing కాదు to వద్దు
te_IN: yesstr: changing అవను to అవును
ur_PK: nostr: changing نهيں to نہیں
ur_PK: yesstr: changing بلكل to ہاں
uz_UZ: nostr: changing Yo'q to yo‘q
uz_UZ: yesstr: changing Ha to ha
uz_UZ@cyrillic: nostr: changing Йўқ to йўқ
uz_UZ@cyrillic: yesstr: changing Ҳа to ҳа
wae_CH: nostr: changing Nei to nei
wae_CH: yesstr: changing Ja to ja
yo_NG: nostr: changing Bẹ́ẹ̀ kọ́ to Bẹ́ẹ̀kọ́
yo_NG: yesstr: changing Bẹ́ẹ̀ ni to Bẹ́ẹ̀ni
Some of the translations were just wrong.
el_GR: nostr: changing no to όχι
el_GR: yesstr: changing yes to ναι
km_KH: nostr: changing no:NO:n:N to ទេ៖ n
km_KH: yesstr: changing yes:YES:y:Y to បាទ/ចាស៖ y
ug_CN: nostr: changing No to ياق
ug_CN: yesstr: changing Yes to ھەئە
Add missing translations for a number of locales:
af_ZA: nostr: setting to nee
af_ZA: yesstr: setting to ja
am_ET: nostr: setting to አይ
am_ET: yesstr: setting to አዎን
ast_ES: nostr: setting to non
ast_ES: yesstr: setting to sí
be_BY: nostr: setting to не
be_BY: yesstr: setting to так
bem_ZM: nostr: setting to Awe
bem_ZM: yesstr: setting to Ee
bg_BG: nostr: setting to не
bg_BG: yesstr: setting to да
brx_IN: nostr: setting to नहीं
brx_IN: yesstr: setting to हाँ
bs_BA: nostr: setting to ne
bs_BA: yesstr: setting to da
ca_ES: nostr: setting to no
ca_ES: yesstr: setting to sí
da_DK: nostr: setting to nej
da_DK: yesstr: setting to ja
de_DE: nostr: setting to nein
de_DE: yesstr: setting to ja
en_DK: nostr: setting to yes
en_DK: yesstr: setting to no
et_EE: nostr: setting to ei
et_EE: yesstr: setting to jah
eu_ES: nostr: setting to ez
eu_ES: yesstr: setting to bai
fa_IR: nostr: setting to نه
fa_IR: yesstr: setting to بله
ff_SN: nostr: setting to Alaa
ff_SN: yesstr: setting to Eey
fo_FO: nostr: setting to nei
fo_FO: yesstr: setting to já
fr_BE: nostr: setting to non
fr_BE: yesstr: setting to oui
fr_CH: nostr: setting to non
fr_CH: yesstr: setting to oui
fr_FR: nostr: setting to non
fr_FR: yesstr: setting to oui
fr_LU: nostr: setting to non
fr_LU: yesstr: setting to oui
fur_IT: nostr: setting to no
fur_IT: yesstr: setting to sì
fy_DE: nostr: setting to nee
fy_DE: yesstr: setting to ja
ga_IE: nostr: setting to níl
ga_IE: yesstr: setting to tá
gd_GB: nostr: setting to chan eil
gd_GB: yesstr: setting to tha
gl_ES: nostr: setting to non
gl_ES: yesstr: setting to si
gu_IN: nostr: setting to નહીં
gu_IN: yesstr: setting to હા
he_IL: nostr: setting to לא
he_IL: yesstr: setting to כן
hi_IN: nostr: setting to नहीं
hi_IN: yesstr: setting to हाँ
hr_HR: nostr: setting to ne
hr_HR: yesstr: setting to da
hu_HU: nostr: setting to nem
hu_HU: yesstr: setting to igen
id_ID: nostr: setting to tidak
id_ID: yesstr: setting to ya
is_IS: nostr: setting to nei
is_IS: yesstr: setting to já
it_CH: nostr: setting to no
it_CH: yesstr: setting to sì
it_IT: nostr: setting to no
it_IT: yesstr: setting to sì
ka_GE: nostr: setting to არა
ka_GE: yesstr: setting to კი
kk_KZ: nostr: setting to жоқ
kk_KZ: yesstr: setting to иә
kl_GL: nostr: setting to naagga
kl_GL: yesstr: setting to aap
kn_IN: nostr: setting to ಇಲ್ಲ
kn_IN: yesstr: setting to ಹೌದು
ko_KR: yesstr: setting to 예
lb_LU: nostr: setting to nee
lb_LU: yesstr: setting to jo
lg_UG: nostr: setting to Nedda
lg_UG: yesstr: setting to Ye
lt_LT: nostr: setting to ne
lt_LT: yesstr: setting to taip
lv_LV: nostr: setting to nē
lv_LV: yesstr: setting to jā
mg_MG: nostr: setting to Tsia
mg_MG: yesstr: setting to Eny
mn_MN: nostr: setting to үгүй
mn_MN: yesstr: setting to тийм
mr_IN: nostr: setting to नाहीःना
mr_IN: yesstr: setting to होयःहो
mt_MT: nostr: setting to le
mt_MT: yesstr: setting to iva
nb_NO: nostr: setting to nei
nb_NO: yesstr: setting to ja
ne_NP: nostr: setting to होइन
ne_NP: yesstr: setting to हो
nl_NL: nostr: setting to nee
nl_NL: yesstr: setting to ja
nn_NO: nostr: setting to nei
nn_NO: yesstr: setting to ja
or_IN: nostr: setting to ନା
or_IN: yesstr: setting to ହଁ
os_RU: nostr: setting to нӕйы
os_RU: yesstr: setting to уойы
pa_IN: nostr: setting to ਨਹੀਂ
pa_IN: yesstr: setting to ਹਾਂ
pl_PL: nostr: setting to nie
pl_PL: yesstr: setting to tak
pt_BR: nostr: setting to não
pt_BR: yesstr: setting to sim
pt_PT: nostr: setting to não
pt_PT: yesstr: setting to sim
ro_RO: nostr: setting to nu
ro_RO: yesstr: setting to da
ru_RU: nostr: setting to нет
ru_RU: yesstr: setting to да
ru_UA: nostr: setting to нет
ru_UA: yesstr: setting to да
se_NO: nostr: setting to ii
se_NO: yesstr: setting to jo
sl_SI: nostr: setting to ne
sl_SI: yesstr: setting to da
so_DJ: nostr: setting to maya
so_DJ: yesstr: setting to haa
so_SO: nostr: setting to maya
so_SO: yesstr: setting to haa
sq_AL: nostr: setting to jo
sq_AL: yesstr: setting to po
sr_RS@latin: nostr: setting to ne
sr_RS@latin: yesstr: setting to da
sr_RS: nostr: setting to не
sr_RS: yesstr: setting to да
sv_SE: nostr: setting to nej
sv_SE: yesstr: setting to ja
sw_KE: nostr: setting to Hapana
sw_KE: yesstr: setting to Ndiyo
yue_HK: nostr: setting to 唔係
yue_HK: yesstr: setting to 係
zu_ZA: nostr: setting to cha
zu_ZA: yesstr: setting to yebo
Mike Frysinger [Tue, 19 Apr 2016 04:00:58 +0000 (00:00 -0400)]
localedata: LC_MESSAGES.{yes,no}expr: standardize yY/nN [BZ #15262]
The vast majority of languages include yY/nN in their yes/no regexes.
Standardize the few that were missing them.
ms_MY: noexpr: add nN
nan_TW@latin: yesexpr: add yY
nan_TW@latin: noexpr: add nN
se_NO: noexpr: add nN
This also highlighted a few that were incorrectly using yY/nN because
they clashed with their localized messages:
uz_UZ: yesexpr: change ^[+1YyHh] to ^[+1ҲҳHh]
uz_UZ: noexpr: change ^[-0JjNn] to ^[-0ЙйNnYyJj]
uz_UZ@cyrillic: yesexpr: change ^[+1ҲҳYy] to ^[+1ҲҳHh]
uz_UZ@cyrillic: noexpr: change ^[-0ЙйNn] to [-0ЙйNnYyJj]
yo_NG: move nN (short for Bẹ́ẹ̀ni) from noexpr to yesexpr
Mike Frysinger [Tue, 19 Apr 2016 03:10:58 +0000 (23:10 -0400)]
localedata: LC_MESSAGES.{yes,no}expr: add +1/-0 to all regexes [BZ #15263]
A handful of regexes were allowing +1 for yesexpr and -0 for noexpr,
and it's the i18n definition. Standardize all locales by allowing
these language-independent values in them.
Example change for en_US goes from ^[yY] to ^[+1yY], and from ^[nN]
to ^[-0nN].
Mike Frysinger [Mon, 18 Apr 2016 00:34:12 +0000 (20:34 -0400)]
localedata: standard LC_MESSAGES string regexes a bit
A few locales add .* to the end of regexes, but this isn't necessary.
Drop it to simplify things. e.g. It goes from ^[yY].* to ^[yY]. Did
it for all these locales for yesexpr & noexpr:
aa_ET ak_GH am_ET an_ES ar_EG as_IN ast_ES ayc_PE az_AZ be_BY
be_BY@latin bem_ZM ber_DZ ber_MA bg_BG bhb_IN bo_IN br_FR ca_ES
ce_RU csb_PL cs_CZ cv_RU cy_GB da_DK de_DE dv_MV dz_BT el_GR en_CA
en_DK en_US es_ES et_EE eu_ES fa_IR ff_SN fi_FI fo_FO fr_BE fr_CH
fr_FR fr_LU fur_IT fy_DE ga_IE gd_GB gl_ES gv_GB ha_NG he_IL hi_IN
hr_HR hsb_DE ht_HT hu_HU ia_FR id_ID ig_NG is_IS it_CH it_IT ka_GE
kk_KZ kl_GL kn_IN ks_IN ks_IN@devanagari ku_TR kw_GB ky_KG li_NL
lij_IT lt_LT lv_LV mg_MG mhr_RU mi_NZ mk_MK mn_MN my_MM nan_TW@latin
nb_NO nds_DE nds_NL ne_NP nhn_MX niu_NU niu_NZ nl_NL nn_NO oc_FR
or_IN os_RU pa_IN pa_PK pap_AW pap_CW pl_PL ps_AF pt_BR pt_PT quz_PE
raj_IN ro_RO ru_RU ru_UA sa_IN sc_IT sd_IN@devanagari se_NO sk_SK
sl_SI so_DJ so_SO sq_AL sv_SE sw_KE szl_PL tcy_IN te_IN tg_TJ the_NP
tk_TM ti_ER ti_ET tt_RU tt_RU@iqtelif ug_CN unm_US ur_IN ur_PK uz_UZ
uz_UZ@cyrillic vi_VN wa_BE wae_CH wo_SN yi_US yo_NG
A few locales were missing ^ anchors, so add them. e.g. It goes from
[oOyY].* to ^[oOyY].
fil_PH ik_CA iu_CA
Some locales are defining a subset of values when there are fuller ones
available (according to the language). Switch them to copy instead.
aa_DJ: copy aa_ET
en_AU: copy en_US
en_GB: copy en_US
en_HK: copy en_US
en_IN: copy en_US
en_NG: copy en_US
en_NZ: copy en_US
en_PH: copy en_US
en_SG: copy en_US
en_ZA: copy en_US
es_US: copy es_ES
li_BE: copy nl_BE
Timur Birsh [Wed, 20 Apr 2016 18:39:34 +0000 (14:39 -0400)]
localedata: kk_KZ: various updates [BZ #15578]
Tweak some of the collation settings for a few characters.
Add/update various fields:
LC_MESSAGES
yesstr: set to иә
nostr: set to жоқ
LC_MONETARY
mon_decimal_point: change . to ,
mon_thousands_sep: change to a non-breaking space
p_sep_by_space: change 1 to 2
set int_{p,n}_* fields
LC_NUMERIC
thousands_sep: change , to a non-breaking space
LC_TIME
abday: change saturday from Сн to Сб
LC_TELEPHONE
tel_dom_fmt: set to (%A) %l
int_select: set to 8~10
LC_ADDRESS:
country_post: set to KAZ
country_ab2: set to KZ
country_ab3: set to KAZ
country_isbn: set to 978-601
lang_name: set to қазақ тілі
Mike Frysinger [Sat, 16 Apr 2016 03:02:37 +0000 (23:02 -0400)]
localedef: change week_1stweek default to 7
The ISO 14652/30112 specs say the defaults for the week keyword are:
7,
19971130, 7
The localedef has been using those defaults for the first two, but
0 for the last one.
Mike Frysinger [Sat, 16 Apr 2016 05:44:59 +0000 (01:44 -0400)]
localedata: CLDRv29: update LC_TIME week/first_week,workday fields
I've spot checked a number of these, including some that were def
wrong (like ff_SN). It also fixes all open week-related bugs.
Since ff_SN is the only one that changes its base date, I also made
sure that its ordering of day translations were correct. Looks like
another case Petr brought up where the week field was not actually
checked against the day arrays.
I also took the opportunity to drop first_weekday/first_workday when
the value aligned with the defaults (1 & 2 respectively). This didn't
impact too many locales In practice because the majority omitted them
already.
A few locales were defining some values incorrectly for their region:
ak_GH: week: changing [7,
19971130, 7] to [7,
19971130, 1]
ak_GH: first_weekday: changing 1 to 2
ayc_PE: week: changing [7,
19971130, 7] to [7,
19971130, 1]
bem_ZM: week: changing [7,
19971130, 4] to [7,
19971130, 1]
bem_ZM: first_weekday: changing 1 to 2
en_IE: first_weekday: changing 2 to 1
en_US: week: changing [7,
19971130, 7] to [7,
19971130, 1]
es_CO: first_weekday: changing 2 to 1
es_ES: week: changing [7,
19971130, 5] to [7,
19971130, 4]
ff_SN: week: changing [7,
19971129, 1] to [7,
19971130, 1]
ff_SN: first_weekday: changing 1 to 2
ga_IE: first_weekday: changing 2 to 1
ht_HT: week: changing [7,
19971130, 7] to [7,
19971130, 1]
ht_HT: first_weekday: changing 1 to 2
mk_MK: week: changing [7,
19971130, 4] to [7,
19971130, 1]
mt_MT: first_weekday: changing 2 to 1
quz_PE: week: changing [7,
19971130, 7] to [7,
19971130, 1]
sr_ME: week: changing [7,
19971130, 4] to [7,
19971130, 1]
sr_RS: week: changing [7,
19971130, 4] to [7,
19971130, 1]
sr_RS@latin: week: changing [7,
19971130, 4] to [7,
19971130, 1]
sw_KE: week: changing [7,
19971130, 4] to [7,
19971130, 1]
sw_KE: first_weekday: changing 2 to 1
uk_UA: week: changing [7,
19971130, 4] to [7,
19971130, 1]
unm_US: week: changing [7,
19971130, 4] to [7,
19971130, 1]
Some locales were copying locales that had the wrong week settings, so
that content had to be duplicated so the values could be adjusted:
el_CY: week: setting to [7,
19971130, 1]
en_AG: week: setting to [7,
19971130, 1]
en_AG: first_weekday: changing 2 to 1
en_ZM: week: setting to [7,
19971130, 1]
es_CU: week: setting to [7,
19971130, 1]
nl_AW: week: setting to [7,
19971130, 1]
sw_TZ: first_weekday: setting to 2
ta_LK: first_weekday: setting to 2
The majority of locales were omitting the week field thus getting the
default [7,
19971130, 0 (localedef) / 7 (ISO standard)]. Unfortunately,
neither of those are used by any locales, so we end up having to define
the field just to se the ndays field. In practice, this rarely matters
due to it usage, and the first two fields match the defaults.
aa_DJ: setting to [7,
19971130, 1]
aa_ER: setting to [7,
19971130, 1]
aa_ER@saaho: setting to [7,
19971130, 1]
aa_ET: setting to [7,
19971130, 1]
af_ZA: setting to [7,
19971130, 1]
am_ET: setting to [7,
19971130, 1]
an_ES: setting to [7,
19971130, 4]
anp_IN: setting to [7,
19971130, 1]
ar_AE: setting to [7,
19971130, 1]
ar_BH: setting to [7,
19971130, 1]
ar_DZ: setting to [7,
19971130, 1]
ar_EG: setting to [7,
19971130, 1]
ar_IN: setting to [7,
19971130, 1]
ar_IQ: setting to [7,
19971130, 1]
ar_JO: setting to [7,
19971130, 1]
ar_KW: setting to [7,
19971130, 1]
ar_LB: setting to [7,
19971130, 1]
ar_LY: setting to [7,
19971130, 1]
ar_MA: setting to [7,
19971130, 1]
ar_OM: setting to [7,
19971130, 1]
ar_QA: setting to [7,
19971130, 1]
ar_SA: setting to [7,
19971130, 1]
ar_SD: setting to [7,
19971130, 1]
ar_SS: setting to [7,
19971130, 1]
ar_SY: setting to [7,
19971130, 1]
ar_TN: setting to [7,
19971130, 1]
ar_YE: setting to [7,
19971130, 1]
as_IN: setting to [7,
19971130, 1]
ast_ES: setting to [7,
19971130, 4]
az_AZ: setting to [7,
19971130, 1]
be_BY: setting to [7,
19971130, 1]
be_BY@latin: setting to [7,
19971130, 1]
ber_DZ: setting to [7,
19971130, 1]
ber_MA: setting to [7,
19971130, 1]
bg_BG: setting to [7,
19971130, 4]
bhb_IN: setting to [7,
19971130, 1]
bho_IN: setting to [7,
19971130, 1]
bn_BD: setting to [7,
19971130, 1]
bn_IN: setting to [7,
19971130, 1]
bo_CN: setting to [7,
19971130, 1]
br_FR: setting to [7,
19971130, 4]
brx_IN: setting to [7,
19971130, 1]
bs_BA: setting to [7,
19971130, 1]
byn_ER: setting to [7,
19971130, 1]
ca_AD: setting to [7,
19971130, 4]
ca_ES: setting to [7,
19971130, 4]
ca_ES@euro: setting to [7,
19971130, 4]
ca_FR: setting to [7,
19971130, 4]
ca_IT: setting to [7,
19971130, 4]
ce_RU: setting to [7,
19971130, 1]
cmn_TW: setting to [7,
19971130, 1]
crh_UA: setting to [7,
19971130, 1]
cv_RU: setting to [7,
19971130, 1]
cy_GB: setting to [7,
19971130, 4]
de_BE: setting to [7,
19971130, 4]
de_LU: setting to [7,
19971130, 4]
doi_IN: setting to [7,
19971130, 1]
dv_MV: setting to [7,
19971130, 1]
dz_BT: setting to [7,
19971130, 1]
el_GR: setting to [7,
19971130, 4]
el_GR@euro: setting to [7,
19971130, 4]
en_AU: setting to [7,
19971130, 1]
en_BW: setting to [7,
19971130, 1]
en_CA: setting to [7,
19971130, 1]
en_HK: setting to [7,
19971130, 1]
en_IE: setting to [7,
19971130, 4]
en_IN: setting to [7,
19971130, 1]
en_NG: setting to [7,
19971130, 1]
en_NZ: setting to [7,
19971130, 1]
en_PH: setting to [7,
19971130, 1]
en_SG: setting to [7,
19971130, 1]
en_ZA: setting to [7,
19971130, 1]
en_ZW: setting to [7,
19971130, 1]
es_AR: setting to [7,
19971130, 1]
es_BO: setting to [7,
19971130, 1]
es_CL: setting to [7,
19971130, 1]
es_CO: setting to [7,
19971130, 1]
es_CR: setting to [7,
19971130, 1]
es_DO: setting to [7,
19971130, 1]
es_EC: setting to [7,
19971130, 1]
es_ES@euro: setting to [7,
19971130, 4]
es_GT: setting to [7,
19971130, 1]
es_HN: setting to [7,
19971130, 1]
es_MX: setting to [7,
19971130, 1]
es_NI: setting to [7,
19971130, 1]
es_PA: setting to [7,
19971130, 1]
es_PE: setting to [7,
19971130, 1]
es_PR: setting to [7,
19971130, 1]
es_PY: setting to [7,
19971130, 1]
es_SV: setting to [7,
19971130, 1]
es_US: setting to [7,
19971130, 1]
es_UY: setting to [7,
19971130, 1]
es_VE: setting to [7,
19971130, 1]
eu_ES: setting to [7,
19971130, 4]
fa_IR: setting to [7,
19971130, 1]
fil_PH: setting to [7,
19971130, 1]
fo_FO: setting to [7,
19971130, 4]
fr_CA: setting to [7,
19971130, 1]
fr_CH: setting to [7,
19971130, 4]
fr_LU: setting to [7,
19971130, 4]
fy_NL: setting to [7,
19971130, 4]
ga_IE: setting to [7,
19971130, 4]
gd_GB: setting to [7,
19971130, 4]
gez_ER: setting to [7,
19971130, 1]
gez_ET: setting to [7,
19971130, 1]
gl_ES: setting to [7,
19971130, 4]
gu_IN: setting to [7,
19971130, 1]
gv_GB: setting to [7,
19971130, 4]
hak_TW: setting to [7,
19971130, 1]
ha_NG: setting to [7,
19971130, 1]
he_IL: setting to [7,
19971130, 1]
hi_IN: setting to [7,
19971130, 1]
hne_IN: setting to [7,
19971130, 1]
hr_HR: setting to [7,
19971130, 1]
hy_AM: setting to [7,
19971130, 1]
id_ID: setting to [7,
19971130, 1]
ig_NG: setting to [7,
19971130, 1]
ik_CA: setting to [7,
19971130, 1]
is_IS: setting to [7,
19971130, 4]
it_CH: setting to [7,
19971130, 4]
it_IT: setting to [7,
19971130, 4]
it_IT@euro: setting to [7,
19971130, 4]
iu_CA: setting to [7,
19971130, 1]
ja_JP: setting to [7,
19971130, 1]
ka_GE: setting to [7,
19971130, 1]
kk_KZ: setting to [7,
19971130, 1]
kl_GL: setting to [7,
19971130, 1]
km_KH: setting to [7,
19971130, 1]
kn_IN: setting to [7,
19971130, 1]
kok_IN: setting to [7,
19971130, 1]
ko_KR: setting to [7,
19971130, 1]
ks_IN: setting to [7,
19971130, 1]
ks_IN@devanagari: setting to [7,
19971130, 1]
ku_TR: setting to [7,
19971130, 1]
kw_GB: setting to [7,
19971130, 4]
ky_KG: setting to [7,
19971130, 1]
lg_UG: setting to [7,
19971130, 1]
lij_IT: setting to [7,
19971130, 4]
lo_LA: setting to [7,
19971130, 1]
lt_LT: setting to [7,
19971130, 4]
lv_LV: setting to [7,
19971130, 1]
lzh_TW: setting to [7,
19971130, 1]
mag_IN: setting to [7,
19971130, 1]
mai_IN: setting to [7,
19971130, 1]
mg_MG: setting to [7,
19971130, 1]
mhr_RU: setting to [7,
19971130, 1]
mi_NZ: setting to [7,
19971130, 1]
ml_IN: setting to [7,
19971130, 1]
mni_IN: setting to [7,
19971130, 1]
mn_MN: setting to [7,
19971130, 1]
mr_IN: setting to [7,
19971130, 1]
ms_MY: setting to [7,
19971130, 1]
mt_MT: setting to [7,
19971130, 1]
my_MM: setting to [7,
19971130, 1]
nan_TW: setting to [7,
19971130, 1]
nan_TW@latin: setting to [7,
19971130, 1]
ne_NP: setting to [7,
19971130, 1]
nhn_MX: setting to [7,
19971130, 1]
niu_NU: setting to [7,
19971130, 1]
niu_NZ: setting to [7,
19971130, 1]
nl_BE: setting to [7,
19971130, 4]
nl_BE@euro: setting to [7,
19971130, 4]
nr_ZA: setting to [7,
19971130, 1]
nso_ZA: setting to [7,
19971130, 1]
oc_FR: setting to [7,
19971130, 4]
om_ET: setting to [7,
19971130, 1]
om_KE: setting to [7,
19971130, 1]
or_IN: setting to [7,
19971130, 1]
os_RU: setting to [7,
19971130, 1]
pa_IN: setting to [7,
19971130, 1]
pap_AW: setting to [7,
19971130, 1]
pap_CW: setting to [7,
19971130, 1]
pa_PK: setting to [7,
19971130, 1]
ps_AF: setting to [7,
19971130, 1]
pt_BR: setting to [7,
19971130, 1]
pt_PT: setting to [7,
19971130, 4]
pt_PT@euro: setting to [7,
19971130, 4]
raj_IN: setting to [7,
19971130, 1]
ro_RO: setting to [7,
19971130, 1]
ru_RU: setting to [7,
19971130, 1]
ru_UA: setting to [7,
19971130, 1]
rw_RW: setting to [7,
19971130, 1]
sa_IN: setting to [7,
19971130, 1]
sat_IN: setting to [7,
19971130, 1]
sd_IN: setting to [7,
19971130, 1]
sd_IN@devanagari: setting to [7,
19971130, 1]
se_NO: setting to [7,
19971130, 4]
shs_CA: setting to [7,
19971130, 1]
sid_ET: setting to [7,
19971130, 1]
si_LK: setting to [7,
19971130, 1]
sl_SI: setting to [7,
19971130, 1]
so_DJ: setting to [7,
19971130, 1]
so_ET: setting to [7,
19971130, 1]
so_KE: setting to [7,
19971130, 1]
so_SO: setting to [7,
19971130, 1]
sq_AL: setting to [7,
19971130, 1]
ss_ZA: setting to [7,
19971130, 1]
st_ZA: setting to [7,
19971130, 1]
sv_FI: setting to [7,
19971130, 4]
sv_SE: setting to [7,
19971130, 4]
ta_IN: setting to [7,
19971130, 1]
tcy_IN: setting to [7,
19971130, 1]
te_IN: setting to [7,
19971130, 1]
tg_TJ: setting to [7,
19971130, 1]
the_NP: setting to [7,
19971130, 1]
th_TH: setting to [7,
19971130, 1]
ti_ER: setting to [7,
19971130, 1]
ti_ET: setting to [7,
19971130, 1]
tig_ER: setting to [7,
19971130, 1]
tk_TM: setting to [7,
19971130, 1]
tl_PH: setting to [7,
19971130, 1]
tn_ZA: setting to [7,
19971130, 1]
tr_CY: setting to [7,
19971130, 1]
tr_TR: setting to [7,
19971130, 1]
ts_ZA: setting to [7,
19971130, 1]
tt_RU: setting to [7,
19971130, 1]
tt_RU@iqtelif: setting to [7,
19971130, 1]
ug_CN: setting to [7,
19971130, 1]
ur_IN: setting to [7,
19971130, 1]
ur_PK: setting to [7,
19971130, 1]
uz_UZ: setting to [7,
19971130, 1]
uz_UZ@cyrillic: setting to [7,
19971130, 1]
ve_ZA: setting to [7,
19971130, 1]
vi_VN: setting to [7,
19971130, 1]
wa_BE: setting to [7,
19971130, 4]
wal_ET: setting to [7,
19971130, 1]
wo_SN: setting to [7,
19971130, 1]
xh_ZA: setting to [7,
19971130, 1]
yi_US: setting to [7,
19971130, 1]
yo_NG: setting to [7,
19971130, 1]
yue_HK: setting to [7,
19971130, 1]
zh_CN: setting to [7,
19971130, 1]
zh_HK: setting to [7,
19971130, 1]
zh_SG: setting to [7,
19971130, 1]
zh_TW: setting to [7,
19971130, 1]
zu_ZA: setting to [7,
19971130, 1]
Finally, set first_weekday in all the locales that were omitting it
and wanted something other than the default of 1.
aa_DJ: setting to 7
aa_ER: setting to 2
aa_ER@saaho: setting to 2
ar_AE: setting to 7
ar_BH: setting to 7
ar_DZ: setting to 7
ar_EG: setting to 7
ar_IQ: setting to 7
ar_JO: setting to 7
ar_KW: setting to 7
ar_LB: setting to 2
ar_LY: setting to 7
ar_MA: setting to 7
ar_OM: setting to 7
ar_QA: setting to 7
ar_SD: setting to 7
ar_SS: setting to 2
ar_SY: setting to 7
az_AZ: setting to 2
be_BY: setting to 2
be_BY@latin: setting to 2
ber_DZ: setting to 7
ber_MA: setting to 7
bn_BD: setting to 6
bs_BA: setting to 2
byn_ER: setting to 2
dv_MV: setting to 6
en_NG: setting to 2
es_BO: setting to 2
es_CL: setting to 2
es_EC: setting to 2
es_UY: setting to 2
fo_FO: setting to 2
fr_CH: setting to 2
gd_GB: setting to 2
gez_ER: setting to 2
ha_NG: setting to 2
hr_HR: setting to 2
hy_AM: setting to 2
ig_NG: setting to 2
is_IS: setting to 2
it_CH: setting to 2
ka_GE: setting to 2
kk_KZ: setting to 2
kl_GL: setting to 2
ku_TR: setting to 2
ky_KG: setting to 2
lg_UG: setting to 2
mg_MG: setting to 2
mn_MN: setting to 2
ms_MY: setting to 2
niu_NU: setting to 2
pap_AW: setting to 2
pap_CW: setting to 2
pt_PT: setting to 2
pt_PT@euro: setting to 2
rw_RW: setting to 2
se_NO: setting to 2
si_LK: setting to 2
so_DJ: setting to 7
so_SO: setting to 2
sq_AL: setting to 2
tg_TJ: setting to 2
ti_ER: setting to 2
tig_ER: setting to 2
tk_TM: setting to 2
tt_RU: setting to 2
tt_RU@iqtelif: setting to 2
uz_UZ: setting to 2
uz_UZ@cyrillic: setting to 2
vi_VN: setting to 2
wo_SN: setting to 2
yo_NG: setting to 2
Rajalakshmi Srinivasaraghavan [Wed, 20 Apr 2016 17:40:42 +0000 (23:10 +0530)]
powerpc: strcasestr optmization for power8
This patch optimizes strcasestr function for power >= 8 systems. The average
improvement of this optimization is ~40% and compares 16 bytes at a time
using vector instructions. This patch is tested on powerpc64 and powerpc64le.
Guy Rutenberg [Tue, 19 Apr 2016 05:50:48 +0000 (01:50 -0400)]
localedata: en_IL: new English locale [BZ #19963]
Claude Paroz [Mon, 18 Apr 2016 05:14:36 +0000 (01:14 -0400)]
localedata: ln_CD: new locale [BZ #12676]
Siddhesh Poyarekar [Wed, 20 Apr 2016 07:49:01 +0000 (13:19 +0530)]
benchtests: Support for cross-building benchmarks
This patch adds full support for cross-building benchmarks. Some
benchmarks like those that need locales to be generated cannot be
built and are hence skipped for cross builds.
Tested by cross building for aarch64 on x86_64 and then running the
generated benchmark on aarch64.
* benchtests/Makefile (wcsmbs-benchset): Include only for
native builds and runs.
(LOCALES): Likewise.
(bench-build): Build timing-type here instead of the bench
target. Generate locale only for native builds.
* benchtests/README: Add note for cross-building.
Siddhesh Poyarekar [Wed, 20 Apr 2016 05:49:49 +0000 (11:19 +0530)]
benchtests: Clean up extra-objs
The bench-clean target would leave behind json-lib.o. Fix up to clean
up all extra-objs registered in benchtests.
Siddhesh Poyarekar [Wed, 20 Apr 2016 06:48:59 +0000 (12:18 +0530)]
Fix up ChangeLog
Looks like I have forgotten what a ChangeLog entry looks like :/
Siddhesh Poyarekar [Wed, 20 Apr 2016 05:28:20 +0000 (10:58 +0530)]
benchtests: Update README to include instructions for bench-build target
Siddhesh Poyarekar [Wed, 20 Apr 2016 04:53:53 +0000 (10:23 +0530)]
Fix up ChangeLog formatting
Siddhesh Poyarekar [Wed, 20 Apr 2016 04:53:28 +0000 (10:23 +0530)]
New make target to only build benchmark binaries
For situations where we are cross-building or where we want to avoid
building on the target system, we want a way to only build benchmarks
and then copy them over to the target system to run them. I have also
added a simple enhancement for the 'bench' target where all benchmark
binaries are built and then the benchmarks executed.
Tested on arm.
Makefile.in (bench-build): New target.
Rules (PHONY): Add bench-build target.
benchtests/Makefile (bench): Depend on bench-build.
(bench-build): New target.
Samuel Thibault [Tue, 19 Apr 2016 21:27:27 +0000 (23:27 +0200)]
Fix gprof timing
* sysdeps/mach/hurd/profil.c (__profile_frequency): Return tick
frequency instead of tick length in us.
Samuel Thibault [Mon, 18 Apr 2016 22:54:24 +0000 (00:54 +0200)]
hurd: fix profiling short-living processes
* sysdeps/mach/hurd/profil.c (update_waiter): Initialize
profil_reply_port.
(profile_waiter): Do not initialize profil_reply_port.
Wilco Dijkstra [Mon, 18 Apr 2016 14:26:11 +0000 (15:26 +0100)]
Move mempcpy, strcpy and stpcpy inlines to string/string-inlines.c as compatibility
symbols as they are no longer used. Fix compat symbols for __strpbrk inlines.
[BZ #18712]
* string/string-inlines.c (__STRING2_COPY_TYPE): Add, moved from string2.h.
(__old_mempcpy_small): Likewise.
(__old_strcpy_small): Likewise.
(__old_stpcpy_small): Likewise.
(__old_strpbrk_c2): Fix compat symbol name.
(__old_strpbrk_c3): Likewise.
* string/bits/string2.h (__STRING2_COPY_TYPE): Remove.
(__mempcpy_small): Remove.
(__strcpy_small): Remove.
(__stpcpy_small): Remove.
Robin van der Vliet [Sat, 16 Apr 2016 07:47:26 +0000 (03:47 -0400)]
locale: iso-639: add Talossan language [BZ #19400]
Mike Frysinger [Wed, 13 Apr 2016 03:45:46 +0000 (23:45 -0400)]
localedata: fix LC_TELEPHONE in a few locales
A bunch of locales were copying the wrong source locale -- looks like they
were basically TODOs from the original imports. This lead to bad values
for int_prefix for them.
Mike Frysinger [Fri, 15 Apr 2016 18:52:19 +0000 (14:52 -0400)]
localedef: allow %l/%n in postal_fmt [BZ #16983]
ISO 14652/30112 includes %l & %n now, so permit them in our files.
Mike Frysinger [Wed, 13 Apr 2016 04:14:30 +0000 (00:14 -0400)]
locale: ld-telephone: update to ISO-30112 2014
The newer version of the standard adds %C %e %t to tel_int_fmt and
tel_dom_fmt. Make sure localedef accepts them.
Also change the default tel_int_fmt to include %t per the standard.
Mike Frysinger [Wed, 13 Apr 2016 16:36:42 +0000 (12:36 -0400)]
localedata: LC_IDENTIFICATION: delete uncommon fields
Very few locales set audience/application/abbreviation, and
even the ones that do, set them largely to default/useless
values. Drop them from the few locales until we decide we
want to set these everywhere (to something useful).
Carlos Eduardo Seo [Wed, 11 Nov 2015 19:31:28 +0000 (17:31 -0200)]
powerpc: Optimization for strlen for POWER8.
This implementation takes advantage of vectorization to improve performance of
the loop over the current strlen implementation for POWER7.
Mike Frysinger [Tue, 9 Feb 2016 10:32:07 +0000 (05:32 -0500)]
localedata: CLDRv29: update LC_MONETARY int_curr_symbol & currency_symbol
This updates a few locales based on CLDR v29 data. I've verified most by
hand while the rest I know are correct.
For int_curr_symbol, it should be 3 characters followed by a space:
ar_SS: changing SDG to SSP
bem_ZM: changing ZMK to ZMW
dz_BT: changing BTN to BTN # Just changing " " to "<U0020>".
en_ZW: changing ZWD to USD
es_SV: changing SVC to USD
lv_LV: changing LVL to EUR
ne_NP: changing INR to NPR
pap_AW: changing ANG to AWG
the_NP: changing INR to NPR
Some of these require updates iso-4217.def.
For currency_symbol, it should be the standard/localized symbol name:
aa_DJ: changing $ to Fdj
ar_SA: changing ريال to ر.س
ar_SS: changing ج.س. to £
az_AZ: changing man. to ₼
bg_BG: changing лв to лв.
ce_RU: changing руб to ₽
crh_UA: changing gr to ₴
cv_RU: changing t to ₽
de_CH: changing Fr. to CHF
dz_BT: changing དངུལ་ཀྲམ་ to Nu.
en_BW: changing Pu to P
en_DK: changing ¤ to kr.
en_PH: changing Php to ₱
en_ZW: changing Z$ to $
es_BO: changing $b to Bs
es_DO: changing $ to RD$
es_HN: changing L. to L
es_PA: changing B/ to B/.
es_SV: changing ₡ to $
fil_PH: changing PhP to ₱
he_IL: changing שח to ₪
hy_AM: changing Դ to ֏
ka_GE: changing ლ to ₾
kk_KZ: changing тг to ₸
ko_KR: changing ₩ to ₩
lg_UG: changing /- to USh
lv_LV: changing Ls to €
mg_MG: changing AR to Ar
mhr_RU: changing ТЕҤ to ₽
my_MM: changing Ks to K
os_RU: changing сом to ₽
pap_AW: changing f to ƒ
pap_CW: changing f to ƒ
ps_AF: changing افغانۍ to ؋
rw_RW: changing Frw to FRw
ru_RU: changing руб to ₽
ru_UA: changing гр to ₴
sd_IN@devanagari: changing रु to ₹
se_NO: changing ru to kr
si_LK: changing ₨ to රු
so_SO: changing $ to S
sq_AL: changing Lek to L
ti_ER: changing $ to Nfk
ti_ET: changing $ to Br
tl_PH: changing PhP to ₱
tr_TR: changing TL to ₺
tt_RU: changing руб to ₽
tt_RU@iqtelif: changing sum to ₽
uz_UZ: changing so'm to soʻm
Note: Some of the characters might not render as they're still quite new
in the Unicode database.
Mike Frysinger [Wed, 13 Apr 2016 22:38:56 +0000 (18:38 -0400)]
localedef: check LC_IDENTIFICATION.category values
Currently localedef accepts any value for the category keyword. This has
allowed bad values to propagate to the vast majority of locales (~90%).
Add some logic to only accept a few standards.
Mike Frysinger [Wed, 13 Apr 2016 15:22:00 +0000 (11:22 -0400)]
localedata: LC_IDENTIFICATION.category: set to ISO 30112 2014 standard
The ISO 30112 standard defines the valid values for the category
keyword as only a few options:
posix:1993
i18n:2004
i18n:2012
The vast majority of locales had changed the "i18n" string to the
name of its own locale (e.g. "ak_GH:2013") as well as tweaking the
date (presumably thinking it should be the date of submission).
Convert all of them to "i18n:2012" for consistency. A follow up
change will update localedef to actually check/validate the field.
H.J. Lu [Fri, 15 Apr 2016 12:22:53 +0000 (05:22 -0700)]
Detect Intel Goldmont and Airmont processors
Updated from the model numbers of Goldmont and Airmont processors in
Intel64 And IA-32 Processor Architectures Software Developer's Manual
Volume 3 Revision 058.
* sysdeps/x86/cpu-features.c (init_cpu_features): Detect Intel
Goldmont and Airmont processors.
Wilco Dijkstra [Fri, 15 Apr 2016 11:33:29 +0000 (12:33 +0100)]
Remove pre GCC3.2 optimizations from string/bits/string2.h.
* string/string.h: Use __GNUC_PREREQ(3,4) for bits/string2.h.
* string/bits/string2.h (__STRING2_SMALL_GET16): Remove.
(__STRING2_SMALL_GET32): Remove.
(memset): Remove.
(__memset_1): Remove.
(__memset_gc): Remove.
(__mempcpy): Remove.
(mempcpy): Remove.
(__mempcpy_args): Remove.
(strchr): Remove.
(strcpy): Remove.
(strcpy_args): Remove.
(__stpcpy_args): Remove.
(__strcmp_cc): Remove.
(__strcmp_gc): Remove.
(strstr): Remove.
Yvan Roux [Fri, 15 Apr 2016 11:29:26 +0000 (13:29 +0200)]
Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses
Mike Frysinger [Tue, 9 Feb 2016 05:36:15 +0000 (00:36 -0500)]
localedata: CLDRv29: update LC_ADDRESS.country_name translations
This updates a bunch of locales based on CLDR v29 data:
bg_BG: changing Bulgaria to България
bo_CN: changing ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ། to རྒྱ་ནག
bo_IN: changing རྒྱ་གར to རྒྱ་གར་
cy_GB: changing Cymru to Y Deyrnas Unedig
dz_BT: changing འབྲུག། to འབྲུག
en_US: changing USA to United States
es_US: changing USA to Estados Unidos
gd_GB: changing Breatainn Mhòr to An Rìoghachd Aonaichte
ha_NG: changing Nigeria to Najeriya
mk_MK: changing Macedonia to Македонија
mn_MN: changing Mongolia to Монгол
sq_MK: changing Macedonia to Maqedoni
sr_RS@latin: changing Srbija i Crna Gora to Srbija
tr_CY: changing Northern Cyprus to Kıbrıs
tr_TR: changing Turkey to Türkiye
ug_CN: changing 中华人民共和国 to جۇڭگو
uz_UZ: changing O'zbekistan to Oʻzbekiston
vi_VN: changing Việt nam to Việt Nam
wae_CH: changing Switzerland to Schwiz
yi_US: changing די פֿאראײניקטע שטאַטן to פֿאַראייניגטע שטאַטן
yo_NG: changing Nigeria to Orílẹ́ède Nàìjíríà
yue_HK: changing 香港 to 中華人民共和國香港特別行政區
zu_ZA: changing Mzansi Afrika to i-South Africa
These all look largely straightforward. Many had English translations
instead of native, and a few have been updated. I can't verify some of
them as I'm not personally familiar, but the CLDR data matches.
The USA->United States seems a little odd, but that is also what the
CLDR database uses everywhere (rather than "United States of America").
We can also fill in a country name where there wasn't one before.
Many look correct to me (mostly the English ones), but there's also
many that I have no idea. But it can't be worse than leaving it
blank ? :)
ar_AE: changing to الإمارات العربية المتحدة
ar_BH: changing to البحرين
ar_DZ: changing to الجزائر
ar_EG: changing to مصر
ar_IN: changing to الهند
ar_IQ: changing to العراق
ar_JO: changing to الأردن
ar_KW: changing to الكويت
ar_LB: changing to لبنان
ar_LY: changing to ليبيا
ar_MA: changing to المغرب
ar_OM: changing to عُمان
ar_QA: changing to قطر
ar_SA: changing to المملكة العربية السعودية
ar_SD: changing to السودان
ar_SS: changing to جنوب السودان
ar_SY: changing to سوريا
ar_TN: changing to تونس
ar_YE: changing to اليمن
as_IN: changing to ভাৰত
ast_ES: changing to España
az_AZ: changing to Azərbaycan
be_BY: changing to Беларусь
bn_IN: changing to ভারত
br_FR: changing to Frañs
brx_IN: changing to भारत
bs_BA: changing to Bosna i Hercegovina
ca_AD: changing to Andorra
ca_ES: changing to Espanya
ca_FR: changing to França
ca_IT: changing to Itàlia
ce_RU: changing to Росси
da_DK: changing to Danmark
de_AT: changing to Österreich
de_BE: changing to Belgien
de_CH: changing to Schweiz
de_LU: changing to Luxemburg
el_CY: changing to Κύπρος
el_GR: changing to Ελλάδα
en_AG: changing to Antigua & Barbuda
en_AU: changing to Australia
en_BW: changing to Botswana
en_CA: changing to Canada
en_DK: changing to Denmark
en_GB: changing to United Kingdom
en_HK: changing to Hong Kong SAR China
en_IE: changing to Ireland
en_IN: changing to India
en_NZ: changing to New Zealand
en_PH: changing to Philippines
en_SG: changing to Singapore
en_ZW: changing to Zimbabwe
es_AR: changing to Argentina
es_BO: changing to Bolivia
es_CL: changing to Chile
es_CO: changing to Colombia
es_CU: changing to Cuba
es_DO: changing to República Dominicana
es_EC: changing to Ecuador
es_ES: changing to España
es_GT: changing to Guatemala
es_HN: changing to Honduras
es_MX: changing to México
es_NI: changing to Nicaragua
es_PA: changing to Panamá
es_PE: changing to Perú
es_PR: changing to Puerto Rico
es_PY: changing to Paraguay
es_SV: changing to El Salvador
es_UY: changing to Uruguay
es_VE: changing to Venezuela
eu_ES: changing to Espainia
fil_PH: changing to Pilipinas
fo_FO: changing to Føroyar
fr_BE: changing to Belgique
fr_CA: changing to Canada
fr_CH: changing to Suisse
fr_FR: changing to France
fr_LU: changing to Luxembourg
fur_IT: changing to Italie
fy_DE: changing to Dútslân
fy_NL: changing to Nederlân
ga_IE: changing to Éire
gl_ES: changing to España
gu_IN: changing to ભારત
gv_GB: changing to Rywvaneth Unys
he_IL: changing to ישראל
hi_IN: changing to भारत
hr_HR: changing to Hrvatska
hu_HU: changing to Magyarország
id_ID: changing to Indonesia
is_IS: changing to Ísland
it_CH: changing to Svizzera
it_IT: changing to Italia
ja_JP: changing to 日本
ka_GE: changing to საქართველო
kk_KZ: changing to Қазақстан
kl_GL: changing to Kalaallit Nunaat
kn_IN: changing to ಭಾರತ
kok_IN: changing to भारत
ko_KR: changing to 대한민국
ks_IN: changing to ہِنٛدوستان
ks_IN@devanagari: changing to भारत
kw_GB: changing to Rywvaneth Unys
ky_KG: changing to Кыргызстан
lt_LT: changing to Lietuva
lv_LV: changing to Latvija
mg_MG: changing to Madagasikara
ml_IN: changing to ഇന്ത്യ
mr_IN: changing to भारत
ms_MY: changing to Malaysia
mt_MT: changing to Malta
nb_NO: changing to Norge
ne_NP: changing to नेपाल
nl_AW: changing to Aruba
nl_BE: changing to België
nl_NL: changing to Nederland
nn_NO: changing to Noreg
or_IN: changing to ଭାରତ
os_RU: changing to Уӕрӕсе
pa_IN: changing to ਭਾਰਤ
pa_PK: changing to ਪਾਕਿਸਤਾਨ
pl_PL: changing to Polska
pt_BR: changing to Brasil
pt_PT: changing to Portugal
ru_RU: changing to Россия
ru_UA: changing to Украина
sd_IN@devanagari: changing to भारत
se_NO: changing to Norga
si_LK: changing to ශ්රී ලංකාව
sk_SK: changing to Slovensko
sl_SI: changing to Slovenija
sq_AL: changing to Shqipëri
sv_SE: changing to Sverige
ta_IN: changing to இந்தியா
ta_LK: changing to இலங்கை
ur_IN: changing to بھارت
ur_PK: changing to پاکستان
Mike Frysinger [Tue, 12 Apr 2016 07:15:11 +0000 (03:15 -0400)]
localedata: fix LC_ADDRESS.country_car entries
These entries have been checked mostly against Wikipedia, but also using
the sources it cites (like the UN and other treaty sources).
Fix incorrect values:
en_BW: changing RB to BW
kl_GL: changing GRO to KN
km_KH: changing LAO to KH
my_MM: changing BA to MYA
oc_FR: changing F to F
tr_CY: changing TR to CY
wae_CH: changing DH to CH
Add missing entries:
aa_DJ: changing to DJI
ak_GH: changing to GH
ar_OM: changing to OM
ar_SS: changing to SUD
ar_YE: changing to YAR
bo_CN: changing to CHN
cmn_TW: changing to RC
dv_MV: changing to MV
dz_BT: changing to BHT
en_AG: changing to AG
es_HN: changing to HN
es_PR: changing to PR
hak_TW: changing to RC
lzh_TW: changing to RC
nan_TW: changing to RC
nan_TW@latin: changing to RC
nl_AW: changing to AUA
pap_AW: changing to AUA
so_DJ: changing to DJI
the_NP: changing to NEP
ug_CN: changing to CHN
yue_HK: changing to HK
zh_CN: changing to CHN
zh_HK: changing to HK
zh_TW: changing to RC
Mike Frysinger [Tue, 9 Feb 2016 11:58:40 +0000 (06:58 -0500)]
localedata: CLDRv29: update LC_ADDRESS.country_num values
This updates a few locales based on CLDR v29 data.
Add missing fields:
as_IN: changing to 356
dv_MV: changing to 462
kk_KZ: changing to 398
my_MM: changing to 104
rw_RW: changing to 646
tt_RU: changing to 643
Update ones that are wrong:
dz_BT: changing BHU to 064
en_PH: changing 360 to 608
km_KH: changing 418 to 116
ky_KG: changing 643 to 417
tr_CY: changing 792 to 196
wo_SN: changing 450 to 686
As a result of fixing these, I had to update country_ab[23]:
dz_BT: changing BHU to BTN
en_PH: changing ID/IDN to PH/PHL
km_KH: changing LA/LAO to KH/KHM
ky_KG: changing KY/KYR to KG/KGZ
tr_CY: changing TR/TUR to CY/CYP
wo_SN: changing MG/MDG to SN/SEN
Pad with leading zeros to match the standard and other locales:
ber_DZ: changing 12 to 012
ca_AD: changing 20 to 020
en_AG: changing 28 to 028
hy_AM: changing 51 to 051
li_BE: changing 56 to 056
wa_BE: changing 56 to 056
I hand checked the first two sets against ISO 3166-1 directly.
Mike Frysinger [Tue, 9 Feb 2016 11:04:07 +0000 (06:04 -0500)]
localedata: LC_PAPER: use copy directives everywhere
There are only two page sizes that locales use: US-Letter and A4.
For the former, move to copying the en_US locale, while for the
latter, move to copying the i18n locale. This lets us clean up
all the stray comments like FIXME.
There should be no functional differences here.
Adhemerval Zanella [Thu, 14 Apr 2016 19:41:33 +0000 (16:41 -0300)]
Fix pread consolidation on ports that require argument alignment
This patch fixes the __ALIGNMENT_{ARG,COUNT} definition for ports that
define __ASSUME_ALIGNED_REGISTER_PAIRS by including the kernel-features.h
(where it is defined if the case).
This was shown on arm with failing cases:
FAIL: debug/tst-chk1
FAIL: debug/tst-chk2
FAIL: debug/tst-chk3
FAIL: debug/tst-chk4
FAIL: debug/tst-chk5
FAIL: debug/tst-chk6
FAIL: debug/tst-lfschk1
FAIL: debug/tst-lfschk2
FAIL: debug/tst-lfschk3
FAIL: debug/tst-lfschk4
FAIL: debug/tst-lfschk5
FAIL: debug/tst-lfschk6
FAIL: posix/tst-preadwrite
FAIL: posix/tst-preadwrite64
The patches fixes it. Tested on armhf.
* sysdeps/unix/sysv/linux/sysdep.h: Include kernel-features.h.
Florian Weimer [Thu, 14 Apr 2016 10:53:03 +0000 (12:53 +0200)]
malloc: Add missing internal_function attributes on function definitions
Fixes build on i386 after commit
29d794863cd6e03115d3670707cc873a9965ba92.
Stefan Liebler [Thu, 14 Apr 2016 10:21:53 +0000 (12:21 +0200)]
Fix strfmon_l: Use specified locale for number formatting [BZ #19633]
The commit
985fc132f23dbb83de76c5af9e783ef1b5900148
"strfmon_l: Use specified locale for number formatting [BZ #19633]"
introduced an elf/check-abi-libc testfailure due to __printf_fp_l
on architectures which use sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h.
This patch uses libc_hidden_def instead of ldbl_hidden_def.
The ldbl_strong_alias is removed due to the rename of ___printf_fp_l
to __printf_fp_l.
ChangeLog:
* stdio-common/printf_fp.c (__printf_fp_l):
Rename ___printf_fp_l to __printf_fp_l and
remove strong alias. Use libc_hidden_def instead
of ldbl_hidden_def macro.
Florian Weimer [Thu, 14 Apr 2016 07:18:30 +0000 (09:18 +0200)]
malloc: Remove malloc hooks from fork handler
The fork handler now runs so late that there is no risk anymore that
other fork handlers in the same thread use malloc, so it is no
longer necessary to install malloc hooks which made a subset
of malloc functionality available to the thread that called fork.
Florian Weimer [Thu, 14 Apr 2016 07:17:36 +0000 (09:17 +0200)]
malloc: Remove unused definitions of thread_atfork, thread_atfork_static
Florian Weimer [Thu, 14 Apr 2016 07:17:02 +0000 (09:17 +0200)]
malloc: Run fork handler as late as possible [BZ #19431]
Previously, a thread M invoking fork would acquire locks in this order:
(M1) malloc arena locks (in the registered fork handler)
(M2) libio list lock
A thread F invoking flush (NULL) would acquire locks in this order:
(F1) libio list lock
(F2) individual _IO_FILE locks
A thread G running getdelim would use this order:
(G1) _IO_FILE lock
(G2) malloc arena lock
After executing (M1), (F1), (G1), none of the threads can make progress.
This commit changes the fork lock order to:
(M'1) libio list lock
(M'2) malloc arena locks
It explicitly encodes the lock order in the implementations of fork,
and does not rely on the registration order, thus avoiding the deadlock.
Florian Weimer [Thu, 14 Apr 2016 06:54:57 +0000 (08:54 +0200)]
Remove union wait [BZ #19613]
The overloading approach in the W* macros was incompatible with
integer expressions of a type different from int. Applications
using union wait and these macros will have to migrate to the
POSIX-specified int status type.
Matthias Wallnoefer [Wed, 13 Apr 2016 21:39:52 +0000 (17:39 -0400)]
localedata: de_IT: new locale
Matthias Wallnoefer [Wed, 13 Apr 2016 15:10:59 +0000 (11:10 -0400)]
localedata: de_{AT,CH}: copy data from de_DE
Improve the de_AT/de_CH locales by copying the de_DE locale in more
places. This fills out translations that weren't there before.
Andreas Schwab [Wed, 13 Apr 2016 15:04:37 +0000 (17:04 +0200)]
Register extra test objects
This makes sure that the extra test objects are compiled with the correct
MODULE_NAME and dependencies are tracked.
Mike Frysinger [Tue, 9 Feb 2016 11:25:52 +0000 (06:25 -0500)]
localedata: LC_MEASUREMENT: use copy directives everywhere
There are only two measurement systems that locales use: US and metric.
For the former, move to copying the en_US locale, while for the latter,
move to copying the i18n locale. This lets us clean up all the stray
comments like FIXME.
There should be no functional differences here.
Mike Frysinger [Wed, 10 Feb 2016 00:53:38 +0000 (19:53 -0500)]
localedata: CLDRv29: update LC_IDENTIFICATION language/territory fields
This updates all the territory fields based on CLDR v29 data. Many of
them were obviously incorrect where people used a two letter code and
not the English name.
aa_DJ: changing DJ to Djibouti
aa_ER@saaho: changing ER to Eritrea
aa_ER: changing ER to Eritrea
aa_ET: changing ET to Ethiopia
am_ET: changing ET to Ethiopia
ar_LY: changing Libyan Arab Jamahiriya to Libya
ar_SY: changing Syrian Arab Republic to Syria
bo_CN: changing P.R. of China to China
bs_BA: changing Bosnia and Herzegowina to Bosnia & Herzegovina
byn_ER: changing ER to Eritrea
ca_IT: changing Italy (L'Alguer) to Italy
ce_RU: changing RUSSIAN FEDERATION to Russia
cmn_TW: changing Republic of China to Taiwan
cy_GB: changing Great Britain to United Kingdom
de_LU@euro: changing Luxemburg to Luxembourg
de_LU: changing Luxemburg to Luxembourg
en_AG: changing Antigua and Barbuda to Antigua & Barbuda
en_GB: changing Great Britain to United Kingdom
en_HK: changing Hong Kong to Hong Kong SAR China
en_US: changing USA to United States
es_US: changing USA to United States
fr_LU@euro: changing Luxemburg to Luxembourg
fr_LU: changing Luxemburg to Luxembourg
fy_DE: changing DE to Germany
gd_GB: changing Great Britain to United Kingdom
gez_ER@abegede: changing ER to Eritrea
gez_ER: changing ER to Eritrea
gez_ET@abegede: changing ET to Ethiopia
gez_ET: changing ET to Ethiopia
gv_GB: changing Britain to United Kingdom
hak_TW: changing Republic of China to Taiwan
iu_CA: changing CA to Canada
ko_KR: changing Republic of Korea to South Korea
kw_GB: changing Britain to United Kingdom
li_BE: changing BE to Belgium
li_NL: changing NL to Netherlands
lzh_TW: changing Republic of China to Taiwan
my_MM: changing Myanmar to Myanmar (Burma)
nan_TW: changing Republic of China to Taiwan
nds_DE: changing DE to Germany
nds_NL: changing NL to Netherlands
om_ET: changing ET to Ethiopia
om_KE: changing KE to Kenya
pap_AW: changing AW to Aruba
pap_CW: changing CW to Curaçao
pt_BR: changing Brasil to Brazil
sid_ET: changing ET to Ethiopia
sk_SK: changing Slovak to Slovakia
so_DJ: changing DJ to Djibouti
so_ET: changing ET to Ethiopia
so_KE: changing KE to Kenya
so_SO: changing SO to Somalia
ti_ER: changing ER to Eritrea
ti_ET: changing ET to Ethiopia
tig_ER: changing ER to Eritrea
tt_RU@iqtelif: changing Tatarstan, Russian Federation to Russia
uk_UA: changing UA to Ukraine
unm_US: changing USA to United States
wal_ET: changing ET to Ethiopia
yi_US: changing USA to United States
yue_HK: changing Hong Kong to Hong Kong SAR China
zh_CN: changing P.R. of China to China
zh_HK: changing Hong Kong to Hong Kong SAR China
zh_TW: changing Taiwan R.O.C. to Taiwan
This updates all the language fields based on CLDR v29 data. Many of
them were obviously incorrect where people used a two letter code and
not the English name.
aa_DJ: changing aa to Afar
aa_ER: changing aa to Afar
aa_ER@saaho: changing aa to Afar
aa_ET: changing aa to Afar
am_ET: changing am to Amharic
az_AZ: changing Azeri to Azerbaijani
bn_BD: changing Bengali/Bangla to Bengali
byn_ER: changing byn to Blin
de_AT: changing German to Austrian German
de_CH: changing German to Swiss High German
en_AU: changing English to Australian English
en_CA: changing English to Canadian English
en_GB: changing English to British English
en_US: changing English to American English
es_ES: changing Spanish to European Spanish
es_MX: changing Spanish to Mexican Spanish
ff_SN: changing ff to Fulah
fr_CA: changing French to Canadian French
fr_CH: changing French to Swiss French
fur_IT: changing Furlan to Friulian
fy_DE: changing fy to Western Frisian
fy_NL: changing Frisian to Western Frisian
gd_GB: changing Scots Gaelic to Scottish Gaelic
gez_ER@abegede: changing gez to Geez
gez_ER: changing gez to Geez
gez_ET@abegede: changing gez to Geez
gez_ET: changing gez to Geez
gv_GB: changing Manx Gaelic to Manx
ht_HT: changing Kreyol to Haitian Creole
kl_GL: changing Greenlandic to Kalaallisut
lg_UG: changing Luganda to Ganda
li_BE: changing li to Limburgish
li_NL: changing li to Limburgish
nan_TW@latin: changing Minnan to Min Nan Chinese
nb_NO: changing Norwegian, Bokmål to Norwegian Bokmål
nds_DE: changing nds to Low German
nds_NL: changing nds to Low Saxon
niu_NU: changing Vagahau Niue (Niuean) to Niuean
niu_NZ: changing Vagahau Niue (Niuean) to Niuean
nl_BE: changing Dutch to Flemish
nn_NO: changing Norwegian, Nynorsk to Norwegian Nynorsk
nr_ZA: changing Southern Ndebele to South Ndebele
om_ET: changing om to Oromo
om_KE: changing om to Oromo
or_IN: changing Odia to Oriya
os_RU: changing Ossetian to Ossetic
pap_AW: changing pap to Papiamento
pap_CW: changing pap to Papiamento
pa_PK: changing Punjabi (Shahmukhi) to Punjabi
pt_BR: changing Portuguese to Brazilian Portuguese
pt_PT: changing Portuguese to European Portuguese
se_NO: changing Northern Saami to Northern Sami
sid_ET: changing sid to Sidamo
so_DJ: changing so to Somali
so_ET: changing so to Somali
so_KE: changing so to Somali
so_SO: changing so to Somali
st_ZA: changing Sotho to Southern Sotho
sw_KE: changing sw to Swahili
sw_TZ: changing sw to Swahili
ti_ER: changing ti to Tigrinya
ti_ET: changing ti to Tigrinya
tig_ER: changing tig to Tigre
uk_UA: changing uk to Ukrainian
wal_ET: changing wal to Wolaytta
yue_HK: changing Yue Chinese to Cantonese
Mike Frysinger [Mon, 11 Apr 2016 19:52:51 +0000 (15:52 -0400)]
localedata: LC_TIME.date_fmt: delete entries same as the default value
There's no real value in populating this field when it's the same as the
default POSIX setting, so drop it from most locales so it's clear what's
going on.
H.J. Lu [Tue, 12 Apr 2016 15:10:31 +0000 (08:10 -0700)]
X86-64: Use non-temporal store in memcpy on large data
The large memcpy micro benchmark in glibc shows that there is a
regression with large data on Haswell machine. non-temporal store in
memcpy on large data can improve performance significantly. This
patch adds a threshold to use non temporal store which is 6 times of
shared cache size. When size is above the threshold, non temporal
store will be used, but avoid non-temporal store if there is overlap
between destination and source since destination may be in cache when
source is loaded.
For size below 8 vector register width, we load all data into registers
and store them together. Only forward and backward loops, which move 4
vector registers at a time, are used to support overlapping addresses.
For forward loop, we load the last 4 vector register width of data and
the first vector register width of data into vector registers before the
loop and store them after the loop. For backward loop, we load the first
4 vector register width of data and the last vector register width of
data into vector registers before the loop and store them after the loop.
[BZ #19928]
* sysdeps/x86_64/cacheinfo.c (__x86_shared_non_temporal_threshold):
New.
(init_cacheinfo): Set __x86_shared_non_temporal_threshold to 6
times of shared cache size.
* sysdeps/x86_64/multiarch/memmove-avx-unaligned-erms.S
(VMOVNT): New.
* sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S
(VMOVNT): Likewise.
* sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S
(VMOVNT): Likewise.
(VMOVU): Changed to movups for smaller code sizes.
(VMOVA): Changed to movaps for smaller code sizes.
* sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Update
comments.
(PREFETCH): New.
(PREFETCH_SIZE): Likewise.
(PREFETCHED_LOAD_SIZE): Likewise.
(PREFETCH_ONE_SET): Likewise.
Rewrite to use forward and backward loops, which move 4 vector
registers at a time, to support overlapping addresses and use
non temporal store if size is above the threshold and there is
no overlap between destination and source.
Matthew Fortune [Tue, 12 Apr 2016 08:31:06 +0000 (09:31 +0100)]
VDSO support for MIPS
This patch adds support for using the implementations of gettimeofday()
and clock_gettime() provided by the kernel in the VDSO. The VDSO will
always provide clock_gettime() as CLOCK_{REALTIME,MONOTONIC}_COARSE can
be implemented regardless of platform. CLOCK_{REALTIME,MONOTONIC}, along
with gettimeofday(), are only implemented on platforms which make use of
either the CP0 count or GIC as their clocksource. On other platforms,
the VDSO does not provide the __vdso_gettimeofday symbol, as it is
never useful.
The VDSO functions return ENOSYS when they encounter an unsupported
request, in which case glibc should fall back to the standard syscall.
Tested with upstream kernel 4.5 and QEMU emulating Malta.
./vdsotest gettimeofday bench
gettimeofday: syscall: 1021 nsec/call
gettimeofday: libc: 262 nsec/call
gettimeofday: vdso: 174 nsec/call
* sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines):
Include dl-vdso.
* sysdeps/unix/sysv/linux/mips/Versions: Add
__vdso_clock_gettime.
* sysdeps/unix/sysv/linux/mips/init-first.c: New file.
* sysdeps/unix/sysv/linux/mips/libc-vdso.h: New file.
* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h:
(INTERNAL_VSYSCALL_CALL): Define to be compatible with MIPS
definitions of INTERNAL_SYSCALL_{ERROR_P,ERRNO}.
(HAVE_CLOCK_GETTIME_VSYSCALL): Define.
(HAVE_GETTIMEOFDAY_VSYSCALL): Define.
* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Likewise.
Adhemerval Zanella [Fri, 23 Oct 2015 12:59:32 +0000 (10:59 -0200)]
Consolidate pwrite/pwrite64 implementations
This patch consolidates all the pwrite/pwrite64 implementation for Linux
in only one (sysdeps/unix/sysv/linux/pwrite{64}.c). It also removes the
syscall from the auto-generation using assembly macros.
For pwrite{64} offset argument placement the new SYSCALL_LL{64} macro
is used. For pwrite ports that do not define __NR_pwrite will use
__NR_pwrite64 and for pwrite64 ports that dot define __NR_pwrite64 will
use __NR_pwrite for the syscall.
Checked on x86_64, x32, i386, aarch64, and ppc64le.
* sysdeps/unix/sysv/linux/arm/pwrite.c: Remove file.
* sysdeps/unix/sysv/linux/arm/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (prite): Remove
syscalls generation.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
[__NR_pwrite64] (__NR_write): Remove define.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
[__NR_pwrite64] (__NR_write): Remove define.
* sysdeps/unix/sysv/linux/pwrite.c [__NR_pwrite64] (__NR_pwrite):
Remove define.
(__libc_pwrite): Use SYSCALL_LL macro on offset argument.
* sysdeps/unix/sysv/linux/pwrite64.c [__NR_pwrite64] (__NR_pwrite):
Remove define.
(__libc_pwrite64): Use SYSCALL_LL64 macro on offset argument.
* sysdeps/unix/sysv/linux/sh/pwrite.c: Rewrite using default
Linux implementation as base.
* sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
Adhemerval Zanella [Wed, 21 Oct 2015 12:03:31 +0000 (10:03 -0200)]
Consolidate pread/pread64 implementations
This patch consolidates all the pread/pread64 implementation for Linux
in only one (sysdeps/unix/sysv/linux/pread.c). It also removes the
syscall from the auto-generation using assembly macros.
For pread{64} offset argument placement the new SYSCALL_LL{64} macro
is used. For pread ports that do not define __NR_pread will use
__NR_pread64 and for pread64 ports that dot define __NR_pread64 will
use __NR_pread for the syscall.
Checked on x86_64, x32, i386, aarch64, and ppc64le.
* sysdeps/unix/sysv/linux/arm/pread.c: Remove file.
* sysdeps/unix/sysv/linux/arm/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise,
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (pread): Remove
syscall generation.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
[__NR_pread64] (__NR_pread): Remove define.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h:
[__NR_pread64] (__NR_pread): Likewise.
* sysdeps/unix/sysv/linux/pread.c [__NR_pread64] (__NR_pread): Remove
define.
(__libc_pread): Use SYSCALL_LL macro on offset argument.
* sysdeps/unix/sysv/linux/pread64.c [__NR_pread64] (__NR_pread):
Remove define.
(__libc_pread64): Use SYSCALL_LL64 macro on offset argument.
* sysdeps/unix/sysv/linux/sh/pread.c: Rewrite using default
Linux implementation as base.
* sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
Adhemerval Zanella [Wed, 21 Oct 2015 12:04:07 +0000 (10:04 -0200)]
Consolidate off_t/off64_t syscall argument passing
This patch add three new macros (SYSCALL_LL, SYSCALL_LL64, and
__ASSUME_WORDSIZE64_ILP32) to use along with off_t and off64_t argument
syscalls. The rationale for this change is:
1. Remove multiple implementations for the same syscall for different
architectures (for instance, pread have 6 different implementations).
2. Also remove the requirement to use syscall wrappers for cancellable
entrypoints.
The macro usage should be used along __ALIGNMENT_ARG to follow ABI constrains
for architecture where it applies. For instance, pread can be rewritten as:
return SYSCALL_CANCEL (pread, fd, buf, count,
__ALIGNMENT_ARG SYSCALL_LL (offset));
Another macro, SYSCALL_LL64, is provided for off64_t. The macro
__ASSUME_WORDSIZE64_ILP32 is used by the ABI to define is uses 64-bit register
even if ABI is ILP32 (for instance x32 and mips64-n32).
The changes itself are not currently used in any implementation, so no
code change is expected.
* sysdeps/unix/sysv/linux/generic/sysdep.h (__ALIGNMENT_ARG): Move
definition.
(__ALIGNMENT_COUNT): Likewise.
* sysdeps/unix/sysv/linux/sysdep.h (__ALIGNMENT_ARG): To here.
(__ALIGNMENT_COUNT): Likewise.
(SYSCALL_LL): New define.
(SYSCALL_LL64): Likewise.
* sysdeps/unix/sysv/linux/mips/kernel-features.h:
[_MIPS_SIM == _ABIO32] (__ASSUME_WORDSIZE64_ILP32): Define.
* sysdeps/unix/sysv/linux/x86_64/kernel-features.h:
[ILP32] (__ASUME_WORDSIZE64_ILP32): Likewise.
Adhemerval Zanella [Tue, 17 Nov 2015 20:19:06 +0000 (18:19 -0200)]
Define __ASSUME_ALIGNED_REGISTER_PAIRS for missing ports
This patch defines __ASSUME_ALIGNED_REGISTER_PAIRS for the missing
ports that require 64-bit value (e.g., long long) to be aligned to
an even register pair in argument passing.
No code change is expected, tested with builds for powerpc32,
mips-o32, and armhf.
* sysdeps/unix/sysv/linux/arm/kernel-features.h
(__ASSUME_ALIGNED_REGISTER_PAIRS): Define.
* sysdeps/unix/sysv/linux/mips/kernel-features.h
[_MIPS_SIM == _ABIO32] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
[!__powerpc64__] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.