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.
This commit is contained in:
Joseph Myers 2015-09-16 22:04:40 +00:00
parent da2f4f2dd5
commit 1f11365a75
4 changed files with 31 additions and 22 deletions

View file

@ -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.

2
NEWS
View file

@ -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.

View file

@ -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)

View file

@ -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_));