about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog32
-rw-r--r--sysdeps/arm/ldbl-classify-compat.h (renamed from sysdeps/sh/math_private.h)6
-rw-r--r--sysdeps/arm/math_private.h4
-rw-r--r--sysdeps/generic/ldbl-classify-compat.h33
-rw-r--r--sysdeps/ieee754/dbl-64/s_finite.c3
-rw-r--r--sysdeps/ieee754/dbl-64/s_isinf.c3
-rw-r--r--sysdeps/ieee754/dbl-64/s_isnan.c3
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c3
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c3
-rw-r--r--sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c3
-rw-r--r--sysdeps/m68k/coldfire/ldbl-classify-compat.h (renamed from sysdeps/nios2/math_private.h)6
-rw-r--r--sysdeps/microblaze/ldbl-classify-compat.h (renamed from sysdeps/m68k/coldfire/math_private.h)6
-rw-r--r--sysdeps/mips/ldbl-classify-compat.h (renamed from sysdeps/microblaze/math_private.h)6
-rw-r--r--sysdeps/mips/math_private.h4
-rw-r--r--sysdeps/nios2/ldbl-classify-compat.h8
-rw-r--r--sysdeps/sh/ldbl-classify-compat.h8
16 files changed, 101 insertions, 30 deletions
diff --git a/ChangeLog b/ChangeLog
index 735090ef57..1453e9cc9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,37 @@
 2018-02-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/generic/ldbl-classify-compat.h: New file.
