<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glibc.git, branch zack/build-layout-experiment</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/'/>
<entry>
<title>Prepare for radical source tree reorganization.</title>
<updated>2017-06-08T19:39:03+00:00</updated>
<author>
<name>Zack Weinberg</name>
<email>zackw@panix.com</email>
</author>
<published>2017-06-08T19:39:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=5046dbb4a7eba5eccfd258f92f4735c9ffc8d069'/>
<id>5046dbb4a7eba5eccfd258f92f4735c9ffc8d069</id>
<content type='text'>
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove __need macros from stdio.h and wchar.h.</title>
<updated>2017-06-08T17:58:17+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='https://git.belthelziquor.com/glibc.git/commit/?id=199fc19d3aaaf57944ef036e15904febe877fc93'/>
<id>199fc19d3aaaf57944ef036e15904febe877fc93</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>Add more tests for memchr</title>
<updated>2017-06-08T16:56:01+00:00</updated>
<author>
<name>H.J. Lu</name>
<email>hjl.tools@gmail.com</email>
</author>
<published>2017-06-08T16:55:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=4615f5aefeaa45345484a9ce8e3d0ea977c80d80'/>
<id>4615f5aefeaa45345484a9ce8e3d0ea977c80d80</id>
<content type='text'>
This patch adds tests for len == 0 and tests for positions close to the
beginning, which are equivalent to positions close to the end for memchr.

	* string/test-memrchr.c (test_main): Add tests for len == 0
	and tests for positions close to the beginning, which are
	equivalent to positions close to the end for memchr.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds tests for len == 0 and tests for positions close to the
beginning, which are equivalent to positions close to the end for memchr.

	* string/test-memrchr.c (test_main): Add tests for len == 0
	and tests for positions close to the beginning, which are
	equivalent to positions close to the end for memchr.
</pre>
</div>
</content>
</entry>
<entry>
<title>x86-64: Rename wmemset.h to ifunc-wmemset.h</title>
<updated>2017-06-07T21:48:34+00:00</updated>
<author>
<name>H.J. Lu</name>
<email>hjl.tools@gmail.com</email>
</author>
<published>2017-06-07T21:09:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=5e1122827a9f9751922b25c332f8f0272de60719'/>
<id>5e1122827a9f9751922b25c332f8f0272de60719</id>
<content type='text'>
No code changes.

	* sysdeps/x86_64/multiarch/wmemset.c: Include ifunc-wmemset.h
	instead of wmemset.h.
	* sysdeps/x86_64/multiarch/wmemset_chk.c: Likewise.
	* sysdeps/x86_64/multiarch/wmemset.h: Renamed to ...
	* sysdeps/x86_64/multiarch/ifunc-wmemset.h: This.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No code changes.

	* sysdeps/x86_64/multiarch/wmemset.c: Include ifunc-wmemset.h
	instead of wmemset.h.
	* sysdeps/x86_64/multiarch/wmemset_chk.c: Likewise.
	* sysdeps/x86_64/multiarch/wmemset.h: Renamed to ...
	* sysdeps/x86_64/multiarch/ifunc-wmemset.h: This.
