diff --git a/ChangeLog b/ChangeLog index 735090ef57..1453e9cc9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,37 @@ 2018-02-01 Joseph Myers + * 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]: Test value, not whether defined. + * sysdeps/ieee754/dbl-64/s_isinf.c: Include + . + [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined. + * sysdeps/ieee754/dbl-64/s_isnan.c: Include + . + [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined. + * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c: Include + . + [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined. + * sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c: Include + . + [LDBL_CLASSIFY_COMPAT]: Test value, not whether defined. + * sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Include + . + [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 similarity index 64% rename from sysdeps/sh/math_private.h rename to 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 - #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 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 + . */ + +#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 #include +#include #include #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 #include +#include #include 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 #include +#include #include #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 #include +#include #include #include @@ -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 #include +#include #include 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 #include +#include #include #include @@ -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 similarity index 63% rename from sysdeps/nios2/math_private.h rename to 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 - #endif diff --git a/sysdeps/m68k/coldfire/math_private.h b/sysdeps/microblaze/ldbl-classify-compat.h similarity index 61% rename from sysdeps/m68k/coldfire/math_private.h rename to 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 - #endif diff --git a/sysdeps/microblaze/math_private.h b/sysdeps/mips/ldbl-classify-compat.h similarity index 60% rename from sysdeps/microblaze/math_private.h rename to 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 - #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 #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