This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 2/3] powerpc: Add redirection for finitef128, isinf128, and isnanf128


On powerpc64le, compiler support for float128 is not enabled by default
on gcc.  To enable it, the flag -mfloat128 must be passed as a command
line option to the compiler.  This means that only the few files that
actively have -mfloat128 passed as an argument get compiler support for
float128, whereas all other files don't.

When -mfloat128 becomes enabled by default on powerpc [1], all the files
that do not currently have compiler support for float128 enabled during
their compilation, will start to have it.  This will lead to build
errors in some of these files.

This patch defines __finitef128 as __redirect___finitef128 in
sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c, similarly to what's
done for the float, double, and long double versions of these functions,
to get rid of the build error.  Likewise for isinff128 and isnanf128.

[1] https://gcc.gnu.org/ml/gcc-patches/2017-08/msg01028.html

Tested for powerpc64le with patched [1] and unpatched gcc.

	* sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
	(__finitef128): Define to __redirect___finitef128.
	* sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
	(__isinff128): Define to __redirect___isinff128.
	* sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
	(__isnanf128): Define to __redirect___isnanf128.
---
 sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c | 1 +
 sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c  | 1 +
 sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c  | 1 +
 3 files changed, 3 insertions(+)

diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
index a5ec36b72f..19fc36e32d 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
+++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
@@ -19,6 +19,7 @@
 #define __finite __redirect___finite
 #define __finitef __redirect___finitef
 #define __finitel __redirect___finitel
+#define __finitef128 __redirect___finitef128
 #include <math.h>
 #include <math_ldbl_opt.h>
 #include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
index 9c6789c7bd..18c23c5884 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
+++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
@@ -19,6 +19,7 @@
 #define __isinf __redirect___isinf
 #define __isinff __redirect___isinff
 #define __isinfl __redirect___isinfl
+#define __isinff128 __redirect___isinff128
 #include <math.h>
 #include <math_ldbl_opt.h>
 #include <shlib-compat.h>
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
index 3cfe1793da..e193670b0e 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
+++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
@@ -19,6 +19,7 @@
 #define __isnan __redirect___isnan
 #define __isnanf __redirect___isnanf
 #define __isnanl __redirect___isnanl
+#define __isnanf128 __redirect___isnanf128
 #include <math.h>
 #include <math_ldbl_opt.h>
 #include <shlib-compat.h>
-- 
2.13.5


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]