]> sourceware.org Git - glibc.git/log
glibc.git
6 years agotst-res_use_inet6: Enhance test to cover IPv4-to-IPv6 address mapping
Florian Weimer [Wed, 6 Sep 2017 11:43:01 +0000 (13:43 +0200)]
tst-res_use_inet6: Enhance test to cover IPv4-to-IPv6 address mapping

This requires more control over the response data, so it is now
determined by flags embedded in the query name.

6 years agoImprove utf8_gen.py to set the width for characters with Prepended_Concatenation_Mark...
Mike FABIAN [Wed, 6 Sep 2017 09:19:33 +0000 (11:19 +0200)]
Improve utf8_gen.py to set the width for characters with Prepended_Concatenation_Mark property to 1

[BZ #22070]
* localedata/unicode-gen/utf8_gen.py: Set the width for
characters with Prepended_Concatenation_Mark property to 1
* localedata/charmaps/UTF-8: Updated using the improved script.

6 years agoWrite all ranges of neighbouring characters with the same width using the range notat...
Mike FABIAN [Fri, 18 Aug 2017 08:12:29 +0000 (10:12 +0200)]
Write all ranges of neighbouring characters with the same width using the range notation in charmaps/UTF-8

Writing ranges of neighbouring characters with the same with like this

    <U000E0100>...<U000E01EF> 0

in charmaps/UTF-8 is more efficient than writing many single character lines
like:

    <U000E0100> 0
    <U000E0101> 0
    ...

[BZ #21750]
* unicode-gen/utf8_gen.py: Write all ranges of neighbouring characters
with the same width using the range notation in charmaps/UTF-8.

6 years agoPrefer new libm function wrappers for !LIBM_SVID_COMPAT.
Joseph Myers [Tue, 5 Sep 2017 23:35:55 +0000 (23:35 +0000)]
Prefer new libm function wrappers for !LIBM_SVID_COMPAT.

The initial obsoletion of SVID libm error handling left the old
wrappers and __kernel_standard still being used for new ports and
static linking, just with macro definitions of _LIB_VERSION and
matherr that meant symbols with those names were never actually used
and the code for different error handling variants could be optimized
out.

This patch cleans things up further by eliminating the
__kernel_standard use for new ports and static linking.  Now, the old
wrappers no longer generate any code in the !LIBM_SVID_COMPAT case,
while the new errno-only wrappers that were added for float128 support
are now also used for float, double and long double in that case.

The changes are generally straightforward.  The w_scalb*_compat
wrappers continue to be used (scalb is obsolescent in the sense of not
being supported for float128, but is present in supported standards -
the 2001 edition of POSIX and earlier XSI versions - so remains
supported for static linking and new ports, as do the float and long
double variants that are existing GNU extensions).  Those wrappers
would only call __kernel_standard in the _LIB_VERSION == _SVID_ case.
Since we would like to be able to compile most of glibc without
optimization, relying on a static function whose only use is under an
if (0) condition being optimized away to avoid an undefined
__kernel_standard reference may not be a good idea.  Thus, the
relevant code in the scalb wrappers has LIBM_SVID_COMPAT conditionals
added to guarantee it's not built at all in the case where
__kernel_standard does not exist.

Just as i386 has its own w_sqrt_compat.c, so w_sqrt.c is also added.
ia64 gets dummy w_*.c to prevent those files being built where they
would conflict with the ia64 libm, as with its existing w_*_compat.c.

Conditions disabling code for !LIBM_SVID_COMPAT are needed in both the
math/ wrappers and in the long double wrappers in ldbl-opt (to avoid
them setting up aliases and symbol versions for undefined symbols).  I
hope that future cleanups to how libm function aliases and symbol
versioning are done will eliminate the need for most of the ldbl-opt
wrappers.

Tested for x86_64 and x86, and with build-many-glibcs.py.

* sysdeps/generic/math-type-macros-double.h: Include
<math-svid-compat.h>.
(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
* sysdeps/generic/math-type-macros-float.h: Include
<math-svid-compat.h>.
(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
* sysdeps/generic/math-type-macros-ldouble.h: Include
<math-svid-compat.h>.
(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
* math/lgamma-compat.h (BUILD_LGAMMA): Include LIBM_SVID_COMPAT
condition.
* math/w_acos_compat.c: Condition contents on [LIBM_SVID_COMPAT].
* math/w_acosf_compat.c: Likewise.
* math/w_acosh_compat.c: Likewise.
* math/w_acoshf_compat.c: Likewise.
* math/w_acoshl_compat.c: Likewise.
* math/w_acosl_compat.c: Likewise.
* math/w_asin_compat.c: Likewise.
* math/w_asinf_compat.c: Likewise.
* math/w_asinl_compat.c: Likewise.
* math/w_atan2_compat.c: Likewise.
* math/w_atan2f_compat.c: Likewise.
* math/w_atan2l_compat.c: Likewise.
* math/w_atanh_compat.c: Likewise.
* math/w_atanhf_compat.c: Likewise.
* math/w_atanhl_compat.c: Likewise.
* math/w_cosh_compat.c: Likewise.
* math/w_coshf_compat.c: Likewise.
* math/w_coshl_compat.c: Likewise.
* math/w_exp10_compat.c: Likewise.
* math/w_exp10f_compat.c: Likewise.
* math/w_exp10l_compat.c: Likewise.
* math/w_exp2_compat.c: Likewise.
* math/w_exp2f_compat.c: Likewise.
* math/w_exp2l_compat.c: Likewise.
* math/w_fmod_compat.c: Likewise.
* math/w_fmodf_compat.c: Likewise.
* math/w_fmodl_compat.c: Likewise.
* math/w_hypot_compat.c: Likewise.
* math/w_hypotf_compat.c: Likewise.
* math/w_hypotl_compat.c: Likewise.
* math/w_j0_compat.c: Likewise.
* math/w_j0f_compat.c: Likewise.
* math/w_j0l_compat.c: Likewise.
* math/w_j1_compat.c: Likewise.
* math/w_j1f_compat.c: Likewise.
* math/w_j1l_compat.c: Likewise.
* math/w_jn_compat.c: Likewise.
* math/w_jnf_compat.c: Likewise.
* math/w_jnl_compat.c: Likewise.
* math/w_lgamma_r_compat.c: Likewise.
* math/w_lgammaf_r_compat.c: Likewise.
* math/w_lgammal_r_compat.c: Likewise.
* math/w_log10_compat.c: Likewise.
* math/w_log10f_compat.c: Likewise.
* math/w_log10l_compat.c: Likewise.
* math/w_log2_compat.c: Likewise.
* math/w_log2f_compat.c: Likewise.
* math/w_log2l_compat.c: Likewise.
* math/w_log_compat.c: Likewise.
* math/w_logf_compat.c: Likewise.
* math/w_logl_compat.c: Likewise.
* math/w_pow_compat.c: Likewise.
* math/w_powf_compat.c: Likewise.
* math/w_powl_compat.c: Likewise.
* math/w_remainder_compat.c: Likewise.
* math/w_remainderf_compat.c: Likewise.
* math/w_remainderl_compat.c: Likewise.
* math/w_sinh_compat.c: Likewise.
* math/w_sinhf_compat.c: Likewise.
* math/w_sinhl_compat.c: Likewise.
* math/w_sqrt_compat.c: Likewise.
* math/w_sqrtf_compat.c: Likewise.
* math/w_sqrtl_compat.c: Likewise.
* math/w_tgamma_compat.c: Likewise.
* math/w_tgammaf_compat.c: Likewise.
* math/w_tgammal_compat.c: Likewise.
* math/w_scalb_compat.c (sysv_scalb): Condition definition on
[LIBM_SVID_COMPAT].
(__scalb): Condition call to sysv_scalb on [LIBM_SVID_COMPAT].
* math/w_scalbf_compat.c (sysv_scalbf): Condition definition on
[LIBM_SVID_COMPAT].
(__scalbf): Condition call to sysv_scalbf on [LIBM_SVID_COMPAT].
* math/w_scalbl_compat.c (sysv_scalbl): Condition definition on
[LIBM_SVID_COMPAT].
(__scalbl): Condition call to sysv_scalbl on [LIBM_SVID_COMPAT].
* sysdeps/i386/fpu/w_sqrt.c: New file.
* sysdeps/ia64/fpu/w_acos.c: Likewise.
* sysdeps/ia64/fpu/w_acosf.c: Likewise.
* sysdeps/ia64/fpu/w_acosh.c: Likewise.
* sysdeps/ia64/fpu/w_acoshf.c: Likewise.
* sysdeps/ia64/fpu/w_acoshl.c: Likewise.
* sysdeps/ia64/fpu/w_acosl.c: Likewise.
* sysdeps/ia64/fpu/w_asin.c: Likewise.
* sysdeps/ia64/fpu/w_asinf.c: Likewise.
* sysdeps/ia64/fpu/w_asinl.c: Likewise.
* sysdeps/ia64/fpu/w_atan2.c: Likewise.
* sysdeps/ia64/fpu/w_atan2f.c: Likewise.
* sysdeps/ia64/fpu/w_atan2l.c: Likewise.
* sysdeps/ia64/fpu/w_atanh.c: Likewise.
* sysdeps/ia64/fpu/w_atanhf.c: Likewise.
* sysdeps/ia64/fpu/w_atanhl.c: Likewise.
* sysdeps/ia64/fpu/w_cosh.c: Likewise.
* sysdeps/ia64/fpu/w_coshf.c: Likewise.
* sysdeps/ia64/fpu/w_coshl.c: Likewise.
* sysdeps/ia64/fpu/w_exp.c: Likewise.
* sysdeps/ia64/fpu/w_exp10.c: Likewise.
* sysdeps/ia64/fpu/w_exp10f.c: Likewise.
* sysdeps/ia64/fpu/w_exp10l.c: Likewise.
* sysdeps/ia64/fpu/w_exp2.c: Likewise.
* sysdeps/ia64/fpu/w_exp2f.c: Likewise.
* sysdeps/ia64/fpu/w_exp2l.c: Likewise.
* sysdeps/ia64/fpu/w_expf.c: Likewise.
* sysdeps/ia64/fpu/w_expl.c: Likewise.
* sysdeps/ia64/fpu/w_fmod.c: Likewise.
* sysdeps/ia64/fpu/w_fmodf.c: Likewise.
* sysdeps/ia64/fpu/w_fmodl.c: Likewise.
* sysdeps/ia64/fpu/w_hypot.c: Likewise.
* sysdeps/ia64/fpu/w_hypotf.c: Likewise.
* sysdeps/ia64/fpu/w_hypotl.c: Likewise.
* sysdeps/ia64/fpu/w_lgamma_r.c: Likewise.
* sysdeps/ia64/fpu/w_lgammaf_r.c: Likewise.
* sysdeps/ia64/fpu/w_lgammal_r.c: Likewise.
* sysdeps/ia64/fpu/w_log.c: Likewise.
* sysdeps/ia64/fpu/w_log10.c: Likewise.
* sysdeps/ia64/fpu/w_log10f.c: Likewise.
* sysdeps/ia64/fpu/w_log10l.c: Likewise.
* sysdeps/ia64/fpu/w_log2.c: Likewise.
* sysdeps/ia64/fpu/w_log2f.c: Likewise.
* sysdeps/ia64/fpu/w_log2l.c: Likewise.
* sysdeps/ia64/fpu/w_logf.c: Likewise.
* sysdeps/ia64/fpu/w_logl.c: Likewise.
* sysdeps/ia64/fpu/w_pow.c: Likewise.
* sysdeps/ia64/fpu/w_powf.c: Likewise.
* sysdeps/ia64/fpu/w_powl.c: Likewise.
* sysdeps/ia64/fpu/w_remainder.c: Likewise.
* sysdeps/ia64/fpu/w_remainderf.c: Likewise.
* sysdeps/ia64/fpu/w_remainderl.c: Likewise.
* sysdeps/ia64/fpu/w_sinh.c: Likewise.
* sysdeps/ia64/fpu/w_sinhf.c: Likewise.
* sysdeps/ia64/fpu/w_sinhl.c: Likewise.
* sysdeps/ia64/fpu/w_sqrt.c: Likewise.
* sysdeps/ia64/fpu/w_sqrtf.c: Likewise.
* sysdeps/ia64/fpu/w_sqrtl.c: Likewise.
* sysdeps/ia64/fpu/w_tgamma.c: Likewise.
* sysdeps/ia64/fpu/w_tgammaf.c: Likewise.
* sysdeps/ia64/fpu/w_tgammal.c: Likewise.
* sysdeps/ieee754/dbl-64/w_exp_compat.c: Condition contents on
[LIBM_SVID_COMPAT].
* sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
* sysdeps/ieee754/k_standard.c: Likewise.
* sysdeps/ieee754/k_standardf.c: Likewise.
* sysdeps/ieee754/k_standardl.c: Likewise.
* sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-64-128/w_expl_compat.c: Condition
long_double_symbol call on [LIBM_SVID_COMPAT].
* sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c: Condition
long_double_symbol and compat_symbol calls on [LIBM_SVID_COMPAT].

6 years agoFix tests that are testing obsoleted functionality
Steve Ellcey [Tue, 5 Sep 2017 19:24:00 +0000 (12:24 -0700)]
Fix tests that are testing obsoleted functionality

* include/shlib-compat.h (TEST_COMPAT): New Macro.
* malloc/tst-mallocstate.c: Convert from test-skeleton
to test-driver.  Ifdef code using TEST_COMPAT macro.
* math/test-matherr-2.c: Ifdef test using TEST_COMPAT macro.
* math/test-matherr.c: Likewise.

6 years agoFix pcprofiledump cross-endian condition (bug 22086).
Joseph Myers [Tue, 5 Sep 2017 15:14:09 +0000 (15:14 +0000)]
Fix pcprofiledump cross-endian condition (bug 22086).

debug/pcprofiledump.c contains code that tries to handle other-endian
data.  This uses a condition "(word & 0xfffffff0) == bswap_32
(0xdeb00000)".  This condition is always false (the LHS always has the
low four bits zero, the RHS doesn't); a correct comparison would use
0x0fffffff.  This results in -Werror=tautological-compare build
failures with the tile version of bits/byteswap.h and mainline GCC.

https://sourceware.org/ml/libc-testresults/2017-q3/msg00400.html

pcprofiledump.c: In function 'main':
pcprofiledump.c:118:39: error: bitwise comparison always evaluates to false
[-Werror=tautological-compare]
   int must_swap = (word & 0xfffffff0) == bswap_32 (0xdeb00000);
                                       ^~

This patch fixes the condition.  Tested for x86_64, and with
build-many-glibcs.py that it fixes the build for tilegx-linux-gnu.
(Note that I have not tested the actual pcprofiledump functionality,
native or cross endian, which lacks any testsuite coverage.)

[BZ #22086]
* debug/pcprofiledump.c (main): Use byte-swapped mask when
comparing word with byte-swapped constant.

6 years agoAdd miq_NI locale for Miskito
Mike FABIAN [Thu, 31 Aug 2017 15:27:24 +0000 (17:27 +0200)]
Add miq_NI locale for Miskito

[BZ #20498]
* locale/iso-639.def: add Miskito.
* localedata/SUPPORTED: Add miq_NI/UTF-8.
* localedata/locales/miq_NI: New file.

6 years agoHide __chmod and __mkdir [BZ #18822]
H.J. Lu [Mon, 4 Sep 2017 20:38:36 +0000 (13:38 -0700)]
Hide __chmod and __mkdir [BZ #18822]

Hide internal __chmod and __mkdir functions to allow direct access
within libc.so and libc.a without using GOT nor PLT.

[BZ #18822]
* include/sys/stat.h (__chmod): Add libc_hidden_proto.
(__mkdir): Likewise.
* io/chmod.c (__chmod): Add libc_hidden_def.
* io/mkdir.c (__mkdir): Likewise.
* sysdeps/mach/hurd/chmod.c (__chmod): Likewise.
* sysdeps/mach/hurd/mkdir.c (__mkdir): Likewise.
* sysdeps/unix/sysv/linux/generic/chmod.c (__chmod): Likewise.
* sysdeps/unix/sysv/linux/generic/mkdir.c (__mkdir): Likewise.

6 years agoUpdate kernel version in syscall-names.list to 4.13.
Joseph Myers [Mon, 4 Sep 2017 20:16:07 +0000 (20:16 +0000)]
Update kernel version in syscall-names.list to 4.13.

As far as I can tell Linux 4.13 does not add any new syscalls not
included in syscall-names.list.  This patch updates the version number
in that file accordingly.

* sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
version to 4.13.

6 years agoFix bits/math-finite.h exp10 condition (bug 22082).
Joseph Myers [Mon, 4 Sep 2017 16:27:16 +0000 (16:27 +0000)]
Fix bits/math-finite.h exp10 condition (bug 22082).

bits/math-finite.h handles exp10 if __USE_GNU.  It should use the
condition __GLIBC_USE (IEC_60559_FUNCS_EXT), as in bits/mathcalls.h.
This patch fixes the condition.

Tested for x86_64.

[BZ #22082]
* math/bits/math-finite.h (exp10): Redirect if [__GLIBC_USE
(IEC_60559_FUNCS_EXT)], not [__USE_GNU].

6 years agomath.h: Warn about an already-defined log macro
Florian Weimer [Mon, 4 Sep 2017 08:52:28 +0000 (10:52 +0200)]
math.h: Warn about an already-defined log macro

This is a common programming error, and the cause of the problem is not
always obvious.

<tgmath.h> defines a log macro, but it includes <math.h> before that, so
that is compatible with the warning.

6 years agoUse Linux 4.13 in build-many-glibcs.py.
Joseph Myers [Mon, 4 Sep 2017 15:34:58 +0000 (15:34 +0000)]
Use Linux 4.13 in build-many-glibcs.py.

* scripts/build-many-glibcs.py (Context.checkout): Default Linux
kernel version to 4.13.

6 years agohurd: fix resolv/tst-resolv-res_init-skeleton.c build
Samuel Thibault [Sun, 3 Sep 2017 17:44:07 +0000 (19:44 +0200)]
hurd: fix resolv/tst-resolv-res_init-skeleton.c build

* resolv/tst-resolv-res_init-skeleton.c (run_res_init)
[!CLONE_NEWUTS]: Fail as unsupported if hostname is not NULL.

6 years agohurd: Fix build ot misc/tst-preadvwritev2-common.c
Samuel Thibault [Sun, 3 Sep 2017 15:48:33 +0000 (17:48 +0200)]
hurd: Fix build ot misc/tst-preadvwritev2-common.c

* misc/tst-preadvwritev2-common.c (RWF_HIPRI, RWF_DSYNC, RWF_SYNC,
RWF_NOWAIT): Define to 0 if undefined already.
(do_test_with_invalid_flags): Set invalid_flag to 2 if RWF_SUPPORTED
boils down to 0.

6 years agohurd: Fix rtld's strtoul_internal use through hurdlookup
Samuel Thibault [Sun, 3 Sep 2017 12:33:35 +0000 (14:33 +0200)]
hurd: Fix rtld's strtoul_internal use through hurdlookup

* sysdeps/mach/hurd/dl-sysdep.c (__strtoul_internal): New
function.

6 years agohurd: fix overriding rtld's __sbrk with the real implementation
Samuel Thibault [Sun, 3 Sep 2017 12:19:21 +0000 (14:19 +0200)]
hurd: fix overriding rtld's __sbrk with the real implementation

* sysdeps/mach/hurd/dl-sysdep.c (__sbrk): Add weak_function
qualifier.

6 years agohurd: mach/hurd/x86 also needs x86 tunables
Samuel Thibault [Sun, 3 Sep 2017 11:39:33 +0000 (13:39 +0200)]
hurd: mach/hurd/x86 also needs x86 tunables

* sysdeps/mach/hurd/x86/dl-sysdep.c: New file.

6 years agohurd: mach/hurd/i386 also needs mach/hurd/x86
Samuel Thibault [Sun, 3 Sep 2017 11:38:09 +0000 (13:38 +0200)]
hurd: mach/hurd/i386 also needs mach/hurd/x86

* sysdeps/mach/hurd/i386/Implies: Add mach/hurd/x86.

6 years agohurd: fix libm link
Samuel Thibault [Sun, 3 Sep 2017 03:32:10 +0000 (05:32 +0200)]
hurd: fix libm link

* sysdeps/x86/fpu/include/bits/fenv.h [NO_HIDDEN]: Redirect
__feraiseexcept_renamed to feraiseexcept instead of
__GI_feraiseexcept.

6 years agohurd: Fix libc link
Samuel Thibault [Sun, 3 Sep 2017 02:58:00 +0000 (04:58 +0200)]
hurd: Fix libc link

This follows db3d848 ('Build divdi3 only for architecture that required
it').

* sysdeps/mach/hurd/i386/Makefile
[$(subdir) = csu] (sysdep_routines): New rule: divdi3 object.
[$(subdir) = csu] (sysdep-only-routines): Likewise.
[$(subdir) = csu] (CFLAGS-divdi3.c): Likewise.

6 years agohurd: Fix libc link
Samuel Thibault [Sun, 3 Sep 2017 02:36:29 +0000 (04:36 +0200)]
hurd: Fix libc link

* sysdeps/posix/pause.c: Include <sigsetops.h>.
* sysdeps/posix/system.c: Include <sigsetops.h>.

6 years agohurd: Fix rtld link
Samuel Thibault [Sun, 3 Sep 2017 02:25:35 +0000 (04:25 +0200)]
hurd: Fix rtld link

* sysdeps/mach/hurd/dl-sysdep.c (__sbrk): New function.

6 years agohurd: Fix rtld link
Samuel Thibault [Sun, 3 Sep 2017 02:02:24 +0000 (04:02 +0200)]
hurd: Fix rtld link

dl-tunables.c now uses __access_noerrno in addition to __access.

* sysdeps/mach/hurd/dl-sysdep.c (__access_noerrno): New function.

6 years agohurd: Fix p{read,write}{,v64}v2.c build
Samuel Thibault [Sun, 3 Sep 2017 01:03:40 +0000 (03:03 +0200)]
hurd: Fix p{read,write}{,v64}v2.c build

* misc/preadv2.c: Include <errno.h>.
* misc/preadv64v2.c: Include <errno.h>.
* misc/pwritev2.c: Include <errno.h>.
* misc/pwritev64v2.c: Include <errno.h>.
* sysdeps/posix/preadv2.c: Include <errno.h>.
* sysdeps/posix/preadv64v2.c: Include <errno.h>.
Fix <unistd.h> inclusion.
* sysdeps/posix/pwritev2.c: Include <errno.h>.
* sysdeps/posix/pwritev64v2.c: Include <errno.h>.

6 years agohurd: Fix p{read,write}v64v2.c build
Samuel Thibault [Sun, 3 Sep 2017 01:00:32 +0000 (03:00 +0200)]
hurd: Fix p{read,write}v64v2.c build

* sysdeps/posix/preadv64v2.c: Use off64_t instead of off_t.
* sysdeps/posix/pwritev64v2.c: Use off64_t instead of off_t.

6 years agohurd: Fix p{read,write}{,v64}v2.c build
Samuel Thibault [Sun, 3 Sep 2017 00:45:06 +0000 (02:45 +0200)]
hurd: Fix p{read,write}{,v64}v2.c build

* sysdeps/posix/preadv2.c: Use off_t instead of OFF_T.
* sysdeps/posix/preadv64v2.c: Use off_t instead of OFF_T.
* sysdeps/posix/pwritev2.c: Use off_t instead of OFF_T.
* sysdeps/posix/pwritev64v2.c: Use off_t instead of OFF_T.

6 years agohurd: Fix getting ssize_t for <sys/socket.h>
Samuel Thibault [Sun, 3 Sep 2017 00:22:00 +0000 (02:22 +0200)]
hurd: Fix getting ssize_t for <sys/socket.h>

* sysdeps/mach/hurd/bits/socket.h: Include <sys/types.h> instead of
just <bits/types.h>.

6 years agohurd: Fix sigsetops.h macros
Samuel Thibault [Sat, 2 Sep 2017 23:45:19 +0000 (01:45 +0200)]
hurd: Fix sigsetops.h macros

* sysdeps/generic/sigsetops.h: Remove spurious #endif.
(__sigismember, __sigaddset, __sigdelset): Fix referencing set
parameter.

6 years agosysdeps/generic/sigsetops.h: Remove spurious #endif
Samuel Thibault [Sat, 2 Sep 2017 23:08:49 +0000 (01:08 +0200)]
sysdeps/generic/sigsetops.h: Remove spurious #endif

6 years agoObsolete pow10 functions.
Joseph Myers [Fri, 1 Sep 2017 21:13:18 +0000 (21:13 +0000)]
Obsolete pow10 functions.

This patch obsoletes the pow10, pow10f and pow10l functions (makes
them into compat symbols, not available for new ports or static
linking).  The exp10 names for these functions are standardized (in TS
18661-4) and were added in the same glibc version (2.1) as pow10 so
source code can change to use them without any loss of portability.
Since pow10 is deliberately not provided for _Float128, only exp10,
this slightly simplifies moving to the new wrapper templates in the
!LIBM_SVID_COMPAT case, by avoiding needing to arrange for pow10,
pow10f and pow10l to be defined by those templates.

Tested for x86_64, and with build-many-glibcs.py.

* manual/math.texi (pow10): Do not document.
(pow10f): Likewise.
(pow10l): Likewise.
* math/bits/mathcalls.h [__USE_GNU] (pow10): Do not declare.
* math/bits/math-finite.h [__USE_GNU] (pow10): Likewise.
* math/libm-test-exp10.inc (pow10_test): Remove.
(do_test): Do not call pow10.
* math/w_exp10_compat.c (pow10): Make into compat symbol.
[NO_LONG_DOUBLE] (pow10l): Likewise.
* math/w_exp10f_compat.c (pow10f): Likewise.
* math/w_exp10l_compat.c (pow10l): Likewise.
* sysdeps/ia64/fpu/e_exp10.S: Include <shlib-compat.h>.
(pow10): Make into compat symbol.
* sysdeps/ia64/fpu/e_exp10f.S: Include <shlib-compat.h>.
(pow10f): Make into compat symbol.
* sysdeps/ia64/fpu/e_exp10l.S: Include <shlib-compat.h>.
(pow10l): Make into compat symbol.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Remove
pow10.
(CFLAGS-nldbl-pow10.c): Remove variable..
* sysdeps/ieee754/ldbl-opt/nldbl-pow10.c: Remove file.
* sysdeps/ieee754/ldbl-opt/w_exp10_compat.c (pow10l): Condition on
[SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)].
* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c (compat_symbol):
Undefine and redefine.
(pow10l): Make into compat symbol.
* sysdeps/aarch64/libm-test-ulps: Remove pow10 ulps.
* sysdeps/alpha/fpu/libm-test-ulps: Likewise.
* sysdeps/arm/libm-test-ulps: Likewise.
* sysdeps/hppa/fpu/libm-test-ulps: Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Likewise.
* sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
* sysdeps/microblaze/libm-test-ulps: Likewise.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/nios2/libm-test-ulps: Likewise.
* sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
* sysdeps/powerpc/nofpu/libm-test-ulps: Likewise.
* sysdeps/s390/fpu/libm-test-ulps: Likewise.
* sysdeps/sh/libm-test-ulps: Likewise.
* sysdeps/sparc/fpu/libm-test-ulps: Likewise.
* sysdeps/tile/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.

6 years ago2017-09-01 Paul Pluzhnikov <ppluzhnikov@google.com>
Paul Pluzhnikov [Fri, 1 Sep 2017 18:35:55 +0000 (11:35 -0700)]
2017-09-01  Paul Pluzhnikov  <ppluzhnikov@google.com>

* stdlib/tst-atexit-common.c (crumbs): Ensure correct size.

6 years agoUpdate tst-regex.c/tst-regex2.c for old ChangeLog move
H.J. Lu [Fri, 1 Sep 2017 17:20:49 +0000 (10:20 -0700)]
Update tst-regex.c/tst-regex2.c for old ChangeLog move

* posix/tst-regex.c (do_test): Replace "../ChangeLog.8" with
"../ChangeLog.old/ChangeLog.8".
* posix/tst-regex2.c (do_test): Replace "../ChangeLog.14" with
"../ChangeLog.old/ChangeLog.14".

6 years agoCredit Ulrich Drepper for libpthread in contrib.texi
H.J. Lu [Fri, 1 Sep 2017 17:18:37 +0000 (10:18 -0700)]
Credit Ulrich Drepper for libpthread in contrib.texi

* manual/contrib.texi: Credit Ulrich Drepper for the POSIX
Threads Library.

6 years agoInclude <string.h> for strcmp call from sysdeps/unix/sysv/linux/gentempfd.c.
Joseph Myers [Fri, 1 Sep 2017 17:14:43 +0000 (17:14 +0000)]
Include <string.h> for strcmp call from sysdeps/unix/sysv/linux/gentempfd.c.

* sysdeps/unix/sysv/linux/gentempfd.c: Include <string.h>.

6 years agoRemove Roland McGrath/Ulrich Drepper et al. from DSO banner
H.J. Lu [Fri, 1 Sep 2017 17:09:08 +0000 (10:09 -0700)]
Remove Roland McGrath/Ulrich Drepper et al. from DSO banner

* csu/version.c (banner): Remove "by Roland McGrath et al.".
* nptl/Banner: Remove "by Ulrich Drepper et al.".

6 years ago2017-09-01 Paul Pluzhnikov <ppluzhnikov@google.com>
Paul Pluzhnikov [Fri, 1 Sep 2017 16:31:13 +0000 (09:31 -0700)]
2017-09-01  Paul Pluzhnikov  <ppluzhnikov@google.com>

* stdlib/tst-atexit-common.c (do_test): Test support for at least
32 atexit handlers.

6 years agomath/math.h (HUGE_VAL): Improve commentary.
Zack Weinberg [Fri, 1 Sep 2017 15:19:47 +0000 (11:19 -0400)]
math/math.h (HUGE_VAL): Improve commentary.

6 years agoMove all old ChangeLogs to a top-level ChangeLog.old directory.
Zack Weinberg [Fri, 1 Sep 2017 13:31:43 +0000 (09:31 -0400)]
Move all old ChangeLogs to a top-level ChangeLog.old directory.

6 years agolinux: Implement tmpfile with O_TMPFILE (BZ#21530)
Adhemerval Zanella [Mon, 26 Jun 2017 14:52:14 +0000 (11:52 -0300)]
linux: Implement tmpfile with O_TMPFILE (BZ#21530)

This patch adds O_TMPFILE support to tmpfile on Linux.  This is
similar to the previous suggestion by Andreas Schwab [1] with the
difference the file descriptor creation is parameterized to
compartmentalize Linux only open flags (O_TMPFILE) on sysdeps.

Checked on x86_64-linux-gnu.

Adhemerval Zanella  <adhemerval.zanella@linaro.org>
Andreas Schwab  <schwab@suse.de>

[BZ #21530]
* include/stdio.h (__gen_tempfd): New function.
* stdio-common/Makefile (routines): Add gentempfd.
* stdio-common/gentempfd.c: New file.
* sysdeps/unix/sysv/linux/gentempfd.c: Likewise.
* stdio-common/tmpfile.c (tmpfile): First try to use a system specific
unnamed file first.

[1] https://sourceware.org/ml/libc-alpha/2017-06/msg01293.html

6 years agoRemove obsolete notes at top level of source tree.
Zack Weinberg [Fri, 1 Sep 2017 12:04:22 +0000 (08:04 -0400)]
Remove obsolete notes at top level of source tree.

 * BUGS, CONFORMANCE, NAMESPACE, WUR-REPORT: Deleted.
 * README.pretty-printers, README.tunables: Move to manual/.

6 years agogetaddrinfo: Fix error handling in gethosts [BZ #21915] [BZ #21922]
Florian Weimer [Fri, 1 Sep 2017 07:34:29 +0000 (09:34 +0200)]
getaddrinfo: Fix error handling in gethosts [BZ #21915] [BZ #21922]

The old code uses errno as the primary indicator for success or
failure.  This is wrong because errno is only set for specific
combinations of the status return value and the h_errno variable.

6 years agogetaddrinfo: Return EAI_NODATA if gethostbyname2_r reports NO_DATA [BZ #21922]
Florian Weimer [Fri, 1 Sep 2017 07:15:36 +0000 (09:15 +0200)]
getaddrinfo: Return EAI_NODATA if gethostbyname2_r reports NO_DATA [BZ #21922]

6 years agosupport_chroot_create: Add support for /etc/hosts, /etc/host.conf
Florian Weimer [Fri, 1 Sep 2017 06:58:07 +0000 (08:58 +0200)]
support_chroot_create: Add support for /etc/hosts, /etc/host.conf

6 years agogetaddrinfo: In gaih_inet, use h_errno for certain status values only
Florian Weimer [Fri, 1 Sep 2017 06:57:52 +0000 (08:57 +0200)]
getaddrinfo: In gaih_inet, use h_errno for certain status values only

h_errno is not set for NSS_STATUS_SUCCESS, so its value might not be
accurate at this point.

6 years agogetaddrinfo: Properly set errno for NSS function lookup failure
Florian Weimer [Fri, 1 Sep 2017 06:57:28 +0000 (08:57 +0200)]
getaddrinfo: Properly set errno for NSS function lookup failure

6 years agogetaddrinfo: Use &h_errno has the h_errno pointer
Florian Weimer [Fri, 1 Sep 2017 06:57:07 +0000 (08:57 +0200)]
getaddrinfo: Use &h_errno has the h_errno pointer

This simplifies the code because it is not necessary to propagate the
temporary h_errno value to the thread-local variable.  It also increases
compatibility with NSS modules which update only one of the two places.

6 years agogetaddrinfo: Use &errno has the errno pointer
Florian Weimer [Fri, 1 Sep 2017 06:56:46 +0000 (08:56 +0200)]
getaddrinfo: Use &errno has the errno pointer

Similar code in nss/getXXbyYY_r.c is already using &errno as the
argument.

6 years agoILP32 math changes
Steve Ellcey [Thu, 31 Aug 2017 20:38:11 +0000 (13:38 -0700)]
ILP32 math changes

* sysdeps/aarch64/fpu/s_llrint.c (OREG_SIZE): New macro.
* sysdeps/aarch64/fpu/s_llround.c (OREG_SIZE): Likewise.
* sysdeps/aarch64/fpu/s_llrintf.c (OREGS, IREGS): Remove.
(IREG_SIZE, OREG_SIZE): New macros.
* sysdeps/aarch64/fpu/s_llroundf.c: (OREGS, IREGS): Remove.
(IREG_SIZE, OREG_SIZE): New macros.
* sysdeps/aarch64/fpu/s_lrintf.c (IREGS): Remove.
(IREG_SIZE): New macro.
* sysdeps/aarch64/fpu/s_lroundf.c (IREGS): Remove.
(IREG_SIZE): New macro.
* sysdeps/aarch64/fpu/s_lrint.c (get-rounding-mode.h, stdint.h):
New includes.
(IREG_SIZE, OREG_SIZE): Initialize if not already set.
(OREGS, IREGS): Set based on IREG_SIZE and OREG_SIZE.
(__CONCATX): Handle exceptions correctly on large values that may
set FE_INVALID.
* sysdeps/aarch64/fpu/s_lround.c (IREG_SIZE, OREG_SIZE):
Initialize if not already set.
        (OREGS, IREGS): Set based on IREG_SIZE and OREG_SIZE.

6 years agoRemove NO_CANCELLATION macro
Adhemerval Zanella [Thu, 3 Aug 2017 17:29:06 +0000 (14:29 -0300)]
Remove NO_CANCELLATION macro

The NO_CANCELLATION macro is used currently on generic headers to
define non cancellable syscalls and on Linux fcntl to implement the non
cancellable variation.  Former should be single-handled by not-cancel.h
header and former could be simplified build both cancellable and non
cancellable for default objects and alias the non-cancellable to default
one for rtld ones (since Linux already support cancellation as default).

This patch thus removes the NO_CANCELLATION macro and its usage.  The
generic non cancellable fcntl is route to internal fcntl.

Checked on x86_64-linux-gnu and i686-linux-gnu.  Also checked with
a build again major ABIs.

* sysdeps/generic/not-cancel.h (NO_CANCELLATION): Remove macro.
* sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h
(NO_CANCELLATION): Likewise.
* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
(NO_CANCELLATION): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
(NO_CANCELLATION): Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (NO_CANCELLATION):
Likewise
* sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/tile/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (NO_CANCELLATION):
Likewise.
* sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Add
hidden prototype.
* sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Define only
for !IS_IN (rtld) and remove NO_CANCELLATION usage.

6 years agoChange argument type passed to ifunc resolvers
Steve Ellcey [Thu, 31 Aug 2017 17:34:55 +0000 (10:34 -0700)]
Change  argument type passed to ifunc resolvers

* sysdeps/aarch64/dl-irel.h: (elf_ifunc_invoke): Change argument type
in resolver call.

6 years agolibc-symbols.h: Remove definition of internal_function
Florian Weimer [Thu, 31 Aug 2017 16:31:04 +0000 (18:31 +0200)]
libc-symbols.h: Remove definition of internal_function

6 years agostdlib: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 16:30:38 +0000 (18:30 +0200)]
stdlib: Remove internal_function attribute

6 years agostdio-common: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 16:30:02 +0000 (18:30 +0200)]
stdio-common: Remove internal_function attribute

6 years agoposix: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 16:25:55 +0000 (18:25 +0200)]
posix: Remove internal_function attribute

6 years agonptl: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 15:50:26 +0000 (17:50 +0200)]
nptl: Remove internal_function attribute

6 years agoio: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 15:41:25 +0000 (17:41 +0200)]
io: Remove internal_function attribute

6 years agoinet: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 15:35:16 +0000 (17:35 +0200)]
inet: Remove internal_function attribute

6 years agoSimplify NAN definitions.
Joseph Myers [Thu, 31 Aug 2017 16:39:25 +0000 (16:39 +0000)]
Simplify NAN definitions.

Similar to my patches for HUGE_VAL and INFINITY. this patch eliminates
the bits/nan.h headers.  __builtin_nanf ("") is used to define NAN for
GCC 3.3 and later; the fallback is (0.0f / 0.0f), which is a constant
expression for a quiet NaN of type float, but raises a spurious
"invalid" exception outside static initializers, which seems the best
that can be done purely in standard C.  Again, if anyone actually uses
a compiler with its own incompatible extension for producing a
constant quiet NaN, we can add compiler conditionals.

Tested for x86_64.

*  math/math.h [__USE_ISOC99] (NAN): Define directly here.  Do not
include <bits/nan.h>.
* math/Makefile (headers): Remove bits/nan.h.
* bits/nan.h: Remove.
* sysdeps/ieee754/bits/nan.h: Likewise.
* sysdeps/mips/bits/nan.h: Likewise.

6 years agoSimplify INFINITY definitions.
Joseph Myers [Thu, 31 Aug 2017 16:12:46 +0000 (16:12 +0000)]
Simplify INFINITY definitions.

Similar to my patch for HUGE_VAL, this patch eliminates the bits/inf.h
headers and just unconditionally uses the same definitions as the
sysdeps/ieee754 version did (__builtin_inff () for GCC >= 3.3,
otherwise HUGE_VALF), directly in math.h, so removing an unnecessary
level of indirection.

Tested for x86_64.

* math/math.h [__USE_ISOC99] (INFINITY): Define directly here.  Do
not include <bits/inf.h>.
* math/Makefile (headers): Remove bits/inf.h.
* bits/inf.h: Remove.
* sysdeps/ieee754/bits/inf.h: Likewise.

6 years agoSimplify HUGE_VAL definitions.
Joseph Myers [Thu, 31 Aug 2017 15:50:50 +0000 (15:50 +0000)]
Simplify HUGE_VAL definitions.

There are various bits/huge_val*.h headers to define HUGE_VAL and
related macros.  All of them use __builtin_huge_val etc. for GCC 3.3
and later.  Then there are various fallbacks, such as using a large
hex float constant for GCC 2.96 and later, or using unions (with or
without compound literals) to construct the bytes of an infinity, with
this last being the reason for having architecture-specific files.
Supporting TS 18661-3 _FloatN / _FloatNx types that have the same
format as other supported types will mean adding more such macros;
needing to add more headers for them doesn't seem very desirable.

The fallbacks based on bytes of the representation of an infinity do
not meet the standard requirements for a constant expression.  At
least one of them is also wrong: sysdeps/sh/bits/huge_val.h is
producing a mixed-endian representation which does not match what GCC
does.

This patch eliminates all those headers, defining the macros directly
in math.h.  For GCC 3.3 and later, the built-in functions are used as
now.  For other compilers, a large constant 1e10000 (with appropriate
suffix) is used.  This is like the fallback for GCC 2.96 and later,
but without using hex floats (which have no apparent advantage here).
It is unambiguously valid standard C for all floating-point formats
with infinities, which covers all formats supported by glibc or likely
to be supported by glibc in future (C90 DR#025 said that if a
floating-point format represents infinities, all real values lie
within the range of representable values, so the constraints for
constant expressions are not violated), but may generate compiler
warnings and wouldn't handle the TS 18661-1 FENV_ROUND pragma
correctly.  If someone is actually using a compiler with glibc that
does not claim to be GCC 3.3 or later, but which has a better way to
define the HUGE_VAL macros, we can always add compiler conditionals in
with alternative definitions.

I intend to make similar changes for INF and NAN.  The SNAN macros
already just use __builtin_nans etc. with no fallback for compilers
not claiming to be GCC 3.3 or later.

Tested for x86_64.

* math/math.h: Do not include bits/huge_val.h, bits/huge_valf.h,
bits/huge_vall.h or bits/huge_val_flt128.h.
(HUGE_VAL): Define directly here.
[__USE_ISOC99] (HUGE_VALF): Likewise.
[__USE_ISOC99] (HUGE_VALL): Likewise.
[__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
(HUGE_VAL_F128): Likewise.
* math/Makefile (headers): Remove bits/huge_val.h,
bits/huge_valf.h, bits/huge_vall.h and bits/huge_val_flt128.h.
* bits/huge_val.h: Remove.
* bits/huge_val_flt128.h: Likewise.
* bits/huge_valf.h: Likewise.
* bits/huge_vall.h: Likewise.
* sysdeps/ia64/bits/huge_vall.h: Likewise.
* sysdeps/ieee754/bits/huge_val.h: Likewise.
* sysdeps/ieee754/bits/huge_valf.h: Likewise.
* sysdeps/m68k/m680x0/bits/huge_vall.h: Likewise.
* sysdeps/sh/bits/huge_val.h: Likewise.
* sysdeps/sparc/bits/huge_vall.h: Likewise.
* sysdeps/x86/bits/huge_vall.h: Likewise.

6 years agoelf: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 14:59:37 +0000 (16:59 +0200)]
elf: Remove internal_function attribute

6 years agogmon: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 14:16:07 +0000 (16:16 +0200)]
gmon: Remove internal_function attribute

6 years agodlfcn: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 14:12:03 +0000 (16:12 +0200)]
dlfcn: Remove internal_function attribute

6 years agoresolv: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 14:07:52 +0000 (16:07 +0200)]
resolv: Remove internal_function attribute

6 years agodirent: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 14:02:40 +0000 (16:02 +0200)]
dirent: Remove internal_function attribute

6 years agoLinux getcwd: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 13:33:27 +0000 (15:33 +0200)]
Linux getcwd: Remove internal_function attribute

6 years agotime: Remove the internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 13:58:09 +0000 (15:58 +0200)]
time: Remove the internal_function attribute

6 years agoiconv, intl, locale, wcsmbs: Remove internal_function
Florian Weimer [Tue, 15 Aug 2017 15:52:59 +0000 (17:52 +0200)]
iconv, intl, locale, wcsmbs: Remove internal_function

Also adjust parts of the time subdirectory.

6 years agoaio: Remove internal_function function attribute
Florian Weimer [Thu, 31 Aug 2017 13:57:00 +0000 (15:57 +0200)]
aio: Remove internal_function function attribute

6 years agomisc: Remove internal_function function attribute
Florian Weimer [Thu, 31 Aug 2017 13:56:45 +0000 (15:56 +0200)]
misc: Remove internal_function function attribute

6 years agoNSS: Remove internal_function function attribute
Florian Weimer [Thu, 31 Aug 2017 13:56:32 +0000 (15:56 +0200)]
NSS: Remove internal_function function attribute

6 years agomalloc: Remove the internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 13:56:21 +0000 (15:56 +0200)]
malloc: Remove the internal_function attribute

6 years agosunrpc: Remove internal_function attribute
Florian Weimer [Thu, 31 Aug 2017 13:55:36 +0000 (15:55 +0200)]
sunrpc: Remove internal_function attribute

6 years agomalloc: Resolve compilation failure in NDEBUG mode
Florian Weimer [Thu, 31 Aug 2017 12:55:11 +0000 (14:55 +0200)]
malloc: Resolve compilation failure in NDEBUG mode

In _int_free, the locked variable is not used if NDEBUG is defined.

6 years agoPlace $(elf-objpfx)sofini.os last [BZ #22051]
H.J. Lu [Thu, 31 Aug 2017 13:28:31 +0000 (06:28 -0700)]
Place $(elf-objpfx)sofini.os last [BZ #22051]

Since sofini.os terminates .eh_frame section, it should be placed last.

[BZ #22051]
* Makerules (build-module-helper-objlist): Filter out
$(elf-objpfx)sofini.os.
(build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is
needed.

6 years agolibio: Assume _LIBC, weak_alias, errno, (__set_)errno &c are defined
Florian Weimer [Thu, 31 Aug 2017 12:07:23 +0000 (14:07 +0200)]
libio: Assume _LIBC, weak_alias, errno, (__set_)errno &c are defined

Do not define _POSIX_SOURCE.

6 years agomalloc: Change top_check return type to void
Florian Weimer [Thu, 31 Aug 2017 10:02:59 +0000 (12:02 +0200)]
malloc: Change top_check return type to void

After commit ec2c1fcefb200c6cb7e09553f3c6af8815013d83,
(malloc: Abort on heap corruption, without a backtrace), the function
always returns 0.

6 years agoFix decimal point and thousands separator in es_CU locale to agree with CLDR.
Mike FABIAN [Thu, 31 Aug 2017 10:56:07 +0000 (12:56 +0200)]
Fix decimal point and thousands separator in es_CU locale to agree with CLDR.

[BZ #15332]
* locales/es_CU (LC_MONETARY): use “,” for mon_decimal_point
and “.” for mon_thousands_sep (to agree with CLDR)
* locales/es_CU (LC_NUMERIC): Likewise.

6 years agoRemove redundant data in li_BE which is identical to the data in li_NL
Akhilesh Kumar [Wed, 30 Aug 2017 13:43:45 +0000 (19:13 +0530)]
Remove redundant data in li_BE which is identical to the data in li_NL

[BZ #22044]
* locales/li_BE (LC_TIME): copy "li_NL".

6 years agoFix mcontext_t sigcontext namespace (bug 21457).
Joseph Myers [Wed, 30 Aug 2017 22:02:04 +0000 (22:02 +0000)]
Fix mcontext_t sigcontext namespace (bug 21457).

This patch completes the ucontext.h namespace fixes by fixing issues
related to the use of struct sigcontext as mcontext_t, and inclusion
of <bits/sigcontext.h> even when struct sigcontext is not so used.

Inclusion of <bits/sigcontext.h> by <sys/ucontext.h> is removed; the
way to get the sigcontext structure is by including <signal.h> (in a
context where __USE_MISC is defined); the sysdeps/generic version of
sys/ucontext.h keeps the inclusion by necessity, with a comment about
how this is not namespace-clean, but the only configuration that used
it, MicroBlaze, gets its own version of the header in this patch.
Where mcontext_t was typedefed to struct sigcontext, the contents of
struct sigcontext are inserted (with appropriate namespace handling to
prefix fields with __ when __USE_MISC is not defined); review should
check that this has been done correctly in each case, whether the
definition of struct sigcontext comes from glibc headers or from the
Linux kernel.  This changes C++ name mangling on affected
architectures (which do not include x86_64/x86).

Tested for x86_64, and with build-many-glibcs.py.

2017-08-14  Joseph Myers  <joseph@codesourcery.com>

[BZ #21457]
* sysdeps/arm/sys/ucontext.h: Do not include <bits/sigcontext.h>.
* sysdeps/generic/sys/ucontext.h: Add comment about use of struct
sigcontext and namespace requirements.
* sysdeps/i386/sys/ucontext.h: Do not include <bits/sigcontext.h>.
* sysdeps/m68k/sys/ucontext.h: Likewise.
* sysdeps/mips/sys/ucontext.h: Likewise.  Include <bits/types.h>.
* sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
(__ctx): Define earlier.
(mcontext_t): Define structure contents rather than using struct
sigcontext.
* sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym (oEXTENSION): Use
__glibc_reserved1 instead of __reserved.
* sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
(__ctx): Define earlier.
(mcontext_t): Define structure contents rather than using struct
sigcontext.
* sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym: Use
mcontext_t instead of struct sigcontext.
* sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
(__ctx): Define earlier.
(mcontext_t): Define structure contents rather than using struct
sigcontext.
* sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
(__ctx): Define earlier.
(mcontext_t): Define structure contents rather than using struct
sigcontext.
* sysdeps/unix/sysv/linux/ia64/makecontext.c (__makecontext): Use
mcontext_t instead of struct sigcontext.
* sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym: Use
mcontext_t instead of struct sigcontext.
* sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
(__ctx): New macro.
(struct __ia64_fpreg_mcontext): New type.
(mcontext_t): Define structure contents rather than using struct
sigcontext.
(_SC_GR0_OFFSET): Use mcontext_t instead of struct sigcontext.
(uc_sigmask): Define using __ctx.
(uc_stack): Likewise.
* sysdeps/unix/sysv/linux/ia64/sys/procfs.h: Include
<bits/sigcontext.h>.
* sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
* sysdeps/unix/sysv/linux/m68k/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
* sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h: New file.
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
* sysdeps/unix/sysv/linux/nios2/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
* sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
* sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
* sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Do not include
<bits/sigcontext.h>.
(__ctx): Define earlier.
(mcontext_t): Define structure contents rather than using struct
sigcontext.
* sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Do not include
<bits/sigcontext.h>.  Include <bits/types.h>.
* conform/Makefile (test-xfail-XPG42/signal.h/conform): Remove.
(test-xfail-XPG42/sys/wait.h/conform): Likewise.
(test-xfail-XPG42/ucontext.h/conform): Likewise.
(test-xfail-UNIX98/signal.h/conform): Likewise.
(test-xfail-UNIX98/sys/wait.h/conform): Likewise.
(test-xfail-UNIX98/ucontext.h/conform): Likewise.
(test-xfail-XOPEN2K/signal.h/conform): Likewise.
(test-xfail-XOPEN2K/sys/wait.h/conform): Likewise.
(test-xfail-XOPEN2K/ucontext.h/conform): Likewise.
(test-xfail-POSIX2008/signal.h/conform): Likewise.
(test-xfail-POSIX2008/sys/wait.h/conform): Likewise.
(test-xfail-XOPEN2K8/signal.h/conform): Likewise.
(test-xfail-XOPEN2K8/sys/wait.h/conform): Likewise.

6 years agodynarray: Set errno on overflow-induced allocation failure
Florian Weimer [Wed, 30 Aug 2017 18:10:56 +0000 (20:10 +0200)]
dynarray: Set errno on overflow-induced allocation failure

This allows the caller to return directly on such an error, with an
appropriate errno value.

6 years agomalloc: Remove corrupt arena flag
Florian Weimer [Wed, 30 Aug 2017 15:16:08 +0000 (17:16 +0200)]
malloc: Remove corrupt arena flag

This is no longer needed because we now abort immediately
once heap corruption is detected.

6 years agomalloc: Remove check_action variable [BZ #21754]
Florian Weimer [Wed, 30 Aug 2017 17:29:38 +0000 (19:29 +0200)]
malloc: Remove check_action variable [BZ #21754]

Clean up calls to malloc_printerr and trim its argument list.

This also removes a few bits of work done before calling
malloc_printerr (such as unlocking operations).

The tunable/environment variable still enables the lightweight
additional malloc checking, but mallopt (M_CHECK_ACTION)
no longer has any effect.

6 years agoaarch64: Fix tst-makecontext3 in ILP32 mode.
Steve Ellcey [Wed, 30 Aug 2017 16:25:51 +0000 (09:25 -0700)]
aarch64: Fix tst-makecontext3 in ILP32 mode.

* sysdeps/unix/sysv/linux/aarch64/makecontext.c (__makecontext):
Use pointer to uint64_t instead of long int for sp.

6 years agomalloc: Abort on heap corruption, without a backtrace [BZ #21754]
Florian Weimer [Wed, 30 Aug 2017 14:39:41 +0000 (16:39 +0200)]
malloc: Abort on heap corruption, without a backtrace [BZ #21754]

The stack trace printing caused deadlocks and has been itself been
targeted by code execution exploits.

6 years agoDo not scale NPTL tests with available number of CPUs
Florian Weimer [Wed, 30 Aug 2017 14:20:20 +0000 (16:20 +0200)]
Do not scale NPTL tests with available number of CPUs

On very large multi-processor systems, creating hundreds of threads
runs into a test time out.  The tests do not seem to benefit from
massive over-scheduling.

6 years agoUse “.” in thousands_sep in the ca_ES locale
Mike FABIAN [Wed, 30 Aug 2017 13:19:39 +0000 (15:19 +0200)]
Use “.” in thousands_sep in the ca_ES locale

[BZ #16148]
* locales/ca_ES (LC_NUMERIC): Use “.” in thousands_sep.
And make it more readable by using ASCII.

6 years agoAdd country_name for mni_IN
Mike FABIAN [Wed, 30 Aug 2017 09:31:44 +0000 (15:01 +0530)]
Add country_name for mni_IN

[BZ #22022]
* locales/mni_IN (LC_ADDRESS): Add country_name.

6 years agoFix abbreviated weeks and months for Somali to agree with CLDR
Akhilesh Kumar [Wed, 30 Aug 2017 08:39:02 +0000 (14:09 +0530)]
Fix abbreviated weeks and months for Somali to agree with CLDR

[BZ #22038]
* locales/so_DJ (LC_TIME): Fix abday, abmon and
make t_fmt in the comment agree with the value of t_fmt.
* locales/so_ET (LC_TIME): Fix abday (From Axa to Axd)
* locales/so_KE (LC_TIME): Fix abday (From Axa to Axd)
* locales/so_SO (LC_TIME): Fix abday (From Axa to Axd)

6 years agoUpdate hanzi collation by stroke
Wei-Lun Chao [Tue, 29 Aug 2017 14:52:32 +0000 (16:52 +0200)]
Update hanzi collation by stroke

[BZ #21951]
        * locales/cns11643_stroke: Update hanzi collation by stroke
        (Add license declaration, use strokes by component).

6 years agoFix m68k bits/math-inline.h macro namespace (bug 22035).
Joseph Myers [Tue, 29 Aug 2017 21:07:51 +0000 (21:07 +0000)]
Fix m68k bits/math-inline.h macro namespace (bug 22035).

As shown by build bot failures
<https://sourceware.org/ml/libc-testresults/2017-q3/msg00349.html> the
m68k bits/mathinline.h is not namespace-clean: it fails to compile if
the user has defined macros f or l before it is included, because of
expansions of those arguments to __inline_functions.  This patch
changes the __inline_functions definitions to take not the suffix but
a macro that concatenates it with the function name, to avoid the
spurious macro expansions.

Tested for m68k with build-many-glibcs.py.

[BZ #22035]
* sysdeps/m68k/m680x0/fpu/bits/mathinline.h (__inline_functions):
Define to take a second argument that is a macro that
concatentates a suffix, not the suffix itself.
(__CONCAT_d): New macro.
(__CONCAT_f): Likewise.
(__CONCAT_l): Likewise.

6 years ago2017-08-29 Paul Pluzhnikov <ppluzhnikov@google.com>
Paul Pluzhnikov [Tue, 29 Aug 2017 17:42:42 +0000 (10:42 -0700)]
2017-08-29  Paul Pluzhnikov  <ppluzhnikov@google.com>

* stdlib/tst-atexit-common.c (do_test): Test handler inheritance
by child.

6 years agoMIPS/o32: Fix internal_syscall5/6/7
Adhemerval Zanella [Tue, 29 Aug 2017 17:31:08 +0000 (18:31 +0100)]
MIPS/o32: Fix internal_syscall5/6/7

Fix a commit cc25c8b4c119 ("New pthread rwlock that is more scalable.")
regression and prevent uncontrolled stack space usage from happening
when a 5-, 6- or 7-argument syscall wrapper is placed in a loop.

The cause of the problem is the use of `alloca' in regular MIPS/Linux
wrappers to force the use of the frame pointer register in any function
using one or more of these wrappers.  Using the frame pointer register
is required so as not to break frame unwinding as the the stack pointer
is lowered within the inline asm used by these wrappers to make room for
the stack arguments, which 5-, 6- and 7-argument syscalls use with the
o32 ABI.

The regular MIPS/Linux wrappers are macros however, expanded inline, and
stack allocations made with `alloca' are not discarded until the return
of the function they are made in.  Consequently if called in a loop,
then virtual memory is wasted, and if the loop goes through enough
iterations, then ultimately available memory can get exhausted causing
the program to crash.

Address the issue by replacing the inline code with standalone assembly
functions, which rely on the compiler arranging syscall arguments
according to the o32 function calling convention, which MIPS/Linux
syscalls also use, except for the syscall number passed and the error
flag returned.  This way there is no need to fiddle with the stack
pointer anymore and all that has to be handled in the new standalone
functions is the special handling of the syscall number and the error
flag.

Redirect 5-, 6- or 7-argument MIPS16/Linux syscall wrappers to these new
functions as well, so as to avoid an unnecessary double call the
existing wrappers would cause with the new arrangement.

[BZ #21956]
* sysdeps/unix/sysv/linux/mips/mips32/mips16/Makefile
[subdir = misc] (sysdep_routines): Remove `mips16-syscall5',
`mips16-syscall6' and `mips16-syscall7'.
(CFLAGS-mips16-syscall5.c, CFLAGS-mips16-syscall6.c)
(CFLAGS-mips16-syscall7.c): Remove.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/Versions (libc):
Remove `__mips16_syscall5', `__mips16_syscall6' and
`__mips16_syscall7'.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
(__mips16_syscall0): Rename `__mips16_syscall_return' to
`__mips_syscall_return'.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
(__mips16_syscall1): Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
(__mips16_syscall2): Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
(__mips16_syscall3): Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
(__mips16_syscall4): Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall5.c:
Remove.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall6.c:
Remove.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall7.c:
Remove.
* sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
(__mips16_syscall5): Expand to `__mips_syscall5' rather than
`__mips16_syscall5'.  Remove prototype.
(__mips16_syscall6): Expand to `__mips_syscall6' rather than
`__mips16_syscall6'.  Remove prototype.
(__mips16_syscall7): Expand to `__mips_syscall7' rather than
`__mips16_syscall7'.  Remove prototype.
(__nomips16, __mips16_syscall_return): Move to...
* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
(__nomips16, __mips_syscall_return): ... here.
[__mips16] (INTERNAL_SYSCALL_NCS): Rename
`__mips16_syscall_return' to `__mips_syscall_return'.
[__mips16] (INTERNAL_SYSCALL_MIPS16): Pass `number' to
`internal_syscall##nr'.
[!__mips16] (INTERNAL_SYSCALL): Pass `SYS_ify (name)' to
`internal_syscall##nr'.
(FORCE_FRAME_POINTER): Remove.
(__mips_syscall5): New prototype.
(internal_syscall5): Rewrite to call `__mips_syscall5'.
(__mips_syscall6): New prototype.
(internal_syscall6): Rewrite to call `__mips_syscall6'.
(__mips_syscall7): New prototype.
(internal_syscall7): Rewrite to call `__mips_syscall7'.
* sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S: New file.
* sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S: New file.
* sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S: New file.
* sysdeps/unix/sysv/linux/mips/mips32/Makefile [subdir = misc]
(sysdep_routines): Add libc-do-syscall.
* sysdeps/unix/sysv/linux/mips/mips32/Versions (libc): Add
`__mips_syscall5', `__mips_syscall6' and `__mips_syscall7'.

6 years agoia64: Fix thread stack allocation permission set (BZ #21672)
Adhemerval Zanella [Mon, 28 Aug 2017 14:24:35 +0000 (11:24 -0300)]
ia64: Fix thread stack allocation permission set (BZ #21672)

This patch fixes ia64 failures on thread exit by madvise the required
area taking in consideration its disjoing stacks
(NEED_SEPARATE_REGISTER_STACK).  Also the snippet that setup the
madvise call to advertise kernel the area won't be used anymore in
near future is reallocated in allocatestack.c (for consistency to
put all stack management function in one place).

Checked on x86_64-linux-gnu and i686-linux-gnu for sanity (since
it is not expected code changes for architecture that do not
define NEED_SEPARATE_REGISTER_STACK) and also got a report that
it fixes ia64-linux-gnu failures from Sergei Trofimovich
<slyfox@gentoo.org>.

[BZ #21672]
* nptl/allocatestack.c [_STACK_GROWS_DOWN] (setup_stack_prot):
Set to use !NEED_SEPARATE_REGISTER_STACK as well.
(advise_stack_range): New function.
* nptl/pthread_create.c (START_THREAD_DEFN): Move logic to mark
stack non required to advise_stack_range at allocatestack.c

6 years ago[AArch64] Fix procfs.h not to expose stdint.h types
Szabolcs Nagy [Tue, 29 Aug 2017 15:31:08 +0000 (16:31 +0100)]
[AArch64] Fix procfs.h not to expose stdint.h types

Commit 39e7a5a66828a60008543db5f03f46dc7081668b added stdint.h
to sys/procfs.h, but it is included into signal.h by default and
there is code that does not expect stdint.h to be visible there,
so use __uint64_t instead of uint64_t.

6 years agoiconv_open: Fix heap corruption on gconv_init failure [BZ #22026]
Florian Weimer [Tue, 29 Aug 2017 15:33:58 +0000 (17:33 +0200)]
iconv_open: Fix heap corruption on gconv_init failure [BZ #22026]

Also mangle the __end_fct function pointer on the error handling
path.

6 years agoiconv: Mangle __btowc_fct even without __init_fct [BZ #22025]
Florian Weimer [Tue, 29 Aug 2017 14:51:20 +0000 (16:51 +0200)]
iconv: Mangle __btowc_fct even without __init_fct [BZ #22025]

6 years agoFix bits/math-finite.h _MSUF_ expansion namespace (bug 22028).
Joseph Myers [Tue, 29 Aug 2017 14:15:37 +0000 (14:15 +0000)]
Fix bits/math-finite.h _MSUF_ expansion namespace (bug 22028).

The current bits/math-finite.h approach to defining functions for
different types, involving math.h defining _MSUF_ and _MSUFTO_ for the
function suffixes involved, is not namespace-clean if one of those
suffixes (f, l, f128) is defined as a macro by the user before math.h
is included; too many levels of macro expansion occur.  Instead, those
suffixes should appear directly in the expansion of the macro using ##
so they don't get expanded even if defined as macros by the user (that
is, math.h should be defining __REDIRFROM_X and __REDIRTO_X directly
to use those suffixes rather than suffixes being passed as an argument
by macro callers).  This patch makes that change.

Tested for x86_64.

[BZ #22028]
* math/math.h [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0]
(_MSUF_): Remove macro.
[__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (_MSUFTO_):
Likewise.
[__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0]
(__REDIRFROM_X): New macro.
[__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (__REDIRTO_X):
Likewise.
* math/bits/math-finite.h (__REDIRFROM_X): Remove macro.
(__REDIRTO_X): Likewise.
(__MATH_REDIRCALL): Do not pass _MSUF_ or _MSUFTO_ macro
arguments.
(__MATH_REDIRCALL_2): Likewise.
(__MATH_REDIRCALL_INTERNAL): Likewise.
(__REDIRFROM (lgamma, , _MSUF_)): Likewise.
(__REDIRFROM (gamma, , _MSUF_)): Likweise.
(__REDIRFROM (__gamma, _r_finite, _MSUF_)): Likewise.
(__REDIRFROM (tgamma, , _MSUF_)): Likewise.
* math/test-finite-macros.c: New file.
* math/Makefile (tests): Add test-finite-macros.
(CFLAGS-test-finite-macros.c): New variable.

6 years agogconv: Consistently mangle NULL function pointers [BZ #22025]
Patsy Franklin [Tue, 29 Aug 2017 13:53:28 +0000 (15:53 +0200)]
gconv: Consistently mangle NULL function pointers [BZ #22025]

Not mangling NULL pointers is not safe because with very low
probability, a non-NULL function pointer can turn into a NULL pointer
after mangling.

6 years agoUse “,” as mon_decimal_point for ru_RU and os_RU locales (follow CLDR)
Mike FABIAN [Tue, 29 Aug 2017 11:39:18 +0000 (13:39 +0200)]
Use “,” as mon_decimal_point for ru_RU and os_RU locales (follow CLDR)

[BZ #13805]
* locales/ru_RU (LC_MONETARY): Use “,” for mon_decimal_point
(to agree with CLDR).
* locales/ru_RU (LC_NUMERIC): Write mon_decimal_point in ASCII
for readability.
* locales/os_RU (LC_MONETARY): Copy from ru_RU,
makes it agree with CLDR.

This page took 0.092297 seconds and 5 git commands to generate.