Commit Graph

32286 Commits

Author SHA1 Message Date
Mike FABIAN 486afa6d27 Use the range notation in charmaps/UTF-8 for all ranges of neighbouring characters with the same width
[BZ #21750]
	* charmaps/UTF-8: Use the range notation for all ranges
	of neighbouring characters with the same width.
2017-08-18 13:44:40 +02:00
DJ Delorie a3fe6a20bf Update nss tests to new skeleton
* bug17079.c: Update to new test harness.
* test-digits-dots.c: Likewise.
* test-netdb.c: Likewise.
* tst-field.c: Likewise.
* tst-nss-getpwent.c: Likewise.
* tst-nss-static.c: Likewise.
* tst-nss-test1.c: Likewise.
* tst-nss-test2.c: Likewise.
* tst-nss-test3.c: Likewise.
* tst-nss-test4.c: Likewise.
* tst-nss-test5.c: Likewise.
2017-08-17 18:00:51 -04:00
Adhemerval Zanella c22845744c Consolidate non cancellable open call
This patch consolidates all the non cancellable open calls to use
the __open_nocancel identifier.  For non cancellable targets it will
be just a macro to call the default respective symbol while on Linux
will be a internal one.

To be consistent with the following non cancellable openat call, a
new __open64_nocancel is also added (although not currently used).

Checked on x86_64-linux-gnu, x86_64-linux-gnu-x32, and i686-linux-gnu.

	* sysdeps/generic/not-cancel.h (open_not_cancel): Remove macro.
	(open_not_cancel_2): Likewise.
	(open_nocancel): New macro.
	(open64_nocancel): Likewise.
	* sysdeps/unix/sysv/linux/not-cancel.h (open_not_cancel): Remove macro.
	(open_not_cancel_2): Likewise.
	(__open_nocancel): New prototype.
	(__open64_nocancel): Likewise.
	* sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
	__open_nocancel.
	* sysdeps/unix/sysv/linux/open.c (__open_nocancel): New function.
	* sysdeps/unix/sysv/linux/open64.c (__open64_nocancel): Likewise.
	* catgets/open_catalog.c (__open_catalog): Replace open_not_cancel{_2}
	with __open_nocancel.
	* csu/check_fds.c (check_one_fd): Likewise.
	* gmon/gmon.c (write_gmon): Likewise.
	* iconv/gconv_cache.c (__gconv_load_cached): Likewise.
	* intl/loadmsgcat.c (open): Likewise.
	* libio/fileops.c (_IO_file_open): Likewise.
	* locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
	* locale/loadlocale.c (_nl_load_locale): Likewise.
	* login/utmp_file.c (setutent_file): Likewise.
	* misc/daemon.c (daemon): Likewise.
	* nss/nss_db/db-open.c (internal_setent): Likewise.
	* sysdeps/mach/hurd/opendir.c (__opendirat): Likewise.
	* sysdeps/posix/libc_fatal.c (__libc_message): Likewise.
	* sysdeps/posix/opendir.c (tryopen_o_directory): Likewise.
	(__opendir): Likewise.
	* sysdeps/posix/spawni.c (__spawni_child): Likewise.
	* sysdeps/unix/sysv/linux/fips-private.h (fips_enable_p): Likewise.
	* sysdeps/unix/sysv/linux/gethostid.c (sethostid): Likewise.
	(gethostid): Likewise.
	* sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Likewise.
	* sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
	Likewise.
	* sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Likewise.
	* sysdeps/unix/sysv/linux/grantpt.c (__close_all_fds): Likewise.
	* sysdeps/unix/sysv/linux/i386/smp.h (is_smp_system): Likewise.
	* sysdeps/unix/sysv/linux/ia64/has_cpuclock.c (has_cpuclock):
	Likewise.
	* sysdeps/unix/sysv/linux/libc_fatal.c (backtrace_and_maps):
	Likewise.
	* sysdeps/unix/sysv/linux/malloc-sysdep.h (check_may_shrink_heap):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c (__get_clockfreq):
	Likewise.
	* sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
	Likewise.
	* sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
	Likewise.
	* sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Likewise.
	* sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Likewise.
2017-08-17 16:50:35 -03:00
Wilco Dijkstra d4505b895f Add math benchmark latency test
This patch further improves math function benchmarking by adding a latency
test in addition to throughput.  This enables more accurate comparisons of the
math functions. The latency test works by creating a dependency on the previous
iteration: func_res = F (func_res * zero + input[i]). The multiply by zero
avoids changing the input.

It reports reciprocal throughput and latency in nanoseconds (depending on the
timing header used) and max/min throughput in iterations per second:

   "workload-spec2006.wrf": {
    "reciprocal-throughput": 100,
    "latency": 200,
    "max-throughput": 1.0e+07,
    "min-throughput": 5.0e+06
   }

	* benchtests/bench-skeleton.c (main): Add support for
	latency benchmarking.
	* benchtests/scripts/bench.py: Add support for latency benchmarking.
2017-08-17 16:27:20 +01:00
H.J. Lu 34d6a3cbf2 Support mcount/gprof test with GCC defaulting to PIE
The mcount/gprof test should be linked with gcrt1.o, not Scrt1.o.

	* Makeconfig (+link-pie-before-libc): Add CRT-* hook to override
	the startup object.
2017-08-17 04:56:01 -07:00
Akhilesh Kumar bb6274ee12 Fix abmon for bem_ZM
Until now the abbreviated month names were in English.

	[BZ #21960]
	* locales/bem_ZM (LC_TIME): Fix abmon, make it agree with CLDR.
2017-08-17 11:06:08 +02:00
Akhilesh Kumar c14b84baae Fix country name for xh_ZA
[BZ #21959]
	* locales/xh_ZA (LC_ADDRESS): Fix country name.
2017-08-17 11:06:08 +02:00
Thorsten Glaser 7a79e321c6 Refresh generated charmap data and ChangeLog
[BZ #21750]
	* charmaps/UTF-8: Refresh.
2017-08-17 11:06:08 +02:00
Thorsten Glaser 267ee5d7ab Resolve some historically special cases of ambiguous width
[BZ #21750]
* unicode-gen/utf8_gen.py (U+00AD): Set width to 1.
* unicode-gen/utf8_gen.py (U+1160..U+11FF): Set width to 0.
* unicode-gen/utf8_gen.py (U+3248..U+324F): Set width to 2.
* unicode-gen/utf8_gen.py (U+4DC0..U+4DFF): Likewise.
2017-08-17 11:06:08 +02:00
Thorsten Glaser 41b6f0ce85 Handle more cases of combining characters
[BZ #21750]
* unicode-gen/utf8_gen.py: Treat category Me and Mn as combining.
2017-08-17 11:06:08 +02:00
Thorsten Glaser 580be3035d UnicodeData has precedence over EastAsianWidth
[BZ #19852]
[BZ #21750]
* unicode-gen/utf8_gen.py: Process EastAsianWidth lines before
  UnicodeData lines so the latter have precedence; remove hack
  to group output by EastAsianWidth ranges.
2017-08-17 11:06:08 +02:00
Florian Weimer 038d1cafaf __opensock: Remove internal_function attribute 2017-08-17 10:18:15 +02:00
Joseph Myers 67f0aff0c6 Fix sigval namespace (bug 21944).
XPG4.2 defines the siginfo_t type, but not union sigval or its
contents (which were added in the 1993 edition of POSIX.1), resulting
in namespace violations for sigval, sival_int and sival_ptr for
signal.h and sys/wait.h for that standard because those headers
incorrectly expose those names in that case.

This patch fixes this problem.  The public type in this case is union
sigval, but various places in the headers use the sigval_t name for
it; direct uses of union sigval are already properly guarded or in
headers not in XPG4.2.  Now, sigval_t, although not a standard name,
does seem to be widely used outside glibc.  The approach taken by this
patch is to make installed headers use the name __sigval_t instead.
__sigval_t is then defined to either union sigval or union __sigval
(where union __sigval has __-prefixed member names as well), depending
on whether there are any namespace issues with the union sigval name
and its members.  In the case where union __sigval is used, sigval_t
is not defined at all, to avoid the problem of sigval_t having a C++
mangled name that depends on feature test macros.  sigval_t is still
defined by signal.h if __USE_MISC (reflecting the nonstandard nature
of that name).

Tested for x86_64.

	[BZ #21944]
	* signal/bits/types/__sigval_t.h: New file.
	* signal/Makefile (headers): Add bits/types/__sigval_t.h.
	* signal/bits/types/sigval_t.h: Include <bits/types/__sigval_t.h>
	and define sigval_t using __sigval_t.
	* include/bits/types/__sigval_t.h: New file.
	* bits/types/sigevent_t.h: Include <bits/types/__sigval_t.h>
	instead of <bits/types/__sigval_t.h>.
	(struct sigevent): Use __sigval_t instead of sigval_t.
	* bits/types/siginfo_t.h: Include <bits/types/__sigval_t.h>
	instead of <bits/types/__sigval_t.h>.
	(siginfo_t): Use __sigval_t instead of sigval_t.
	* sysdeps/unix/sysv/linux/bits/types/sigevent_t.h: Include
	<bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>.
	(struct sigevent): Use __sigval_t instead of sigval_t.
	* sysdeps/unix/sysv/linux/bits/types/siginfo_t.h: Include
	<bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>.
	(siginfo_t): Use __sigval_t instead of sigval_t.
	* signal/signal.h [__USE_MISC]: Include <bits/types/sigval_t.h>.
2017-08-16 20:33:59 +00:00
H.J. Lu 87e7bf4d36 Remove "[Add new features here]" for 2.27
* NEWS: Remove "[Add new features here]" for 2.27.
2017-08-16 11:05:55 -07:00
Joseph Myers 5047057ffa Allow abort PLT references in libc.so for SH.
Given my patch
<https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00965.html> for the
ICEs building a glibc string function test for SH, the testsuite can
build completely for SH with GCC 7 and mainline.  However, there is a
test failure that does not appear for GCC 6: check-localplt fails
because of an abort PLT reference in libc.so.

Given the lack of a trap insn pattern for SH, it seems unavoidable
that the compiler might sometimes generate abort calls, and such abort
calls (generated from __builtin_trap when there is no trap insn
pattern) will be unaffected by the normal mapping to __GI_abort for
calls within glibc.  Thus, this patch allows (but does not require) an
abort PLT reference in libc.so for SH.

Tested for sh4-linux-gnu with build-many-glibcs.py (GCC 7, with my
patch applied).

	* sysdeps/unix/sysv/linux/sh/localplt.data: Allow abort in
	libc.so.
2017-08-16 17:01:27 +00:00
H.J. Lu 20c7b195d0 Mention x86-64 FMA optimization in NEWS
* NEWS: Mention x86-64 FMA optimization.
2017-08-16 09:17:49 -07:00
H.J. Lu 24a2e6588d x86-64: Optimize e_expf with FMA [BZ #21912]
FMA optimized e_expf improves performance by more than 50% on Skylake.

	[BZ #21912]
	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
	Add e_expf-fma.
	* sysdeps/x86_64/fpu/multiarch/e_expf-fma.S: New file.
	* sysdeps/x86_64/fpu/multiarch/e_expf.c: Likewise.
	* sysdeps/x86_64/fpu/multiarch/ifunc-fma.h: Likewise.
2017-08-16 08:43:48 -07:00
Florian Weimer 403143e1df Add ChangeLog reference to bug 16750/CVE-2009-5064 2017-08-16 16:47:20 +02:00
Andreas Schwab eedca9772e ldd: never run file directly 2017-08-16 15:59:55 +02:00
H.J. Lu f59f7adb4a x86-64: Align L(SP_RANGE)/L(SP_INF_0) to 8 bytes [BZ #21955]
sysdeps/x86_64/fpu/e_expf.S has

        lea     L(SP_RANGE)(%rip), %rdx /* load over/underflow bound */
        cmpl    (%rdx,%rax,4), %ecx     /* |x|<under/overflow bound ? */
...
        /* Here if |x| is Inf */
        lea     L(SP_INF_0)(%rip), %rdx /* depending on sign of x: */
        movss   (%rdx,%rax,4), %xmm0    /* return zero or Inf */
        ret
...
         .section .rodata.cst8,"aM",@progbits,8
...
        .p2align 2
L(SP_RANGE): /* single precision overflow/underflow bounds */
        .long   0x42b17217      /* if x>this bound, then result overflows */
        .long   0x42cff1b4      /* if x<this bound, then result underflows */
        .type L(SP_RANGE), @object
        ASM_SIZE_DIRECTIVE(L(SP_RANGE))

        .p2align 2
L(SP_INF_0):
        .long   0x7f800000      /* single precision Inf */
        .long   0               /* single precision zero */
        .type L(SP_INF_0), @object
        ASM_SIZE_DIRECTIVE(L(SP_INF_0))

Since L(SP_RANGE) and L(SP_INF_0) are in .rodata.cst8 section, they must
be aligned to 8 bytes.

	[BZ #21955]
	* sysdeps/x86_64/fpu/e_expf.S (L(SP_RANGE)): Aligned to 8 bytes.
	(L(SP_INF_0)): Likewise.
2017-08-15 14:05:14 -07:00
Florian Weimer 6b11a6ad71 gmon: Run tst-gmon-prof only for run-built-tests=yes 2017-08-15 18:35:42 +02:00
Florian Weimer bbf5c4388a aio: Remove support for BROKEN_THREAD_SIGNALS
This was originally added to support LinuxThreads and is not needed for
NPTL.
2017-08-15 17:54:19 +02:00
Florian Weimer 6014c65de2 gmon: Add test for basic mcount/gprof functionality 2017-08-15 15:49:45 +02:00
Gustavo Romero ee72219a49 powerpc: Add values from Linux 4.8 to <elf.h>
Add powerpc specific note sections available since Linux v4.8.

	* elf/elf.h A (NT_PPC_TAR): New macro.
	(NT_PPC_PPR): Likewise.
	(NT_PPC_DSCR): Likewise.
	(NT_PPC_EBB): Likewise.
	(NT_PPC_PMU): Likewise.
	(NT_PPC_TM_CGPR): Likewise.
	(NT_PPC_TM_CFPR): Likewise.
	(NT_PPC_TM_CVMX): Likewise.
	(NT_PPC_TM_CVSX): Likewise.
	(NT_PPC_TM_SPR): Likewise.
	(NT_PPC_TM_CTAR): Likewise.
	(NT_PPC_TM_CPPR): Likewise.
	(NT_PPC_TM_CDSCR): Likewise.
2017-08-15 10:17:30 -03:00
Florian Weimer 4ebf934e34 i386: Replace internal_function attribute for __mcount_internal
__mcount_internal is called from assembler code.  Use an explicit
regparm attribute to pass both arguments in registers, to match what
used to happen with internal_function before commit
fbdc1e3e8d (i386: Do not set
internal_function).
2017-08-15 14:51:55 +02:00
Stefan Liebler e9f57484aa S390: Add new s390 platform z14.
The new IBM z14 is added to platform string array.
The macro _DL_PLATFORMS_COUNT is incremented.

ChangeLog:

	* sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags): Add z14.
	* sysdeps/s390/dl-procinfo.h (_DL_PLATFORMS_COUNT): Increased.
2017-08-15 14:00:07 +02:00
Mike FABIAN 54d68f5f61 Change language name in LC_IDENTIFICATION of bn_BD and bn_IN from “Bengali” to “Bangla”
[BZ #14925]
	* locales/bn_BD (LC_IDENTIFICATION): Change language name in
	“title” and “language” from Bengali to Bangla.
	* locales/bn_IN (LC_IDENTIFICATION): Likewise.
2017-08-14 19:48:27 +02:00
Mike FABIAN dbb488ff46 Use “copy "i18n"” in km_KH locale
The custom stuff which was in LC_CTYPE of the km_KH locale seems
to be a very incomplete subset of what one gets by using
“copy "i18n"”. I cannot find anything special there which is not
in “copy "i18n"”, only lots of stuff which is missing.

	[BZ #20008]
	* locales/km_KH (LC_CTYPE): Use “copy "i18n"”.
2017-08-14 19:14:38 +02:00
Joseph Myers 88ff4d5561 conformtest: Disable si_value expectation for XPG42.
This patch corrects the conform/ expectations for sys/wait.h not to
expect si_value for XPG4.2.

Tested for x86_64.

	* conform/data/sys/wait.h-data (si_value): Do not expect for
	XPG42.
2017-08-14 17:05:55 +00:00
Florian Weimer c88ffc239e NSS: Replace exported NSS lookup functions with stubs [BZ #21962]
Commit 384ca55174 from 2007 added this to
nss/XXX-lookup.c:

+#ifndef NO_COMPAT
+int
+internal_function attribute_compat_text_section
+DB_COMPAT_FCT (service_user **ni, const char *fct_name, void **fctp)
+{
+  return DB_LOOKUP_FCT (ni, fct_name, NULL, fctp);
+}
+#endif

That is, it adds a pseudo-compat function with an internal_function
attribute.  The function it was supposed to replace did not have the
attribute:

 extern int DB_LOOKUP_FCT (service_user **ni, const char *fct_name,
-			  void **fctp) internal_function;
+			  const char *fct2_name, void **fctp)
+  internal_function;

This changed the calling convention on i386 for the following
functions in the public ABI:

  __nss_passwd_lookup
  __nss_group_lookup
  __nss_hosts_lookup

This commit replaces the functions with always-failing stubs,
with true compat symbols.  Due to a happy accident, the calling
convention of the stub is identical for the internal_function
and non-internal_function case on i386.

In addition, this commit auto-generates the __nss_*_lookup2
function declarations as part of <nsswitch.h>.
2017-08-14 18:13:42 +02:00
Mike FABIAN 2a124c6163 Use two letter abbreviations in abday in all German locales.
[BZ #20482]
	* locales/de_AT (LC_TIME): Use 2 letter abbreviations in abday.
	* locales/de_BE (LC_TIME): Use 2 letter abbreviations in abday.
	* locales/de_CH (LC_TIME): Use 2 letter abbreviations in abday.
	* locales/de_DE (LC_TIME): Use readable ASCII in abday.
	* locales/de_IT (LC_TIME): Use readable ASCII in abday.
	* locales/de_LU (LC_TIME): Use 2 letter abbreviations in abday.
2017-08-14 17:12:37 +02:00
Julen Ruiz Aizpuru 66ba2e4ae5 Fix thousands_sep and grouping and use readable ASCII for decimal_point in eu_ES locale
[BZ #12349]
	* locales/eu_ES (LC_NUMERIC): Fix thousands_sep and grouping
	and use readable ASCII for decimal_point.
2017-08-14 15:58:32 +02:00
Adhemerval Zanella 1f14d0c3dd posix: Fix mmap for m68k and ia64 (BZ#21908)
Default semantic for mmap2 syscall is to take the offset in 4096-byte
units.  However m68k and ia64 mmap2 implementation take in the
configured pageunit units and for both architecture it can be
different values.

This patch fixes the m68k runtime discover of mmap2 offset unit
and adds the ia64 definition to find it at runtime.

Checked the basic tst-mmap and tst-mmap-offset on m68k (the system
is configured with 4k, so current code is already passing on this
system) and a sanity check on x86_64-linux-gnu (which should not be
affected by this change).  Sergei also states that ia64 loader now
work correctly with this change.

	Adhemerval Zanella  <adhemerval.zanella@linaro.org>
	Sergei Trofimovich  <slyfox@inbox.ru>

	* sysdeps/unix/sysv/linux/m68k/mmap_internal.h (MMAP2_PAGE_SHIFT):
	Rename to MMAP2_PAGE_UNIT.
	* sysdeps/unix/sysv/linux/mmap.c: Include mmap_internal iff
	__OFF_T_MATCHES_OFF64_T is not defined.
	* sysdeps/unix/sysv/linux/mmap_internal.h (page_unit): Declare as
	uint64_t.
	(MMAP2_PAGE_UNIT) [MMAP2_PAGE_UNIT == -1]: Redefine to page_unit.
	(page_unit) [MMAP2_PAGE_UNIT != -1]: Remove definition.
2017-08-14 10:35:14 -03:00
Florian Weimer fbdc1e3e8d i386: Do not set internal_function
All calls to functions with the internal_function attribute
have been removed from assembler implementations, which means that
the definition of internal_function can be changed at the C level
without causing ABI issues with assembler code.

_dl_fixup still uses a regparm calling convention on i386, but this
is controlled through ARCH_FIXUP_ATTRIBUTE, not internal_function.
2017-08-14 15:08:48 +02:00
Florian Weimer b3f85fd2e4 _dl_init: Remove internal_function attribute
The function is called from the i386 startup code, which needs minor
adjustments due to the changed ABI.
2017-08-14 15:08:48 +02:00
Florian Weimer 630bf4916f _dl_start: Remove internal_function attribute
The i386 startup code needs adjusting because it calls the function
and the ABI has changed.
2017-08-14 15:08:48 +02:00
Florian Weimer 9fa7449b35 _dl_fini: Remove internal_function attribute
Assembler code passes the address of _dl_fini to __libc_start_main,
whose function pointer argument lacks the attribute.  This means
that calls could use the wrong ABI.  Fortunately, for zero-parameter
void-returning functions, internal_function does not change ABI
on i386 (the only architecture which uses internal_function), so
this inconsistency was harmless (which is why it had not been
noticed so far).
2017-08-14 15:08:48 +02:00
H.J. Lu 73322d5ff6 x86: Add IBT/SHSTK bits to cpu-features
Add IBT/SHSTK bits to cpu-features for Shadow Stack in Intel Control-flow
Enforcement Technology (CET) instructions:

https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf

	* sysdeps/x86/cpu-features.h (bit_cpu_BIT): New.
	(bit_cpu_SHSTK): Likewise.
	(index_cpu_IBT): Likewise.
	(index_cpu_SHSTK): Likewise.
	(reg_IBT): Likewise.
	(reg_SHSTK): Likewise.
	* sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)):
	Handle index_cpu_IBT and index_cpu_SHSTK.
2017-08-14 05:54:38 -07:00
Mike FABIAN dbc303ef76 Fix spelling mistake in fr.po
[BZ #19982]
	* po/fr.po: Fix spelling mistake.
2017-08-14 09:30:54 +02:00
Florian Weimer 3012cfb0d2 ld.so: Remove internal_function attribute from various functions
These functions are invoked from other DSOs and should therefore
use the standard calling convention.
2017-08-13 21:11:54 +02:00
Florian Weimer 52bcdf267b Remove internal_function attribute from string-to-float functions
These are called across DSO boundaries and should therefore use
the standard calling convention.
2017-08-13 21:11:47 +02:00
Florian Weimer e1d2ae8d21 NPTL: Remove internal_function from stack marking functions
These are called across DSO boundaries and therefore should use
the ABI calling convention.
2017-08-13 21:11:38 +02:00
Florian Weimer c4ce038287 __netlink_assert_response: Remove internal_function attribute
This function is called from nscd and should not use a non-standard
calling convention.
2017-08-13 21:11:28 +02:00
Florian Weimer c4d767f7f3 __libc_rpc_getport: Remove internal_function attribute
This function has a hidden alias and is therefore expected to be
called across DSO boundaries.
2017-08-13 21:11:06 +02:00
Florian Weimer b22974092d NSS: Do not use internal_function for functions with hidden aliases
Such functions are called across DSO boundaries and should not
use a non-standard ABI.
2017-08-13 21:10:56 +02:00
Florian Weimer 1b0bfc6946 __fortify_fail: Remove internal_function attribute
__fortify_fail is called across DSO boundaries, so it should not
use a non-standard calling convention.
2017-08-13 21:10:44 +02:00
Mike FABIAN a6bd872286 Adapt test case data to the changes in the thousands separators
[BZ #20756]
	* localedata/tst-langinfo.sh: Adapt test case data.
	* stdlib/tst-strfmon_l.c: Likewise.
	* stdlib/tst-strtod4.c: Likewise.
	* stdlib/tst-strtod5i.c: Likewise.
2017-08-12 17:20:24 +02:00
Mike FABIAN d68b451903 Use U+202F instead of U+2009 as thousands_sep for es_MX
See also [BZ #20756].

U+202F NARROW NO-BREAK SPACE: a narrow form of a no-break space,
typically the width of a thin space or a mid space.

U+2009 THIN SPACE.
2017-08-12 16:03:49 +02:00
Stanislav Brabec 70a6707fa1 Locales: Use Unicode wise thousands separator
Many languages use small gap as thousands separator.

Thousands separator should not be a plain space, but a narrow space.
And additionally, it is not allowed to wrap line in the middle of the
number.

Locale data were created in a deep age of 8-bit encodings, so most of
them use space (incorrect: it allows wrapping the line in the middle
of the number), or NBSP (better, but typographically incorrect: space
between groups is too wide).

Now UNICODE is widely supported, so we should leave legacy characters
in favor of correct UNICODE character.

UNICODE has a dedicated character for this purpose:

NNBSP
U+202F NARROW NO-BREAK SPACE: a narrow form of a no-break space,
typically the width of a thin space or a mid space

The NNBSP exists since Unicode 3.0.

Use of NNBSP will prevent line wrapping in the midle of number and
improve readability of numbers.

	[BZ #20756]
	* locales/aa_DJ (LC_MONETARY): Replace space by NNBSP as thousands separator.
	* locales/az_AZ (LC_MONETARY): Likewise.
	* locales/be_BY (LC_MONETARY): Likewise.
	* locales/be_BY@latin (LC_MONETARY): Likewise.
	* locales/bg_BG (LC_MONETARY): Likewise.
	* locales/bs_BA (LC_MONETARY): Likewise.
	* locales/ce_RU (LC_MONETARY): Likewise.
	* locales/crh_UA (LC_MONETARY): Likewise.
	* locales/cs_CZ (LC_MONETARY): Likewise.
	* locales/cs_CZ (LC_NUMERIC): Likewise.
	* locales/cv_RU (LC_MONETARY): Likewise.
	* locales/de_AT (LC_MONETARY): Likewise.
	* locales/eo (LC_MONETARY): Likewise.
	* locales/es_CR (LC_MONETARY): Likewise.
	* locales/es_CR (LC_NUMERIC): Likewise.
	* locales/es_CU (LC_MONETARY): Likewise.
	* locales/et_EE (LC_MONETARY): Likewise.
	* locales/et_EE (LC_NUMERIC): Likewise.
	* locales/fi_FI (LC_MONETARY): Likewise.
	* locales/fi_FI (LC_NUMERIC): Likewise.
	* locales/fr_CA (LC_MONETARY): Likewise.
	* locales/fr_FR (LC_MONETARY): Likewise.
	* locales/fr_FR (LC_NUMERIC): Likewise.
	* locales/fr_LU (LC_MONETARY): Likewise.
	* locales/fr_LU (LC_NUMERIC): Likewise.
	* locales/hr_HR (LC_MONETARY): Likewise.
	* locales/ht_HT (LC_NUMERIC): Likewise.
	* locales/kk_KZ (LC_MONETARY): Likewise.
	* locales/kk_KZ (LC_NUMERIC): Likewise.
	* locales/ky_KG (LC_MONETARY): Likewise.
	* locales/ky_KG (LC_NUMERIC): Likewise.
	* locales/lv_LV (LC_MONETARY): Likewise.
	* locales/lv_LV (LC_NUMERIC): Likewise.
	* locales/mg_MG (LC_MONETARY): Likewise.
	* locales/mhr_RU (LC_MONETARY): Likewise.
	* locales/mk_MK (LC_MONETARY): Likewise.
	* locales/mk_MK (LC_NUMERIC): Likewise.
	* locales/mn_MN (LC_MONETARY): Likewise.
	* locales/nb_NO (LC_MONETARY): Likewise.
	* locales/nb_NO (LC_NUMERIC): Likewise.
	* locales/nl_AW (LC_MONETARY): Likewise.
	* locales/nl_NL (LC_MONETARY): Likewise.
	* locales/nn_NO (LC_MONETARY): Likewise.
	* locales/os_RU (LC_MONETARY): Likewise.
	* locales/pap_AW (LC_MONETARY): Likewise.
	* locales/pap_CW (LC_MONETARY): Likewise.
	* locales/ru_RU (LC_MONETARY): Likewise.
	* locales/ru_RU (LC_NUMERIC): Likewise.
	* locales/ru_UA (LC_MONETARY): Likewise.
	* locales/sk_SK (LC_MONETARY): Likewise.
	* locales/sk_SK (LC_NUMERIC): Likewise.
	* locales/sl_SI (LC_MONETARY): Likewise.
	* locales/sl_SI (LC_NUMERIC): Likewise.
	* locales/sq_MK (LC_MONETARY): Likewise.
	* locales/sv_SE (LC_MONETARY): Likewise.
	* locales/sv_SE (LC_NUMERIC): Likewise.
	* locales/tg_TJ (LC_MONETARY): Likewise.
	* locales/tt_RU (LC_MONETARY): Likewise.
	* locales/tt_RU@iqtelif (LC_MONETARY): Likewise.
	* locales/uk_UA (LC_MONETARY): Likewise.
	* locales/uk_UA (LC_NUMERIC): Likewise.
	* locales/unm_US (LC_MONETARY): Likewise.
	* locales/unm_US (LC_NUMERIC): Likewise.
	* locales/wo_SN (LC_MONETARY): Likewise.
2017-08-12 16:03:49 +02:00
Florian Weimer 8b2c63e4e2 assert: Suppress pedantic warning caused by statement expression 2017-08-11 15:36:08 +02:00