From abe41f453a5c42129e21825d75450aced0053eb8 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 21 Feb 2020 13:24:21 -0500 Subject: [PATCH] Assume that we have cbrt(). Windows has this, and so do all other live platforms according to the buildfarm, so remove the configure probe and float.c's substitute code. 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 | 2 +- configure.in | 1 - src/backend/utils/adt/float.c | 38 ----------------------------------- src/include/pg_config.h.in | 3 --- src/tools/msvc/Solution.pm | 1 - 5 files changed, 1 insertion(+), 44 deletions(-) diff --git a/configure b/configure index 4bd68b99e5..4041051d59 100755 --- a/configure +++ b/configure @@ -14925,7 +14925,7 @@ fi LIBS_including_readline="$LIBS" LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'` -for ac_func in backtrace_symbols cbrt clock_gettime copyfile fdatasync getifaddrs getpeerucred getrlimit kqueue mbstowcs_l memset_s memmove poll posix_fallocate ppoll pstat pthread_is_threaded_np readlink setproctitle setproctitle_fast setsid shm_open strchrnul strsignal symlink sync_file_range uselocale utime utimes wcstombs_l +for ac_func in backtrace_symbols clock_gettime copyfile fdatasync getifaddrs getpeerucred getrlimit kqueue mbstowcs_l memset_s memmove poll posix_fallocate ppoll pstat pthread_is_threaded_np readlink setproctitle setproctitle_fast setsid shm_open strchrnul strsignal symlink sync_file_range uselocale utime utimes wcstombs_l 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" diff --git a/configure.in b/configure.in index 23ed5f92e0..7660c77767 100644 --- a/configure.in +++ b/configure.in @@ -1618,7 +1618,6 @@ LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'` AC_CHECK_FUNCS(m4_normalize([ backtrace_symbols - cbrt clock_gettime copyfile fdatasync diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c index 012c3252f3..34af0eb22b 100644 --- a/src/backend/utils/adt/float.c +++ b/src/backend/utils/adt/float.c @@ -72,19 +72,6 @@ static double sind_q1(double x); static double cosd_q1(double x); static void init_degree_constants(void); -#ifndef HAVE_CBRT -/* - * Some machines (in particular, some versions of AIX) have an extern - * declaration for cbrt() in but fail to provide the actual - * function, which causes configure to not set HAVE_CBRT. Furthermore, - * their compilers spit up at the mismatch between extern declaration - * and static definition. We work around that here by the expedient - * of a #define to make the actual name of the static function different. - */ -#define cbrt my_cbrt -static double cbrt(double x); -#endif /* HAVE_CBRT */ - /* * We use these out-of-line ereport() calls to report float overflow, @@ -3964,28 +3951,3 @@ width_bucket_float8(PG_FUNCTION_ARGS) PG_RETURN_INT32(result); } - -/* ========== PRIVATE ROUTINES ========== */ - -#ifndef HAVE_CBRT - -static double -cbrt(double x) -{ - int isneg = (x < 0.0); - double absx = fabs(x); - double tmpres = pow(absx, (double) 1.0 / (double) 3.0); - - /* - * The result is somewhat inaccurate --- not really pow()'s fault, as the - * exponent it's handed contains roundoff error. We can improve the - * accuracy by doing one iteration of Newton's formula. Beware of zero - * input however. - */ - if (tmpres > 0.0) - tmpres -= (tmpres - absx / (tmpres * tmpres)) / (double) 3.0; - - return isneg ? -tmpres : tmpres; -} - -#endif /* !HAVE_CBRT */ diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 002e040008..9de9ae6631 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -101,9 +101,6 @@ /* Define to 1 if you have the `BIO_meth_new' function. */ #undef HAVE_BIO_METH_NEW -/* Define to 1 if you have the `cbrt' function. */ -#undef HAVE_CBRT - /* Define to 1 if you have the `clock_gettime' function. */ #undef HAVE_CLOCK_GETTIME diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 8a703385ea..81b0bf2128 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -210,7 +210,6 @@ sub GenerateFiles HAVE_BACKTRACE_SYMBOLS => undef, HAVE_BIO_GET_DATA => undef, HAVE_BIO_METH_NEW => undef, - HAVE_CBRT => undef, HAVE_CLOCK_GETTIME => undef, HAVE_COMPUTED_GOTO => undef, HAVE_COPYFILE => undef,