about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-06-22 22:53:01 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-06-22 22:53:01 +0000
commitdb7a548d02a9a47e8592d67980ffd1faeab3e20f (patch)
tree6aed0b6ed69f091511d0245642ed406bff7f15c5
parentd08cdabdd096325a3296713c87672f213b05f5c6 (diff)
downloadglibc-db7a548d02a9a47e8592d67980ffd1faeab3e20f.tar.gz
glibc-db7a548d02a9a47e8592d67980ffd1faeab3e20f.tar.xz
glibc-db7a548d02a9a47e8592d67980ffd1faeab3e20f.zip
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>.
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/ieee754/float128/float128_private.h4
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index cd886956ae..d1de2109fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h
index 1e00853c83..c8b153d0c1 100644
--- a/sysdeps/ieee754/float128/float128_private.h
+++ b/sysdeps/ieee754/float128/float128_private.h
@@ -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>