+	* sysdeps/arm/ldbl-classify-compat.h: Likewise.
+	* sysdeps/m68k/coldfire/ldbl-classify-compat.h: Likewise.
+	* sysdeps/microblaze/ldbl-classify-compat.h: Likewise.
+	* sysdeps/mips/ldbl-classify-compat.h: Likewise.
+	* sysdeps/nios2/ldbl-classify-compat.h: Likewise.
+	* sysdeps/sh/ldbl-classify-compat.h: Likewise.
+	* sysdeps/ieee754/dbl-64/s_finite.c: Include
+	<ldbl-classify-compat.h>.
+	[LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+	* sysdeps/ieee754/dbl-64/s_isinf.c: Include
+	<ldbl-classify-compat.h>.
+	[LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+	* sysdeps/ieee754/dbl-64/s_isnan.c: Include
+	<ldbl-classify-compat.h>.
+	[LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c: Include
+	<ldbl-classify-compat.h>.
+	[LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c: Include
+	<ldbl-classify-compat.h>.
+	[LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Include
+	<ldbl-classify-compat.h>.
+	[LDBL_CLASSIFY_COMPAT]: Test value, not whether defined.
+	* sysdeps/arm/math_private.h (LDBL_CLASSIFY_COMPAT): Remove macro.
+	* sysdeps/mips/math_private.h (LDBL_CLASSIFY_COMPAT): Likewise.
+	* sysdeps/m68k/coldfire/math_private.h: Remove file.
+	* sysdeps/microblaze/math_private.h: Likewise.
+	* sysdeps/nios2/math_private.h: Likewise.
+	* sysdeps/sh/math_private.h: Likewise.
+
 	* sysdeps/m68k/coldfire/fpu/math_private.h: Move to ....
 	* sysdeps/m68k/coldfire/math_private.h: ... here.
 	* sysdeps/m68k/coldfire/nofpu/math_private.h: Remove file.
diff --git a/sysdeps/sh/math_private.h b/sysdeps/arm/ldbl-classify-compat.h
index d13f2d49d3..f3f10607ca 100644
--- a/sysdeps/sh/math_private.h
+++ b/sysdeps/arm/ldbl-classify-compat.h
@@ -1,10 +1,8 @@
-#ifndef SH_MATH_PRIVATE_H
-#define SH_MATH_PRIVATE_H 1
+#ifndef ARM_LDBL_CLASSIFY_COMPAT_H
+#define ARM_LDBL_CLASSIFY_COMPAT_H 1
 
 /* Enable __finitel, __isinfl, and __isnanl for binary compatibility
    when built without long double support. */
 #define LDBL_CLASSIFY_COMPAT 1
 
-#include_next <math_private.h>
-
 #endif
diff --git a/sysdeps/arm/math_private.h b/sysdeps/arm/math_private.h
index d39e9ee24a..c175b15601 100644
--- a/sysdeps/arm/math_private.h
+++ b/sysdeps/arm/math_private.h
@@ -1,10 +1,6 @@
 #ifndef ARM_MATH_PRIVATE_H
 #define ARM_MATH_PRIVATE_H 1
 
-/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
-   when built without long double support. */
-#define LDBL_CLASSIFY_COMPAT 1
-
 #include "fenv_private.h"
 #include_next <math_private.h>
 
diff --git a/sysdeps/generic/ldbl-classify-compat.h b/sysdeps/generic/ldbl-classify-compat.h
new file mode 100644
index 0000000000..d77ca18275
--- /dev/null
+++ b/sysdeps/generic/ldbl-classify-compat.h
@@ -0,0 +1,33 @@
+/* Specify whether there should be compat symbol aliases for some
+   classification functions.  Generic version.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LDBL_CLASSIFY_COMPAT_H
+#define _LDBL_CLASSIFY_COMPAT_H	1
+
+/* If defined to 1, enable __finitel, __isinfl, and __isnanl function
+   aliases for binary compatibility when built without long double
+   support.  If defined to 0, or if long double does not have the same
+   format as double, there are no such aliases.  New ports should use
+   the default definition of this as 0, as such
+   implementation-namespace functions should only have one exported
+   name per floating-point format, not one per floating-point
+   type.  */
+#define LDBL_CLASSIFY_COMPAT 0
+
+#endif /* ldbl-classify-compat.h */
diff --git a/sysdeps/ieee754/dbl-64/s_finite.c b/sysdeps/ieee754/dbl-64/s_finite.c
index eed80c6449..da1519b1d0 100644
--- a/sysdeps/ieee754/dbl-64/s_finite.c
+++ b/sysdeps/ieee754/dbl-64/s_finite.c
@@ -21,6 +21,7 @@ static char rcsid[] = "$NetBSD: s_finite.c,v 1.8 1995/05/10 20:47:17 jtc Exp $";
 
 #include <math.h>
 #include <math_private.h>
+#include <ldbl-classify-compat.h>
 #include <shlib-compat.h>
 
 #undef __finite
@@ -38,7 +39,7 @@ int FINITE(double x)
 hidden_def (__finite)
 weak_alias (__finite, finite)
 #ifdef NO_LONG_DOUBLE
-# ifdef LDBL_CLASSIFY_COMPAT
+# if LDBL_CLASSIFY_COMPAT
 #  if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
 compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
 #  endif
diff --git a/sysdeps/ieee754/dbl-64/s_isinf.c b/sysdeps/ieee754/dbl-64/s_isinf.c
index c0ad54538a..93eb65c147 100644
--- a/sysdeps/ieee754/dbl-64/s_isinf.c
+++ b/sysdeps/ieee754/dbl-64/s_isinf.c
@@ -15,6 +15,7 @@ static char rcsid[] = "$NetBSD: s_isinf.c,v 1.3 1995/05/11 23:20:14 jtc Exp $";
 
 #include <math.h>
 #include <math_private.h>
+#include <ldbl-classify-compat.h>
 #include <shlib-compat.h>
 
 int
@@ -29,7 +30,7 @@ __isinf (double x)
 hidden_def (__isinf)
 weak_alias (__isinf, isinf)
 #ifdef NO_LONG_DOUBLE
-# if defined LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+# if LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
 compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
 # endif
 weak_alias (__isinf, isinfl)
diff --git a/sysdeps/ieee754/dbl-64/s_isnan.c b/sysdeps/ieee754/dbl-64/s_isnan.c
index 642ec3a494..82723eeb8a 100644
--- a/sysdeps/ieee754/dbl-64/s_isnan.c
+++ b/sysdeps/ieee754/dbl-64/s_isnan.c
@@ -21,6 +21,7 @@ static char rcsid[] = "$NetBSD: s_isnan.c,v 1.8 1995/05/10 20:47:36 jtc Exp $";
 
 #include <math.h>
 #include <math_private.h>
+#include <ldbl-classify-compat.h>
 #include <shlib-compat.h>
 
 #undef __isnan
@@ -37,7 +38,7 @@ __isnan (double x)
 hidden_def (__isnan)
 weak_alias (__isnan, isnan)
 #ifdef NO_LONG_DOUBLE
-# if defined LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+# if LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
 compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
 # endif
 weak_alias (__isnan, isnanl)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
index ef51608f6e..40676924fe 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
@@ -16,6 +16,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <ldbl-classify-compat.h>
 #include <shlib-compat.h>
 #include <stdint.h>
 
@@ -30,7 +31,7 @@ __finite(double x)
 hidden_def (__finite)
 weak_alias (__finite, finite)
 #ifdef NO_LONG_DOUBLE
-# ifdef LDBL_CLASSIFY_COMPAT
+# if LDBL_CLASSIFY_COMPAT
 #  if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
 compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
 #  endif
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c
index 951fb73239..2b427a8b4c 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c
@@ -11,6 +11,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <ldbl-classify-compat.h>
 #include <shlib-compat.h>
 
 int
@@ -26,7 +27,7 @@ __isinf (double x)
 hidden_def (__isinf)
 weak_alias (__isinf, isinf)
 #ifdef NO_LONG_DOUBLE
-# if defined LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+# if LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
 compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
 # endif
 weak_alias (__isinf, isinfl)
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
index bcff9e3b67..cd805d157b 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
@@ -17,6 +17,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <ldbl-classify-compat.h>
 #include <shlib-compat.h>
 #include <stdint.h>
 
@@ -32,7 +33,7 @@ int __isnan(double x)
 hidden_def (__isnan)
 weak_alias (__isnan, isnan)
 #ifdef NO_LONG_DOUBLE
-# if defined LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+# if LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
 compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
 # endif
 weak_alias (__isnan, isnanl)
diff --git a/sysdeps/nios2/math_private.h b/sysdeps/m68k/coldfire/ldbl-classify-compat.h
index bc7f9c8e90..c1ec4d4ffa 100644
--- a/sysdeps/nios2/math_private.h
+++ b/sysdeps/m68k/coldfire/ldbl-classify-compat.h
@@ -1,10 +1,8 @@
-#ifndef NIO2_MATH_PRIVATE_H
-#define NIO2_MATH_PRIVATE_H 1
+#ifndef COLDFIRE_LDBL_CLASSIFY_COMPAT_H
+#define COLDFIRE_LDBL_CLASSIFY_COMPAT_H 1
 
 /* Enable __finitel, __isinfl, and __isnanl for binary compatibility
    when built without long double support. */
 #define LDBL_CLASSIFY_COMPAT 1
 
-#include_next <math_private.h>
-
 #endif
diff --git a/sysdeps/m68k/coldfire/math_private.h b/sysdeps/microblaze/ldbl-classify-compat.h
index d306a508b4..38c5c99949 100644
--- a/sysdeps/m68k/coldfire/math_private.h
+++ b/sysdeps/microblaze/ldbl-classify-compat.h
@@ -1,10 +1,8 @@
-#ifndef COLDFIRE_MATH_PRIVATE_H
-#define COLDFIRE_MATH_PRIVATE_H 1
+#ifndef MICROBLAZE_LDBL_CLASSIFY_COMPAT_H
+#define MICROBLAZE_LDBL_CLASSIFY_COMPAT_H 1
 
 /* Enable __finitel, __isinfl, and __isnanl for binary compatibility
    when built without long double support. */
 #define LDBL_CLASSIFY_COMPAT 1
 
-#include_next <math_private.h>
-
 #endif
diff --git a/sysdeps/microblaze/math_private.h b/sysdeps/mips/ldbl-classify-compat.h
index 64dc18133f..547ac7b53a 100644
--- a/sysdeps/microblaze/math_private.h
+++ b/sysdeps/mips/ldbl-classify-compat.h
@@ -1,10 +1,8 @@
-#ifndef MICROBLAZE_MATH_PRIVATE_H
-#define MICROBLAZE_MATH_PRIVATE_H 1
+#ifndef MIPS_LDBL_CLASSIFY_COMPAT_H
+#define MIPS_LDBL_CLASSIFY_COMPAT_H 1
 
 /* Enable __finitel, __isinfl, and __isnanl for binary compatibility
    when built without long double support. */
 #define LDBL_CLASSIFY_COMPAT 1
 
-#include_next <math_private.h>
-
 #endif
diff --git a/sysdeps/mips/math_private.h b/sysdeps/mips/math_private.h
index a3c25138c7..01ae8b18fd 100644
--- a/sysdeps/mips/math_private.h
+++ b/sysdeps/mips/math_private.h
@@ -240,10 +240,6 @@ libc_feholdsetround_mips_ctx (struct rm_ctx *ctx, int round)
 
 #endif
 
-/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
-   when built without long double support. */
-#define LDBL_CLASSIFY_COMPAT 1
-
 #include_next <math_private.h>
 
 #endif
diff --git a/sysdeps/nios2/ldbl-classify-compat.h b/sysdeps/nios2/ldbl-classify-compat.h
new file mode 100644
index 0000000000..a9614de9df
--- /dev/null
+++ b/sysdeps/nios2/ldbl-classify-compat.h
@@ -0,0 +1,8 @@
+#ifndef NIOS2_LDBL_CLASSIFY_COMPAT_H
+#define NIOS2_LDBL_CLASSIFY_COMPAT_H 1
+
+/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
+   when built without long double support. */
+#define LDBL_CLASSIFY_COMPAT 1
+
+#endif
diff --git a/sysdeps/sh/ldbl-classify-compat.h b/sysdeps/sh/ldbl-classify-compat.h
new file mode 100644
index 0000000000..d3b978cdff
--- /dev/null
+++ b/sysdeps/sh/ldbl-classify-compat.h
@@ -0,0 +1,8 @@
+#ifndef SH_LDBL_CLASSIFY_COMPAT_H
+#define SH_LDBL_CLASSIFY_COMPAT_H 1
+
+/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
+   when built without long double support. */
+#define LDBL_CLASSIFY_COMPAT 1
+
+#endif