<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/glibc.git, branch zack/string-headers-cleanups</title>
<subtitle>sourceware.org: git/glibc.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/'/>
<entry>
<title>The bits/types/*.h treatment for stdio and wchar.</title>
<updated>2016-11-21T04:00:44+00:00</updated>
<author>
<name>Zack Weinberg</name>
<email>zackw@panix.com</email>
</author>
<published>2016-11-21T04:00:02+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=023131a22cbb7ae20cd285abbcd70568ae82cf55'/>
<id>023131a22cbb7ae20cd285abbcd70568ae82cf55</id>
<content type='text'>
wint_t is a little finicky because it might be defined by stddef.h, which
belongs to the compiler.

In addition to the _types_, a bunch of other declarations shared between
wctype.h and wchar.h are factored out to their own header.

	* libio/bits/types/FILE.h, libio/bits/types/__FILE.h
	* wcsmbs/bits/types/mbstate_t.h, wcsmbs/bits/types/__mbstate_t.h
	* wcsmbs/bits/types/wint_t.h: New single-type definition files.
	* wctype/bits/wctype-wchar.h: New file holding declarations shared
	between wctype.h and wchar.h.

	* libio/Makefile, wcsmbs/Makefile, wctype/Makefile
	Install them.

	* include/bits/types/FILE.h, include/bits/types/__FILE.h
	* include/bits/types/mbstate_t.h, include/bits/types/__mbstate_t.h
	* include/bits/types/wint_t.h, include/bits/wcsmbs-wchar.h:
	New wrappers.
	* include/stdio.h, include/wchar.h, include/wctype.h:
	No need to handle __need macros.

	* grp/grp.h, gshadow/gshadow.h, hurd/hurd.h, iconv/gconv.h
	* libio/stdio.h, mach/mach.h, misc/mntent.h, pwd/pwd.h
	* shadow/shadow.h, stdio-common/printf.h, wcsmbs/uchar.h
	* wcsmbs/wchar.h, wctype/wctype.h
	* sysdeps/generic/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h
	Use the new files instead of __need macros.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
wint_t is a little finicky because it might be defined by stddef.h, which
belongs to the compiler.

In addition to the _types_, a bunch of other declarations shared between
wctype.h and wchar.h are factored out to their own header.

	* libio/bits/types/FILE.h, libio/bits/types/__FILE.h
	* wcsmbs/bits/types/mbstate_t.h, wcsmbs/bits/types/__mbstate_t.h
	* wcsmbs/bits/types/wint_t.h: New single-type definition files.
	* wctype/bits/wctype-wchar.h: New file holding declarations shared
	between wctype.h and wchar.h.

	* libio/Makefile, wcsmbs/Makefile, wctype/Makefile
	Install them.

	* include/bits/types/FILE.h, include/bits/types/__FILE.h
	* include/bits/types/mbstate_t.h, include/bits/types/__mbstate_t.h
	* include/bits/types/wint_t.h, include/bits/wcsmbs-wchar.h:
	New wrappers.
	* include/stdio.h, include/wchar.h, include/wctype.h:
	No need to handle __need macros.

	* grp/grp.h, gshadow/gshadow.h, hurd/hurd.h, iconv/gconv.h
	* libio/stdio.h, mach/mach.h, misc/mntent.h, pwd/pwd.h
	* shadow/shadow.h, stdio-common/printf.h, wcsmbs/uchar.h
	* wcsmbs/wchar.h, wctype/wctype.h
	* sysdeps/generic/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h
	Use the new files instead of __need macros.
</pre>
</div>
</content>
</entry>
<entry>
<title>New mechanism for declaring const-covariant string functions.</title>
<updated>2016-11-21T04:00:44+00:00</updated>
<author>
<name>Zack Weinberg</name>
<email>zackw@panix.com</email>
</author>
<published>2016-11-16T23:34:27+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=b551190f039fcb74978f62f03632e53fac483ef1'/>
<id>b551190f039fcb74978f62f03632e53fac483ef1</id>
<content type='text'>
Several functions in string.h, strings.h, and wchar.h return a pointer
into a buffer passed as their first argument.  That pointer logically
ought to inherit the 'const'-ness of the original buffer.  There's no
way to express that in C, so all these functions are specified with a
prototype that, as a side-effect, strips the 'const', potentially
leading to bugs:

    char *strfoo(const char *buf, ...);

In C++, however, you can get it exactly right via function overloads:

    char *strfoo(char *buf, ...);
    const char *strfoo(const char *buf, ...);

and the C++ standard (21.7 [c.strings]) requires the library to do
just that.  We were implementing this requirement via a repetitive and
error-prone mess of #ifdefs for each and every one of the affected
functions.

This patch absorbs the entire mess into a pair of macros,
__CONST_COV_PROTO and __CONST_COV_BUILTIN, which are far less
error-prone to use, and which make the public header files much nicer
to read, too.  They needed some black magic to _implement_, but it's
hiding in a bits header and hopefully nobody need ever change that
file again.

	* string/bits/const-covariance.h: New file.
        * string/Makefile (headers): Add it.
	* string/string.h: Use __CONST_COV_PROTO and __CONST_COV_BUILTIN to
	declare memchr, rawmemchr, memrchr, strchr, strrchr, strchrnul,
	strpbrk, strstr, strcasestr, memmem, and basename.
	* string/strings.h: Likewise for index and rindex.
	* wcsmbs/wchar.h: Likewise for wcschr, wcsrchr, wcschrnul,
	wcspbrk, wcsstr, wcswcs, and wmemchr.
	* include/bits/const-covariance.h: New wrapper.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Several functions in string.h, strings.h, and wchar.h return a pointer
into a buffer passed as their first argument.  That pointer logically
ought to inherit the 'const'-ness of the original buffer.  There's no
way to express that in C, so all these functions are specified with a
prototype that, as a side-effect, strips the 'const', potentially
leading to bugs:

    char *strfoo(const char *buf, ...);

In C++, however, you can get it exactly right via function overloads:

    char *strfoo(char *buf, ...);
    const char *strfoo(const char *buf, ...);

and the C++ standard (21.7 [c.strings]) requires the library to do
just that.  We were implementing this requirement via a repetitive and
error-prone mess of #ifdefs for each and every one of the affected
functions.

This patch absorbs the entire mess into a pair of macros,
__CONST_COV_PROTO and __CONST_COV_BUILTIN, which are far less
error-prone to use, and which make the public header files much nicer
to read, too.  They needed some black magic to _implement_, but it's
hiding in a bits header and hopefully nobody need ever change that
file again.

	* string/bits/const-covariance.h: New file.
        * string/Makefile (headers): Add it.
	* string/string.h: Use __CONST_COV_PROTO and __CONST_COV_BUILTIN to
	declare memchr, rawmemchr, memrchr, strchr, strrchr, strchrnul,
	strpbrk, strstr, strcasestr, memmem, and basename.
	* string/strings.h: Likewise for index and rindex.
	* wcsmbs/wchar.h: Likewise for wcschr, wcsrchr, wcschrnul,
	wcspbrk, wcsstr, wcswcs, and wmemchr.
	* include/bits/const-covariance.h: New wrapper.
</pre>
</div>
</content>
</entry>
<entry>
<title>Clean up redundancies between string.h and strings.h.</title>
<updated>2016-11-21T04:00:44+00:00</updated>
<author>
<name>Zack Weinberg</name>
<email>zackw@panix.com</email>
</author>
<published>2016-11-16T21:20:26+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=0e458a2b8be25c60ee286c75e6f94dd48d5f765a'/>
<id>0e458a2b8be25c60ee286c75e6f94dd48d5f765a</id>
<content type='text'>
	* string/string.h [__USE_MISC]: Include strings.h.
	(__bzero, bcmp, bcopy, bzero, index, rindex)
	(strcasecmp, strncasecmp, strcasecmp_l, strncasecmp_l)
	(ffs, ffsl, ffsll): Don't declare.

	* string/strings.h: Do not suppress the file if string.h has
	already been included.
	(bcmp, bcopy, bzero, strcasecmp, strncasecmp): Add __nonnull
	annotations.
	(index, rindex): Define inline forwarders even if
	__CORRECT_ISO_CPP_STRING_H_PROTO is defined.
	(ffs): Use __attribute_const__.
	(ffsl, ffsll): Declare here.
	(strcasecmp_l, strncasecmp_l): Correct comments; these functions
	have now been standardized.

	* include/string.h (__bzero): Declare here.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* string/string.h [__USE_MISC]: Include strings.h.
	(__bzero, bcmp, bcopy, bzero, index, rindex)
	(strcasecmp, strncasecmp, strcasecmp_l, strncasecmp_l)
	(ffs, ffsl, ffsll): Don't declare.

	* string/strings.h: Do not suppress the file if string.h has
	already been included.
	(bcmp, bcopy, bzero, strcasecmp, strncasecmp): Add __nonnull
	annotations.
	(index, rindex): Define inline forwarders even if
	__CORRECT_ISO_CPP_STRING_H_PROTO is defined.
	(ffs): Use __attribute_const__.
	(ffsl, ffsll): Declare here.
	(strcasecmp_l, strncasecmp_l): Correct comments; these functions
	have now been standardized.

	* include/string.h (__bzero): Declare here.
</pre>
</div>
</content>
</entry>
<entry>
<title>squashme</title>
<updated>2016-11-21T04:00:44+00:00</updated>
<author>
<name>Zack Weinberg</name>
<email>zackw@panix.com</email>
</author>
<published>2016-11-21T04:00:28+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=5622d4bc77ec263a25b3b75f663238d03234a37a'/>
<id>5622d4bc77ec263a25b3b75f663238d03234a37a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Always suppress libc-internal declarations for C++ code.</title>
<updated>2016-11-21T01:50:51+00:00</updated>
<author>
<name>Zack Weinberg</name>
<email>zackw@panix.com</email>
</author>
<published>2016-11-21T01:46:30+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=80fc253367be07eea2150c0b0544dea96e94e387'/>
<id>80fc253367be07eea2150c0b0544dea96e94e387</id>
<content type='text'>
C++ is only used for tests, and some of the internal declarations are
not C++-safe.  Rather than playing whack-a-mole with problems, just
turn on _ISOMAC mode for all C++ code.  (It might make sense to do
this for all IS_IN(nonlib) code as well.)

This flushed out a few problems: test-skeleton.c uses uintptr_t but wasn't
including &lt;stdint.h&gt;, libio.h used _GNU_SOURCE instead of __USE_GNU
in one place, and the kludge for not declaring gets() in _GNU_SOURCE
mode but still having it around for tests and its own definition needed
some cleanup.

	* include/libc-symbols.h: Define _ISOMAC when __cplusplus is defined.
	* include/errno.h, include/stdio.h, include/stdlib.h
	* include/time.h, include/unistd.h, include/wchar.h: No need to
	check __cplusplus nor use __BEGIN_DECLS/__END_DECLS.

	* test-skeleton.c: Include &lt;stdint.h&gt; when thread-testing API is
	activated.
	* libio/libio.h: Use __USE_GNU, not _GNU_SOURCE.

	* include/features.h (__GLIBC_USE_DEPRECATED_GETS): New macro.
	* libio/stdio.h, libio/bits/stdio2.h: Condition gets on
	__GLIBC_USE (DEPRECATED_GETS).  Update comments to indicate
	gets was removed from C++ in C++14.
	* include/stdio.h [!_ISOMAC]: Force gets to be declared by
	libio/stdio.h, instead of repeating its declaration.
	* debug/tst-chk1.c: Force gets to be declared, since we are
	testing it.  (This file is sometimes compiled with _ISOMAC in
	effect.)
	* stdio-common/Makefile (tst-gets.c): Compile with
	-Wno-deprecated-declarations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
C++ is only used for tests, and some of the internal declarations are
not C++-safe.  Rather than playing whack-a-mole with problems, just
turn on _ISOMAC mode for all C++ code.  (It might make sense to do
this for all IS_IN(nonlib) code as well.)

This flushed out a few problems: test-skeleton.c uses uintptr_t but wasn't
including &lt;stdint.h&gt;, libio.h used _GNU_SOURCE instead of __USE_GNU
in one place, and the kludge for not declaring gets() in _GNU_SOURCE
mode but still having it around for tests and its own definition needed
some cleanup.

	* include/libc-symbols.h: Define _ISOMAC when __cplusplus is defined.
	* include/errno.h, include/stdio.h, include/stdlib.h
	* include/time.h, include/unistd.h, include/wchar.h: No need to
	check __cplusplus nor use __BEGIN_DECLS/__END_DECLS.

	* test-skeleton.c: Include &lt;stdint.h&gt; when thread-testing API is
	activated.
	* libio/libio.h: Use __USE_GNU, not _GNU_SOURCE.

	* include/features.h (__GLIBC_USE_DEPRECATED_GETS): New macro.
	* libio/stdio.h, libio/bits/stdio2.h: Condition gets on
	__GLIBC_USE (DEPRECATED_GETS).  Update comments to indicate
	gets was removed from C++ in C++14.
	* include/stdio.h [!_ISOMAC]: Force gets to be declared by
	libio/stdio.h, instead of repeating its declaration.
	* debug/tst-chk1.c: Force gets to be declared, since we are
	testing it.  (This file is sometimes compiled with _ISOMAC in
	effect.)
	* stdio-common/Makefile (tst-gets.c): Compile with
	-Wno-deprecated-declarations.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add setpayload, setpayloadf, setpayloadl.</title>
<updated>2016-11-19T00:16:28+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2016-11-19T00:16:28+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=eb3c12c78420ce51778ab36ab1d4b37dcdaf7bd0'/>
<id>eb3c12c78420ce51778ab36ab1d4b37dcdaf7bd0</id>
<content type='text'>
TS 18661-1 defines functions for manipulating the payloads of NaNs.
This patch implements the setpayload functions for glibc; these set a
number (pointed to by a function argument) to a quiet NaN with the
given payload, or to +0 if the given payload is not valid.  The
implementations are structured to allow the substance of the
implementation to be shared with the setpayloadsig functions when
those are added.

The semantics in the TS are not entirely clear in the case where the
payload passed to the function is zero (see discussion on the WG14
reflector last month).  This patch implements what seems the most
sensible interpretation, that -0 is never valid to give as the
payload, but +0 is valid in the case where the kind of NaN being
generated has its high mantissa bit set so payload 0 is actually
possible in such a NaN.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(setpayload): New declaration.
	* math/Versions (setpayload): New libm symbol at version
	GLIBC_2.25.
	(setpayloadf): Likewise.
	(setpayloadl): Likewise.
	* math/Makefile (libm-calls): Add s_setpayloadF.
	* math/libm-test.inc (struct test_Ffp_b1_data): Rename to struct
	test_Ff_b1_data.
	(RUN_TEST_Ff_b1): New macro.
	(RUN_TEST_LOOP_Ff_b1): Likewise.
	(canonicalize_test_data): Update type.
	(setpayload_test_data): New array.
	(setpayload_test): New function.
	(main): Call setpayload_test.
	* manual/arith.texi (FP Bit Twiddling): Document setpayload,
	setpayloadf and setpayloadl.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/dbl-64/s_setpayload.c: New file.
	* sysdeps/ieee754/dbl-64/s_setpayload_main.c: Likewise.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c:
	Likewise.
	* sysdeps/ieee754/flt-32/s_setpayloadf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_setpayloadf_main.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	setpayload.
	(CFLAGS-nldbl-setpayload.c): New variable.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
TS 18661-1 defines functions for manipulating the payloads of NaNs.
This patch implements the setpayload functions for glibc; these set a
number (pointed to by a function argument) to a quiet NaN with the
given payload, or to +0 if the given payload is not valid.  The
implementations are structured to allow the substance of the
implementation to be shared with the setpayloadsig functions when
those are added.

The semantics in the TS are not entirely clear in the case where the
payload passed to the function is zero (see discussion on the WG14
reflector last month).  This patch implements what seems the most
sensible interpretation, that -0 is never valid to give as the
payload, but +0 is valid in the case where the kind of NaN being
generated has its high mantissa bit set so payload 0 is actually
possible in such a NaN.

Tested for x86_64, x86, mips64 and powerpc.

	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]
	(setpayload): New declaration.
	* math/Versions (setpayload): New libm symbol at version
	GLIBC_2.25.
	(setpayloadf): Likewise.
	(setpayloadl): Likewise.
	* math/Makefile (libm-calls): Add s_setpayloadF.
	* math/libm-test.inc (struct test_Ffp_b1_data): Rename to struct
	test_Ff_b1_data.
	(RUN_TEST_Ff_b1): New macro.
	(RUN_TEST_LOOP_Ff_b1): Likewise.
	(canonicalize_test_data): Update type.
	(setpayload_test_data): New array.
	(setpayload_test): New function.
	(main): Call setpayload_test.
	* manual/arith.texi (FP Bit Twiddling): Document setpayload,
	setpayloadf and setpayloadl.
	* manual/libm-err-tab.pl: Update comment on interfaces without
	ulps tabulated.
	* sysdeps/ieee754/dbl-64/s_setpayload.c: New file.
	* sysdeps/ieee754/dbl-64/s_setpayload_main.c: Likewise.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c:
	Likewise.
	* sysdeps/ieee754/flt-32/s_setpayloadf.c: Likewise.
	* sysdeps/ieee754/flt-32/s_setpayloadf_main.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_setpayloadl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
	setpayload.
	(CFLAGS-nldbl-setpayload.c): New variable.
	* sysdeps/nacl/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix hurd __access_noerrno implementation.</title>
<updated>2016-11-18T18:49:08+00:00</updated>
<author>
<name>Adhemerval Zanella</name>
<email>adhemerval.zanella@linaro.org</email>
</author>
<published>2016-11-18T18:41:00+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=e92bd6e362470aa0a79cfb19a512944f0761184b'/>
<id>e92bd6e362470aa0a79cfb19a512944f0761184b</id>
<content type='text'>
This patch fixes some hurd bits from commit afcf3cd8eb that added the
__access_noerrno internal symbol.  It basically removes the nonrequired
__hurd_fail_noerrno (since the 'err' argument is ignored) and fixes
a typo for EACCES.

However, as stated on maillist [1] this __access_noerrno may still be
unsafe to run during initialization of tunables on the Hurd.  The
access_common calls __hurd_file_name_lookup, which calls
__hurd_file_name_lookup_retry, which can set errno.

[1] https://sourceware.org/ml/libc-alpha/2016-11/msg00646.html
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes some hurd bits from commit afcf3cd8eb that added the
__access_noerrno internal symbol.  It basically removes the nonrequired
__hurd_fail_noerrno (since the 'err' argument is ignored) and fixes
a typo for EACCES.

However, as stated on maillist [1] this __access_noerrno may still be
unsafe to run during initialization of tunables on the Hurd.  The
access_common calls __hurd_file_name_lookup, which calls
__hurd_file_name_lookup_retry, which can set errno.

[1] https://sourceware.org/ml/libc-alpha/2016-11/msg00646.html
</pre>
</div>
</content>
</entry>
<entry>
<title>tile: create new math-tests.h header</title>
<updated>2016-11-18T18:34:47+00:00</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@mellanox.com</email>
</author>
<published>2016-11-16T15:09:50+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=c73c7fc07c001f2a907a9c6d50c57d377ce0351f'/>
<id>c73c7fc07c001f2a907a9c6d50c57d377ce0351f</id>
<content type='text'>
The header makes tile use the new mechanisms for suppressing
exception and rounding support (the ROUNDING_TESTS_xxx() and
EXCEPTION_TESTS_xxx macros).

More importantly, it also now sets SNAN_TESTS_PRESERVE_PAYLOAD to 0,
since the tilegx fp hardware does not preserve NaN payloads.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The header makes tile use the new mechanisms for suppressing
exception and rounding support (the ROUNDING_TESTS_xxx() and
EXCEPTION_TESTS_xxx macros).

More importantly, it also now sets SNAN_TESTS_PRESERVE_PAYLOAD to 0,
since the tilegx fp hardware does not preserve NaN payloads.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make tile's set_dataplane API compatibility-only</title>
<updated>2016-11-18T18:34:01+00:00</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@mellanox.com</email>
</author>
<published>2016-11-14T16:41:38+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=6933f28a64090760a1c1a731d89714265497ba83'/>
<id>6933f28a64090760a1c1a731d89714265497ba83</id>
<content type='text'>
The set_dataplane() API in &lt;sys/dataplane.h&gt; originally supported the
Tilera version of Linux as shipped to our customers.  Once we started
upstreaming the dataplane support in the kernel, the API changed
to use fcntl() as part of the current task-isolation patch series.

It doesn't seem like continuing to support the old API is useful
for newly-compiled code, and even supporting the old glibc binary
API on an upstream kernel that supports the new task isolation mode
isn't straightforward, since the semantics have changed in ways that
make it hard to map the old semantics precisely to the new ones,
so just return ENOSYS.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The set_dataplane() API in &lt;sys/dataplane.h&gt; originally supported the
Tilera version of Linux as shipped to our customers.  Once we started
upstreaming the dataplane support in the kernel, the API changed
to use fcntl() as part of the current task-isolation patch series.

It doesn't seem like continuing to support the old API is useful
for newly-compiled code, and even supporting the old glibc binary
API on an upstream kernel that supports the new task isolation mode
isn't straightforward, since the semantics have changed in ways that
make it hard to map the old semantics precisely to the new ones,
so just return ENOSYS.
</pre>
</div>
</content>
</entry>
<entry>
<title>Quote shell commands in logs from build-many-glibcs.py.</title>
<updated>2016-11-18T18:22:09+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2016-11-18T18:22:09+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/glibc.git/commit/?id=8885f979096f46afd30188e92cefd492c3620787'/>
<id>8885f979096f46afd30188e92cefd492c3620787</id>
<content type='text'>
As requested in
&lt;https://sourceware.org/ml/libc-alpha/2016-11/msg00664.html&gt;, this
patch makes the commands recorded in build-many-glibcs.py quote words
so they can be cut-and-pasted back into a shell.  (Note that these
logs are generated by the wrapper script generated to run commands
with logs, hence the needs for quoting logic to be implemented in that
shell script.)

	* scripts/build-many-glibcs.py (Context.write_files): Make wrapper
	script quote words in command output to log suitably for input to
	the shell.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As requested in
&lt;https://sourceware.org/ml/libc-alpha/2016-11/msg00664.html&gt;, this
patch makes the commands recorded in build-many-glibcs.py quote words
so they can be cut-and-pasted back into a shell.  (Note that these
logs are generated by the wrapper script generated to run commands
with logs, hence the needs for quoting logic to be implemented in that
shell script.)

	* scripts/build-many-glibcs.py (Context.write_files): Make wrapper
	script quote words in command output to log suitably for input to
	the shell.
</pre>
</div>
</content>
</entry>
</feed>
