glibc:hjl/pr21864/master

Last commit made on 2017-08-13
Get this branch:
git clone -b hjl/pr21864/master https://git.launchpad.net/glibc

Branch merges

Branch information

Name:
hjl/pr21864/master
Repository:
lp:glibc

Recent commits

545a42f... by "H.J. Lu" <email address hidden>

Don't compile non-lib modules as lib modules [BZ #21864]

Some programs have more than one source files. These non-lib modules
should not be compiled with -DMODULE_NAME=libc. This patch puts these
non-lib modules in $(others-extras) and adds $(others-extras) to
all-nonlib.

 [BZ #21864]
 * Makerules (all-nonlib): Add $(others-extras).
 * catgets/Makefile (others-extras): New.
 * elf/Makefile (others-extras): Likewise.
 * nss/Makefile (others-extras): Likewise.

a6bd872... by Mike FABIAN <email address hidden>

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.

d68b451... by Mike FABIAN <email address hidden>

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.

70a6707... by Stanislav Brabec

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.

8b2c63e... by Florian Weimer

assert: Suppress pedantic warning caused by statement expression

86c6519... by Siddhesh Poyarekar <email address hidden>

benchtests: Print json in memmove benchmark

Make the memmove benchmarks (bench-memmove and bench-memmove-large)
print their output in JSON so that they can be evaluated using the
compare_strings.py script.

 * benchtests/bench-memmove-large.c: Print output in JSON
 format.
 * benchtests/bench-memmove.c: Likewise.

61c9829... by Siddhesh Poyarekar <email address hidden>

benchtests: Remove verification runs from benchmark tests

The test run is unnecessary and interferes with the benchmark. The
tests are done during make check, so they're unnecessary here.

 * benchtests/bench-memccpy.c (do_one_test): Remove checks.
 * benchtests/bench-memchr.c (do_one_test): Likewise.
 * benchtests/bench-memcpy-large.c (do_one_test): Likewise.
 * benchtests/bench-memcpy.c (do_one_test): Likewise.
 * benchtests/bench-memmove-large.c (do_one_test): Likewise.
 * benchtests/bench-memmove.c (do_one_test): Likewise.
 * benchtests/bench-memset-large.c (do_one_test): Likewise.
 * benchtests/bench-memset.c (do_one_test): Likewise.
 * benchtests/bench-string.h (test_init): Remove memsets.

925733a... by Rical Jasan <email address hidden>

manual: Rewrite the section on widths of integer types.

The manual contradicted itself by saying the number of bits in an
integer type needed to be computed, and then listing a number of
macros that later standards provided for exactly that. The entire
section has been reworked to provide those macros first, while
preserving the documentation of CHAR_BIT and the associated examples
within that context.

 * manual/lang.texi
 (Computing the Width of an Integer Data Type): Rename section
 to "Width of an Integer Type". Remove inaccurate statement
 regarding lack of C language facilities for determining width
 of integer types, and reorder content to improve flow and
 context of discussion.

4fcdfbf... by Rical Jasan <email address hidden>

manual: Update @standards for [__]va_copy.

The ISO version in which va_copy was introduced is made explicit, and
__va_copy is given @standards. The description is updated to be more
clear about the origins of each macro, and the reader is informed
these macros are now provided by the compiler (information previously
embedded in a Texinfo @comment).

 * lang.texi (va_copy): Change standard from ISO to C99.
 (__va_copy): Add standard and header annotation.
 Update description for clarity of origins and current use.

4d98ace... by Gabriel F. T. Gomes

powerpc: Restrict xssqrtqp operands to Vector Registers (bug 21941)

POWER ISA 3.0 introduces the xssqrtqp instructions, which expects
operands to be in Vector Registers (Altivec/VMX), even though this
instruction belongs to the Vector-Scalar Instruction Set.

In GCC's Extended Assembly for POWER, the 'wq' register constraint is
provided for use with IEEE 754 128-bit floating-point values. However,
this constraint does not limit the register allocation to Vector
Registers (Altivec/VMX) and could assign a Vector-Scalar Register (VSX)
to the operands of the instruction.

This patch changes the register constraint used in sqrtf128 from 'wq' to
'v', in order to request a Vector Register (Altivec/VMX) for use with
the xssqrtqp instruction.

Tested for powerpc64le and --with-cpu=power9.

 [BZ #21941]
 * sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrtf128): Since
 xssqrtqp requires operands to be in Vector Registers
 (Altivec/VMX), replace the register constraint 'wq' with 'v'.
 * sysdeps/powerpc/powerpc64le/power9/fpu/e_sqrtf128.c
 (__ieee754_sqrtf128): Likewise.