glibc/wcsmbs
Joseph Myers a23aa5b727 Add _Float64x function aliases.
This patch continues filling out TS 18661-3 support by adding *f64x
function aliases on platforms with _Float64x support.  (It so happens
the set of such platforms is exactly the same as the set of platforms
with _Float128 support, although on x86_64, x86 and ia32 the _Float64x
format is Intel extended rather than binary128.)  The API provided
corresponds exactly to that provided for _Float128, mostly coming from
TS 18661-3.  As these functions always alias those for another type
(long double, _Float128 or both), __* function names are not provided,
as in other cases of alias types.

Given the preparation done in previous patches, this one just enables
the feature via Makeconfig and bits/floatn.h, adds symbol versions,
and updates documentation and ABI baselines.  The symbol versions are
present unconditionally as GLIBC_2.27 in the relevant Versions files,
as it's OK for those to specify versions for functions that may not be
present in some configurations; no additional complexity is needed
unless in future some configuration gains support for this type that
didn't have such support in 2.27.  The Makeconfig additions for ia64
and x86 aren't strictly needed, as those configurations also get
float64x-alias-fcts definitions from
sysdeps/ieee754/float128/Makeconfig, but still seem appropriate given
that _Float64x is not _Float128 for those configurations.

A libm-test-ulps update for x86 is included.  This is because
bits/mathinline.h does not have _Float64x support added and for two
functions the use of out-of-line functions results in increased ulps
(ifloat64x shares ulps with ildouble / ifloat128 as appropriate).
Given that we'd like generally to eliminate bits/mathinline.h
optimizations, preferring to have such optimizations in GCC instead,
it seems reasonable not to add such support there for new types.  GCC
support for _FloatN / _FloatNx built-in functions is limited, but has
been improved in GCC 8, and at some point I hope the full set of libm
built-in functions in GCC, and other optimizations with
per-floating-type aspects, will be enabled for all _FloatN / _FloatNx
types.

Tested for x86_64 and x86, and with build-many-glibcs.py, with both
GCC 6 and GCC 7.

	* sysdeps/ia64/Makeconfig (float64x-alias-fcts): New variable.
	* sysdeps/ieee754/float128/Makeconfig (float64x-alias-fcts):
	Likewise.
	* sysdeps/ieee754/ldbl-128/Makeconfig (float64x-alias-fcts):
	Likewise.
	* sysdeps/x86/Makeconfig: New file.
	* bits/floatn-common.h (__HAVE_FLOAT64X): Remove macro.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* bits/floatn.h (__HAVE_FLOAT64X): New macro.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/ia64/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/ieee754/ldbl-128/bits/floatn.h (__HAVE_FLOAT64X):
	Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/mips/ieee754/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/powerpc/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/x86/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* manual/math.texi (Mathematics): Document support for _Float64x.
	* math/Versions (GLIBC_2.27): Add _Float64x functions.
	* stdlib/Versions (GLIBC_2.27): Likewise.
	* wcsmbs/Versions (GLIBC_2.27): Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
	* sysdeps/i386/fpu/libm-test-ulps: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise.
2017-11-27 14:16:47 +00:00
..
bits Remove __need macros from stdio.h and wchar.h. 2017-06-08 13:58:17 -04:00
Depend Update. 2000-09-06 22:15:07 +00:00
Makefile float128: Add strtof128, wcstof128, and related functions. 2017-06-12 14:48:53 -03:00
Versions Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
btowc.c gconv: Consistently mangle NULL function pointers [BZ #22025] 2017-08-29 15:53:28 +02:00
c16rtomb.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_fwscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_swscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vfwscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vswscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_vwscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
isoc99_wscanf.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbrlen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbrtoc16.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbrtowc.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbsinit.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbsnrtowcs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbsrtowcs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbsrtowcs_l.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
test-wcpcpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcpncpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcscat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcschr.c Add wcschr test cases 2011-10-23 14:14:26 -04:00
test-wcschrnul.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcscmp.c Move wide char tests to wcsmbs directory 2011-09-08 18:01:07 -04:00
test-wcscpy.c Add tests for wcsrchr and wcscpy 2011-12-17 14:14:58 -05:00
test-wcscspn.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcslen.c Add wcslen test cases 2011-10-23 14:11:50 -04:00
test-wcsncat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcsncmp.c Use correct signedness in wcsncmp 2015-04-13 21:25:04 +02:00
test-wcsncpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcsnlen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcspbrk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wcsrchr.c Add tests for wcsrchr and wcscpy 2011-12-17 14:14:58 -05:00
test-wcsspn.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wmemchr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-wmemcmp.c Move wide char tests to wcsmbs directory 2011-09-08 18:01:07 -04:00
test-wmemset.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-btowc.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-c16c32-1.c Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
tst-mbrtowc.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-mbrtowc2.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
tst-mbsrtowcs.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-wchar-h.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-wcpncpy.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-wcrtomb.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-wcsnlen.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-wcstod-nan-locale.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-wcstod-round.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-wcstof.c Update wcsmbs tests to use the support test driver 2017-04-04 18:05:20 -03:00
tst-wcstol-locale.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
uchar.h Remove __need macros from stdio.h and wchar.h. 2017-06-08 13:58:17 -04:00
wchar.h Declare wcstof functions for more _FloatN, _FloatNx types. 2017-11-02 23:36:00 +00:00
wcpcpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcpncpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcrtomb.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsatcliff.c Fix handling of tail bytes of buffer in SSE2/SSSE3 x86-64 version strn{,case}cmp 2010-10-03 22:10:30 -04:00
wcscasecmp.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
wcscasecmp_l.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcscat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcschr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcschrnul.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcscmp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcscoll.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcscoll_l.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcscpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcscspn.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsdup.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcslen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsmbs-tst1.c Add dependencies on needed locales in each subdir tests (bug 18969) 2015-10-12 15:18:08 +02:00
wcsmbsload.c iconv, intl, locale, wcsmbs: Remove internal_function 2017-08-31 15:59:06 +02:00
wcsmbsload.h Mark internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:07:23 -07:00
wcsncase.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
wcsncase_l.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsncat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsncmp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsncpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsnlen.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsnrtombs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcspbrk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsrchr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsrtombs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsspn.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsstr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstod.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstod_l.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstod_nan.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstof.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstof_l.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstof_nan.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstok.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstol.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstol_l.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstold.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstold_l.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstold_nan.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstoll.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstoll_l.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstoul.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstoul_l.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcstoull.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstoull_l.c Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:09:28 -07:00
wcswidth.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsxfrm.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsxfrm_l.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wctob.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcwidth.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcwidth.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmemchr.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmemcmp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmemcpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmemmove.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmempcpy.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmemset.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00