Make float128_private.h work with generic ieee754.h.

float128_private.h redefines ieee754.h identifiers ieee854_long_double
and IEEE854_LONG_DOUBLE_BIAS to map them to identifiers from
ieee754_float128.h.

This causes problems when ieee754.h is included after
float128_private.h and it's a version of ieee754.h that also defines
those identifiers; specifically, sysdeps/ieee754/ieee754.h, which
defines those identifiers for the x86 extended format.  This patch
fixes this by ensuring an include of ieee754.h from float128_private.h
before the redefinitions.

Tested for x86_64 (in conjunction with float128 patches).

	* sysdeps/ieee754/float128/float128_private.h: Include
	<ieee754.h>.
This commit is contained in:
Joseph Myers 2017-06-22 22:53:01 +00:00
parent d08cdabdd0
commit db7a548d02
2 changed files with 7 additions and 0 deletions

View File

@ -1,5 +1,8 @@
2017-06-22 Joseph Myers <joseph@codesourcery.com>
* sysdeps/ieee754/float128/float128_private.h: Include
<ieee754.h>.
* sysdeps/generic/math_private.h (__EXPR_FLT128): Do not apply
typeof to argument passed to __builtin_types_compatible_p.
(min_of_type): Pass type argument, not x, to __EXPR_FLT128.

View File

@ -23,6 +23,10 @@
#define HUGE_VALL HUGE_VAL_F128
#include <math/mul_splitl.h>
/* This must be included before the renames of types and macros from
it. */
#include <ieee754.h>
/* Renames derived from math_private.h. */
#include <math_private.h>
#include <ieee754_float128.h>