</pre>
</div>
</content>
</entry>
<entry>
<title>float128: Add strfromf128</title>
<updated>2017-06-07T20:08:21+00:00</updated>
<author>
<name>Gabriel F. T. Gomes</name>
<email>gftg@linux.vnet.ibm.com</email>
</author>
<published>2016-11-03T14:37:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=cf2046ec7dd4b233180377cc5b8debcf551d1fc9'/>
<id>cf2046ec7dd4b233180377cc5b8debcf551d1fc9</id>
<content type='text'>
Add strfromf128 to stdlib when _Float128 support is enabled.

	* stdio-common/printf-parsemb.c (__parse_one_specmb): Initialize
	spec-&gt;info.is_binary128 to zero.
	* stdio-common/printf.h (printf_info): Add new member is_binary128
	to indicate that the number being converted to string is compatible
	with the IEC 60559 binary128 format.
	* stdio-common/printf_fp.c (__printf_fp_l): Add code to deal with
	_Float128 numbers.
	* stdio-common/printf_fphex.c: Include ieee754_float128.h and
	ldbl-128/printf_fphex_macros.h
	(__printf_fphex): Add code to deal with _Float128 numbers.
	* stdio-common/printf_size.c (__printf_size): Likewise.
	* stdio-common/vfprintf.c (process_arg): Initialize member
	info.is_binary128 to zero.
	* stdlib/fpioconst.h (FLT128_MAX_10_EXP_LOG): New macro.
	* stdlib/stdlib.h: Include bits/floatn.h for _Float128 support.
	(strfromf128): New declaration.
	* stdlib/strfrom-skeleton.c (STRFROM): Set member info.is_binary128
	to one.
	* sysdeps/ieee754/float128/Makefile: Add strfromf128.
	* sysdeps/ieee754/float128/Versions: Likewise.
	* sysdeps/ieee754/float128/strfromf128.c: New file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add strfromf128 to stdlib when _Float128 support is enabled.

	* stdio-common/printf-parsemb.c (__parse_one_specmb): Initialize
	spec-&gt;info.is_binary128 to zero.
	* stdio-common/printf.h (printf_info): Add new member is_binary128
	to indicate that the number being converted to string is compatible
	with the IEC 60559 binary128 format.
	* stdio-common/printf_fp.c (__printf_fp_l): Add code to deal with
	_Float128 numbers.
	* stdio-common/printf_fphex.c: Include ieee754_float128.h and
	ldbl-128/printf_fphex_macros.h
	(__printf_fphex): Add code to deal with _Float128 numbers.
	* stdio-common/printf_size.c (__printf_size): Likewise.
	* stdio-common/vfprintf.c (process_arg): Initialize member
	info.is_binary128 to zero.
	* stdlib/fpioconst.h (FLT128_MAX_10_EXP_LOG): New macro.
	* stdlib/stdlib.h: Include bits/floatn.h for _Float128 support.
	(strfromf128): New declaration.
	* stdlib/strfrom-skeleton.c (STRFROM): Set member info.is_binary128
	to one.
	* sysdeps/ieee754/float128/Makefile: Add strfromf128.
	* sysdeps/ieee754/float128/Versions: Likewise.
	* sysdeps/ieee754/float128/strfromf128.c: New file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor PRINT_FPHEX_LONG_DOUBLE into a reusable macro</title>
<updated>2017-06-07T20:06:31+00:00</updated>
<author>
<name>Gabriel F. T. Gomes</name>
<email>gftg@linux.vnet.ibm.com</email>
</author>
<published>2017-06-02T19:03:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=2bc646c9e95b7c0005b2bc09c06671ffbb509629'/>
<id>2bc646c9e95b7c0005b2bc09c06671ffbb509629</id>
<content type='text'>
This patch refactors the macro PRINT_FPHEX_LONG_DOUBLE from the file
sysdeps/ieee754/ldbl-128/printf_fphex.c into a function-like macro to
enable its use for both long double and _Float128, when they are
ABI-distinct.

	* sysdeps/ieee754/ldbl-128/printf_fphex.c: Include
	ldbl-128/printf_fphex_macros.h for the definition of PRINT_FPHEX.
	(PRINT_FPHEX_LONG_DOUBLE): Define based on PRINT_FPHEX.
	* sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
	(PRINT_FPHEX): New function-like macro that can be used for long
	double, as well as for _Float128
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch refactors the macro PRINT_FPHEX_LONG_DOUBLE from the file
sysdeps/ieee754/ldbl-128/printf_fphex.c into a function-like macro to
enable its use for both long double and _Float128, when they are
ABI-distinct.

	* sysdeps/ieee754/ldbl-128/printf_fphex.c: Include
	ldbl-128/printf_fphex_macros.h for the definition of PRINT_FPHEX.
	(PRINT_FPHEX_LONG_DOUBLE): Define based on PRINT_FPHEX.
	* sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
	(PRINT_FPHEX): New function-like macro that can be used for long
	double, as well as for _Float128
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove duplicated code from __printf_fp_l, __printf_fphex, and __printf_size</title>
<updated>2017-06-07T20:04:58+00:00</updated>
<author>
<name>Gabriel F. T. Gomes</name>
<email>gftg@linux.vnet.ibm.com</email>
</author>
<published>2017-05-29T13:49:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=aab0f374e7c43f6baf88db271865feabb7bcc1b2'/>
<id>aab0f374e7c43f6baf88db271865feabb7bcc1b2</id>
<content type='text'>
In __printf_fp_l, __printf_fphex, and __printf_size the blocks of code that are
used to read a double or long double argument, check for special values and
convert to multiprecision are similar.  When adding float128 support to libc,
more code would be duplicated to deal with the extra type.  This patch moves
the repetitive code to a macro which is now used by double and long double and
will be used for float128 when support is added, thus avoiding more
duplication.

