mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
configure.in: check atan2
* configure.in (rb_cv_atan2_inf_c99): check whether runtime atan2 handles Inf as C99. ruby-core:62536] [Bug #9831] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b063dd016c
commit
f0fc13aaea
3 changed files with 35 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Mon May 12 23:57:15 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* configure.in (rb_cv_atan2_inf_c99): check whether runtime atan2
|
||||||
|
handles Inf as C99. ruby-core:62536] [Bug #9831]
|
||||||
|
|
||||||
Mon May 12 20:33:01 2014 Tanaka Akira <akr@fsij.org>
|
Mon May 12 20:33:01 2014 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
* configure.in: Invoke AC_REPLACE_FUNCS for each function.
|
* configure.in: Invoke AC_REPLACE_FUNCS for each function.
|
||||||
|
|
29
configure.in
29
configure.in
|
@ -2145,6 +2145,35 @@ void qsort_r(void *base, size_t nmemb, size_t size,
|
||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK(whether atan2 handles Inf as C99, rb_cv_atan2_inf_c99, [
|
||||||
|
AS_IF([test $ac_cv_func_atan2f:$ac_cv_func_atan2l = yes:yes], [
|
||||||
|
AC_TRY_RUN([
|
||||||
|
@%:@include <math.h>
|
||||||
|
@%:@ifdef HAVE_UNISTD_H
|
||||||
|
@%:@include <unistd.h>
|
||||||
|
@%:@endif
|
||||||
|
@%:@ifndef EXIT_SUCCESS
|
||||||
|
@%:@define EXIT_SUCCESS 0
|
||||||
|
@%:@endif
|
||||||
|
@%:@ifndef EXIT_FAILURE
|
||||||
|
@%:@define EXIT_FAILURE 1
|
||||||
|
@%:@endif
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
if (fabs(atan2(INFINITY, INFINITY) - M_PI_4) <= 0.01) return EXIT_SUCCESS;
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[rb_cv_atan2_inf_c99=yes],
|
||||||
|
[rb_cv_atan2_inf_c99=no],
|
||||||
|
[AS_CASE($target_os, [mingw*|mswin*], [rb_cv_atan2_inf_c99=no], [rb_cv_atan2_inf_c99=yes])]
|
||||||
|
)
|
||||||
|
])
|
||||||
|
])
|
||||||
|
AS_IF([test $rb_cv_atan2_inf_c99 = yes], [AC_DEFINE(ATAN2_INF_C99)])
|
||||||
|
|
||||||
# Some platform need -lrt for clock_gettime, but the other don't.
|
# Some platform need -lrt for clock_gettime, but the other don't.
|
||||||
if test x"$ac_cv_func_clock_gettime" != xyes; then
|
if test x"$ac_cv_func_clock_gettime" != xyes; then
|
||||||
# glibc 2.17 moves clock_* functions from librt to the main C library.
|
# glibc 2.17 moves clock_* functions from librt to the main C library.
|
||||||
|
|
3
math.c
3
math.c
|
@ -79,8 +79,7 @@ math_atan2(VALUE obj, VALUE y, VALUE x)
|
||||||
return DBL2NUM(M_PI);
|
return DBL2NUM(M_PI);
|
||||||
return DBL2NUM(-M_PI);
|
return DBL2NUM(-M_PI);
|
||||||
}
|
}
|
||||||
#if !(defined(HAVE_ATAN2L) && defined(HAVE_ATAN2F))
|
#ifndef ATAN2_INF_C99
|
||||||
/* assume atan2() doesn't handle Inf as C99 */
|
|
||||||
if (isinf(dx) && isinf(dy)) {
|
if (isinf(dx) && isinf(dy)) {
|
||||||
/* optimization for FLONUM */
|
/* optimization for FLONUM */
|
||||||
if (dx < 0.0) {
|
if (dx < 0.0) {
|
||||||
|
|
Loading…
Reference in a new issue