Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Assume that we have isinf().
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 21 Feb 2020 18:18:27 +0000 (13:18 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 21 Feb 2020 19:30:47 +0000 (14:30 -0500)
Windows has this, and so do all other live platforms according to the
buildfarm, so remove the configure probe and src/port/ substitution.

This also lets us get rid of some configure probes that existed only
to support src/port/isinf.c.  I kept the port.h hack to force using
__builtin_isinf() on clang, though.

This is part of a series of commits to get rid of no-longer-relevant
configure checks and dead src/port/ code.  I'm committing them separately
to make it easier to back out individual changes if they prove less
portable than I expect.

Discussion: https://postgr.es/m/15379.1582221614@sss.pgh.pa.us

configure
configure.in
src/include/pg_config.h.in
src/include/port.h
src/port/isinf.c [deleted file]
src/tools/msvc/Solution.pm

index 9625a82f0da01ababced6030ae5af38d8fd5de1c..4bd68b99e58e02df35b1ae641e6e96cf22442dee 100755 (executable)
--- a/configure
+++ b/configure
@@ -12762,7 +12762,7 @@ $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
 fi
 
 
-for ac_header in atomic.h copyfile.h execinfo.h fp_class.h getopt.h ieeefp.h ifaddrs.h langinfo.h mbarrier.h poll.h sys/epoll.h sys/event.h sys/ipc.h sys/prctl.h sys/procctl.h sys/pstat.h sys/resource.h sys/select.h sys/sem.h sys/shm.h sys/sockio.h sys/tas.h sys/un.h termios.h ucred.h utime.h wchar.h wctype.h
+for ac_header in atomic.h copyfile.h execinfo.h getopt.h ifaddrs.h langinfo.h mbarrier.h poll.h sys/epoll.h sys/event.h sys/ipc.h sys/prctl.h sys/procctl.h sys/pstat.h sys/resource.h sys/select.h sys/sem.h sys/shm.h sys/sockio.h sys/tas.h sys/un.h termios.h ucred.h utime.h wchar.h wctype.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -15485,63 +15485,6 @@ $as_echo "#define HAVE_PS_STRINGS 1" >>confdefs.h
 
 fi
 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf" >&5
-$as_echo_n "checking for isinf... " >&6; }
-if ${ac_cv_func_isinf+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <math.h>
-double glob_double;
-
-int
-main ()
-{
-return isinf(glob_double) ? 0 : 1;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_func_isinf=yes
-else
-  ac_cv_func_isinf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_isinf" >&5
-$as_echo "$ac_cv_func_isinf" >&6; }
-
-if test $ac_cv_func_isinf = yes ; then
-
-$as_echo "#define HAVE_ISINF 1" >>confdefs.h
-
-else
-  case " $LIBOBJS " in
-  *" isinf.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS isinf.$ac_objext"
- ;;
-esac
-
-  # Look for a way to implement a substitute for isinf()
-  for ac_func in fpclass fp_class fp_class_d class
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- break
-fi
-done
-
-fi
-
 ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
 if test "x$ac_cv_func_dlopen" = xyes; then :
   $as_echo "#define HAVE_DLOPEN 1" >>confdefs.h
index a70870184fdbbe9c9a0f69b749ecb6b7e460199e..23ed5f92e0933580e5aba82817296965bc5d32b7 100644 (file)
@@ -1280,9 +1280,7 @@ AC_CHECK_HEADERS(m4_normalize([
    atomic.h
    copyfile.h
    execinfo.h
-   fp_class.h
    getopt.h
-   ieeefp.h
    ifaddrs.h
    langinfo.h
    mbarrier.h
@@ -1699,25 +1697,6 @@ if test "$pgac_cv_var_PS_STRINGS" = yes ; then
   AC_DEFINE([HAVE_PS_STRINGS], 1, [Define to 1 if the PS_STRINGS thing exists.])
 fi
 
-
-dnl Cannot use AC_CHECK_FUNC because isinf may be a macro
-AC_CACHE_CHECK([for isinf], ac_cv_func_isinf,
-[AC_LINK_IFELSE([AC_LANG_PROGRAM([
-#include <math.h>
-double glob_double;
-],
-[return isinf(glob_double) ? 0 : 1;])],
-[ac_cv_func_isinf=yes],
-[ac_cv_func_isinf=no])])
-
-if test $ac_cv_func_isinf = yes ; then
-  AC_DEFINE(HAVE_ISINF, 1, [Define to 1 if you have isinf().])
-else
-  AC_LIBOBJ(isinf)
-  # Look for a way to implement a substitute for isinf()
-  AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break])
-fi
-
 AC_REPLACE_FUNCS(m4_normalize([
    dlopen
    explicit_bzero
index e7de8f3b2b4bdc322aa77768e0a4c1f0ca007036..002e04000831a662a7ca42469be6cca5ca464649 100644 (file)
 /* Define to 1 if you have the `cbrt' function. */
 #undef HAVE_CBRT
 
-/* Define to 1 if you have the `class' function. */
-#undef HAVE_CLASS
-
 /* Define to 1 if you have the `clock_gettime' function. */
 #undef HAVE_CLOCK_GETTIME
 
 /* Define to 1 if you have the `fls' function. */
 #undef HAVE_FLS
 
-/* Define to 1 if you have the `fpclass' function. */
-#undef HAVE_FPCLASS
-
-/* Define to 1 if you have the `fp_class' function. */
-#undef HAVE_FP_CLASS
-
-/* Define to 1 if you have the `fp_class_d' function. */
-#undef HAVE_FP_CLASS_D
-
-/* Define to 1 if you have the <fp_class.h> header file. */
-#undef HAVE_FP_CLASS_H
-
 /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
 #undef HAVE_FSEEKO
 
 /* Define to 1 if you have the `history_truncate_file' function. */
 #undef HAVE_HISTORY_TRUNCATE_FILE
 
-/* Define to 1 if you have the <ieeefp.h> header file. */
-#undef HAVE_IEEEFP_H
-
 /* Define to 1 if you have the <ifaddrs.h> header file. */
 #undef HAVE_IFADDRS_H
 
 /* Define to 1 if you have support for IPv6. */
 #undef HAVE_IPV6
 
-/* Define to 1 if you have isinf(). */
-#undef HAVE_ISINF
-
 /* Define to 1 if __builtin_constant_p(x) implies "i"(x) acceptance. */
 #undef HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P
 
index 3f5f90fa0078e994ba9d4b068fd21a32acff4e2a..e40452c1ed0c89de7b0a7c09a6b4e67b266f12e7 100644 (file)
@@ -352,9 +352,6 @@ extern int  getpeereid(int sock, uid_t *uid, gid_t *gid);
 #endif
 #endif
 
-#ifndef HAVE_ISINF
-extern int isinf(double x);
-#else
 /*
  * Glibc doesn't use the builtin for clang due to a *gcc* bug in a version
  * newer than the gcc compatibility clang claims to have. This would cause a
@@ -370,7 +367,6 @@ extern int  isinf(double x);
 #define isinf __builtin_isinf
 #endif                         /* __has_builtin(isinf) */
 #endif                         /* __clang__ && !__cplusplus */
-#endif                         /* !HAVE_ISINF */
 
 #ifndef HAVE_EXPLICIT_BZERO
 extern void explicit_bzero(void *buf, size_t len);
diff --git a/src/port/isinf.c b/src/port/isinf.c
deleted file mode 100644 (file)
index 9bb40bc..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * isinf.c
- *
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- *   src/port/isinf.c
- *
- *-------------------------------------------------------------------------
- */
-
-#include "c.h"
-
-#include <float.h>
-#include <math.h>
-
-#if HAVE_FPCLASS               /* this is _not_ HAVE_FP_CLASS, and not typo */
-
-#if HAVE_IEEEFP_H
-#include <ieeefp.h>
-#endif
-
-int
-isinf(double d)
-{
-   fpclass_t   type = fpclass(d);
-
-   switch (type)
-   {
-       case FP_NINF:
-       case FP_PINF:
-           return 1;
-       default:
-           break;
-   }
-   return 0;
-}
-#else
-
-#if defined(HAVE_FP_CLASS) || defined(HAVE_FP_CLASS_D)
-
-#if HAVE_FP_CLASS_H
-#include <fp_class.h>
-#endif
-
-int
-isinf(double x)
-{
-#if HAVE_FP_CLASS
-   int         fpclass = fp_class(x);
-#else
-   int         fpclass = fp_class_d(x);
-#endif
-
-   if (fpclass == FP_POS_INF)
-       return 1;
-   if (fpclass == FP_NEG_INF)
-       return -1;
-   return 0;
-}
-
-#elif defined(HAVE_CLASS)
-
-int
-isinf(double x)
-{
-   int         fpclass = class(x);
-
-   if (fpclass == FP_PLUS_INF)
-       return 1;
-   if (fpclass == FP_MINUS_INF)
-       return -1;
-   return 0;
-}
-
-#endif
-
-#endif
index d1a4f183f3e6ab08f4f270baef118c7f49acfad2..8a703385ea288939715f7257dfff20f8d5cae573 100644 (file)
@@ -211,7 +211,6 @@ sub GenerateFiles
        HAVE_BIO_GET_DATA          => undef,
        HAVE_BIO_METH_NEW          => undef,
        HAVE_CBRT                  => undef,
-       HAVE_CLASS                 => undef,
        HAVE_CLOCK_GETTIME         => undef,
        HAVE_COMPUTED_GOTO         => undef,
        HAVE_COPYFILE              => undef,
@@ -240,10 +239,6 @@ sub GenerateFiles
        HAVE_EXPLICIT_BZERO                         => undef,
        HAVE_FDATASYNC                              => undef,
        HAVE_FLS                                    => undef,
-       HAVE_FPCLASS                                => undef,
-       HAVE_FP_CLASS                               => undef,
-       HAVE_FP_CLASS_D                             => undef,
-       HAVE_FP_CLASS_H                             => undef,
        HAVE_FSEEKO                                 => 1,
        HAVE_FUNCNAME__FUNC                         => undef,
        HAVE_FUNCNAME__FUNCTION                     => 1,
@@ -269,7 +264,6 @@ sub GenerateFiles
        HAVE_GSSAPI_H                               => undef,
        HAVE_HISTORY_H                              => undef,
        HAVE_HISTORY_TRUNCATE_FILE                  => undef,
-       HAVE_IEEEFP_H                               => undef,
        HAVE_IFADDRS_H                              => undef,
        HAVE_INET_ATON                              => undef,
        HAVE_INT_TIMEZONE                           => 1,
@@ -279,7 +273,6 @@ sub GenerateFiles
        HAVE_INT_OPTERR                             => undef,
        HAVE_INT_OPTRESET                           => undef,
        HAVE_IPV6                                   => 1,
-       HAVE_ISINF                                  => 1,
        HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P       => undef,
        HAVE_KQUEUE                                 => undef,
        HAVE_LANGINFO_H                             => undef,