Tested for powerpc64le and s390x.

	* stdio-common/printf_fp.c (PRINTF_FP_FETCH): New macro.
	(__printf_fp_l): Use the new macro to avoid duplicating code.
	* stdio-common/printf_fphex.c (PRINTF_FPHEX_FETCH): New macro.
	(__printf_fphex): Use the new macro to avoid duplicating code.
	* stdio-common/printf_size.c (PRINTF_SIZE_FETCH): New macro.
	(__printf_size): Use the new macro to avoid duplicating code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In __printf_fp_l, __printf_fphex, and __printf_size the blocks of code that are
used to read a double or long double argument, check for special values and
convert to multiprecision are similar.  When adding float128 support to libc,
more code would be duplicated to deal with the extra type.  This patch moves
the repetitive code to a macro which is now used by double and long double and
will be used for float128 when support is added, thus avoiding more
duplication.

Tested for powerpc64le and s390x.

	* stdio-common/printf_fp.c (PRINTF_FP_FETCH): New macro.
	(__printf_fp_l): Use the new macro to avoid duplicating code.
	* stdio-common/printf_fphex.c (PRINTF_FPHEX_FETCH): New macro.
	(__printf_fphex): Use the new macro to avoid duplicating code.
	* stdio-common/printf_size.c (PRINTF_SIZE_FETCH): New macro.
	(__printf_size): Use the new macro to avoid duplicating code.
</pre>
</div>
</content>
</entry>
<entry>
<title>float128: Add conversion from float128 to mpn</title>
<updated>2017-06-07T20:03:43+00:00</updated>
<author>
<name>Gabriel F. T. Gomes</name>
<email>gftg@linux.vnet.ibm.com</email>
</author>
<published>2016-11-03T14:26:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=32bf1d09dadee5b60df869ed3567a2b12c04e3fc'/>
<id>32bf1d09dadee5b60df869ed3567a2b12c04e3fc</id>
<content type='text'>
Reuse the code for __mpn_extract_long_double to implement
__mpn_extract_float128.

	* include/gmp.h: Include bits/floatn.h
	(__mpn_extract_float128): Declare when __HAVE_DISTINCT_FLOAT128 is 1.
	* stdlib/gmp-impl.h: Also check if alloca is not defined before
	including stack-alloc.h.  It could have been defined by other header
	which not necessarily defines HAVE_ALLOCA.
	* sysdeps/ieee754/float128/Makefile: New file.
	* sysdeps/ieee754/float128/float1282mpn.c: New file.
	* sysdeps/ieee754/float128/float128_private.h: Include gmp.h before
	redefining __mpn_extract_long_double to __mpn_extract_float128, then
	redefine __mpn_extract_long_double to __mpn_extract_float128.
	* sysdeps/ieee754/ldbl-128/ldbl2mpn.c: Replace long double with
	_Float128 to allow float128_private.h overrides.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reuse the code for __mpn_extract_long_double to implement
__mpn_extract_float128.

	* include/gmp.h: Include bits/floatn.h
	(__mpn_extract_float128): Declare when __HAVE_DISTINCT_FLOAT128 is 1.
	* stdlib/gmp-impl.h: Also check if alloca is not defined before
	including stack-alloc.h.  It could have been defined by other header
	which not necessarily defines HAVE_ALLOCA.
	* sysdeps/ieee754/float128/Makefile: New file.
	* sysdeps/ieee754/float128/float1282mpn.c: New file.
	* sysdeps/ieee754/float128/float128_private.h: Include gmp.h before
	redefining __mpn_extract_long_double to __mpn_extract_float128, then
	redefine __mpn_extract_long_double to __mpn_extract_float128.
	* sysdeps/ieee754/ldbl-128/ldbl2mpn.c: Replace long double with
	_Float128 to allow float128_private.h overrides.
