about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-09-16 22:04:40 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-09-16 22:04:40 +0000
commit1f11365a75a1eedf07a221938e79cd6c9b915ccb (patch)
tree1a7a8d4ad08c4b0b88fe3f57017dabfada5b7a4b
parentda2f4f2dd5c07e1949f81a5ee23f880e891e3a82 (diff)
downloadglibc-1f11365a75a1eedf07a221938e79cd6c9b915ccb.tar.gz
glibc-1f11365a75a1eedf07a221938e79cd6c9b915ccb.tar.xz
glibc-1f11365a75a1eedf07a221938e79cd6c9b915ccb.zip
Don't declare float / long double Bessel functions for XSI POSIX (bug 18977).
The float and long double versions of Bessel function (j0f, y1l, etc.)
are not in POSIX; only the double versions are.  This patch
accordingly limits the declarations of those functions to __USE_MISC,
and fixes the conform/ test expectations which matched the previous
incorrect declarations.

Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by this patch).

	[BZ #18977]
	* math/bits/mathcalls.h
	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (j0): Do
	not declare.
	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (j1):
	Likewise.
	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (jn):
	Likewise.
	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (y0):
	Likewise.
	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (y1):
	Likewise.
	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (yn):
	Likewise.
	* conform/data/math.h-data
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j0f): Do not expect
	function.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j1f): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (jnf): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y0f): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y1f): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (ynf): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j0l): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j1l): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (jnl): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y0l): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y1l): Likewise.
	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (ynl): Likewise.
-rw-r--r--ChangeLog29
-rw-r--r--NEWS2
-rw-r--r--conform/data/math.h-data20
-rw-r--r--math/bits/mathcalls.h2
4 files changed, 31 insertions, 22 deletions
diff --git a/ChangeLog b/ChangeLog
index 7751dfac9d..deef2a31a6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,34 @@
 2015-09-16  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #18977]
+	* math/bits/mathcalls.h
+	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (j0): Do
+	not declare.
+	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (j1):
+	Likewise.
+	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (jn):
+	Likewise.
+	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (y0):
+	Likewise.
+	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (y1):
+	Likewise.
+	[!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (yn):
+	Likewise.
+	* conform/data/math.h-data
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j0f): Do not expect
+	function.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j1f): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (jnf): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y0f): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y1f): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (ynf): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j0l): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j1l): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (jnl): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y0l): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y1l): Likewise.
+	[!ISO99 && !ISO11 && !POSIX && !POSIX2008] (ynl): Likewise.
+
 	[BZ #6803]
 	* math/s_ldexp.c (scalbn): Define as weak alias of __ldexp.
 	[NO_LONG_DOUBLE] (scalbnl): Define as weak alias of __ldexp.
diff --git a/NEWS b/NEWS
index 7d3955c834..30f796aead 100644
--- a/NEWS
+++ b/NEWS
@@ -15,7 +15,7 @@ Version 2.23
   18525, 18595, 18610, 18618, 18647, 18661, 18674, 18675, 18681, 18757,
   18778, 18781, 18787, 18789, 18790, 18795, 18796, 18820, 18823, 18824,
   18857, 18863, 18870, 18872, 18873, 18875, 18887, 18921, 18952, 18961,
-  18966, 18967.
+  18966, 18967, 18977.
 
 * The obsolete header <regexp.h> has been removed.  Programs that require
   this header must be updated to use <regex.h> instead.
diff --git a/conform/data/math.h-data b/conform/data/math.h-data
index 0a05b8dc5d..71533339ce 100644
--- a/conform/data/math.h-data
+++ b/conform/data/math.h-data
@@ -192,18 +192,8 @@ function float tanhf (float)
 function float erff (float)
 function float erfcf (float)
 function float hypotf (float, float)
-#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
-function float j0f (float)
-function float j1f (float)
-function float jnf (int, float)
-#endif
 function float lgammaf (float)
 function float tgammaf (float)
-#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
-function float y0f (float)
-function float y1f (float)
-function float ynf (int, float)
-#endif
 function float acoshf (float)
 function float asinhf (float)
 function float atanhf (float)
@@ -260,18 +250,8 @@ function {long double} tanhl (long double)
 function {long double} erfl (long double)
 function {long double} erfcl (long double)
 function {long double} hypotl (long double, long double)
-#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
-function {long double} j0l (long double)
-function {long double} j1l (long double)
-function {long double} jnl (int, long double)
-#endif
 function {long double} lgammal (long double)
 function {long double} tgammal (long double)
-#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
-function {long double} y0l (long double)
-function {long double} y1l (long double)
-function {long double} ynl (int, long double)
-#endif
 function {long double} acoshl (long double)
 function {long double} asinhl (long double)
 function {long double} atanhl (long double)
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index 7ffe0407e9..0b3fc8611f 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -234,7 +234,7 @@ __MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
 __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
 #endif
 
-#if defined __USE_MISC || defined __USE_XOPEN
+#if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE)
 /* Bessel functions.  */
 __MATHCALL (j0,, (_Mdouble_));
 __MATHCALL (j1,, (_Mdouble_));