</pre>
</div>
</content>
</entry>
<entry>
<title>float128: Extend the power of ten tables</title>
<updated>2017-06-07T19:58:42+00:00</updated>
<author>
<name>Paul E. Murphy</name>
<email>murphyp@linux.vnet.ibm.com</email>
</author>
<published>2016-11-04T11:57:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=82c19bdfe39164fda779c79a925c2050b19e421b'/>
<id>82c19bdfe39164fda779c79a925c2050b19e421b</id>
<content type='text'>
Update the power of ten tables used by the common implementation when long
double is not the most expressive real type.

	* stdlib/fpioconst.h: Include bits/floatn.h.
	(FPIOCONST_HAVE_EXTENDED_RANGE): New macro for testing how big the
	power of ten table should be.
	(FPIOCONST_POW10_ARRAY_SIZE): Use larger table if above is true.
	* stdlib/fpioconst.c (__tens): Use FPIOCONST_HAVE_EXTENDED_RANGE
	to include larger tables when _Float128 support is enabled.
	(_fpioconst_pow10): Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update the power of ten tables used by the common implementation when long
double is not the most expressive real type.

	* stdlib/fpioconst.h: Include bits/floatn.h.
	(FPIOCONST_HAVE_EXTENDED_RANGE): New macro for testing how big the
	power of ten table should be.
	(FPIOCONST_POW10_ARRAY_SIZE): Use larger table if above is true.
	* stdlib/fpioconst.c (__tens): Use FPIOCONST_HAVE_EXTENDED_RANGE
	to include larger tables when _Float128 support is enabled.
	(_fpioconst_pow10): Likewise.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix include paths in include/bits/types/*.h.</title>
<updated>2017-06-07T17:59:50+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2017-06-07T17:59:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/glibc.git/commit/?id=81df4d253dc3184fb003e4737b917e8d35c341d1'/>
<id>81df4d253dc3184fb003e4737b917e8d35c341d1</id>
<content type='text'>
Various include/bits/types/*.h files do

where the path specified is relative to the toplevel glibc source
directory.

That has the wrong number of ../ components to achieve the desired
effect; it actually searches relative to include/ for a file that does
not exist there, then goes on to search the #include &lt;&gt; paths
specified with -I, eventually finding the desired file via such a path
(e.g. sysdeps/nptl/) with the right number of directory components.
Before that it searches include/../.. because of the -Iinclude,
meaning that an appropriately named file outside the glibc source tree
can affect the build.

This patch changes all those files to do #include &lt;path&gt; without the
../../, as some such files already do.

Tested for x86_64.

	* include/bits/types/clock_t.h: Use #include &lt;path&gt; instead of
	#include "../../path".
	* include/bits/types/clockid_t.h: Likewise.
	* include/bits/types/struct_iovec.h: Likewise.
	* include/bits/types/struct_itimerspec.h: Likewise.
	* include/bits/types/struct_osockaddr.h: Likewise.
	* include/bits/types/struct_sigstack.h: Likewise.
	* include/bits/types/struct_timespec.h: Likewise.
	* include/bits/types/struct_timeval.h: Likewise.
	* include/bits/types/struct_tm.h: Likewise.
	* include/bits/types/time_t.h: Likewise.
	* include/bits/types/timer_t.h: Likewise.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Various include/bits/types/*.h files do

where the path specified is relative to the toplevel glibc source
directory.

That has the wrong number of ../ components to achieve the desired
effect; it actually searches relative to include/ for a file that does
not exist there, then goes on to search the #include &lt;&gt; paths
specified with -I, eventually finding the desired file via such a path
(e.g. sysdeps/nptl/) with the right number of directory components.
Before that it searches include/../.. because of the -Iinclude,
meaning that an appropriately named file outside the glibc source tree
can affect the build.

This patch changes all those files to do #include &lt;path&gt; without the
../../, as some such files already do.

Tested for x86_64.

	* include/bits/types/clock_t.h: Use #include &lt;path&gt; instead of
	#include "../../path".
	* include/bits/types/clockid_t.h: Likewise.
	* include/bits/types/struct_iovec.h: Likewise.
	* include/bits/types/struct_itimerspec.h: Likewise.
	* include/bits/types/struct_osockaddr.h: Likewise.
	* include/bits/types/struct_sigstack.h: Likewise.
	* include/bits/types/struct_timespec.h: Likewise.
	* include/bits/types/struct_timeval.h: Likewise.
	* include/bits/types/struct_tm.h: Likewise.
	* include/bits/types/time_t.h: Likewise.
	* include/bits/types/timer_t.h: Likewise.
</pre>
</div>
</content>
</entry>
</feed>
