From 2b6b5b7ff749a9b84c75ea07332a636671ad64ee Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Sun, 24 Jul 2022 00:12:37 +1200 Subject: [PATCH v3 07/13] Remove dead replacement code for clock_gettime(). clock_gettime() is in SUSv2 (realtime) and all targeted Unix systems have it. Fallback code for old Unix is no longer reachable on modern systems, though we still need Windows-specific code. There is no need to retain a HAVE_CLOCK_GETTIME macro here, because it is used in contexts that have very obvious Unix and Windows code variants. XXX This can only be committed once prairedog is decommissioned, because macOS 10.4 didn't have clock_gettime(). Reviewed-by: Tom Lane Discussion: https://postgr.es/m/CA+hUKGJ3LHeP9w5Fgzdr4G8AnEtJ=z=p6hGDEm4qYGEUX5B6fQ@mail.gmail.com --- configure | 2 +- configure.ac | 1 - src/include/pg_config.h.in | 3 -- src/include/portability/instr_time.h | 68 ---------------------------- src/tools/msvc/Solution.pm | 1 - 5 files changed, 1 insertion(+), 74 deletions(-) diff --git a/configure b/configure index 6358bdcabc..fc1739b431 100755 --- a/configure +++ b/configure @@ -16039,7 +16039,7 @@ fi LIBS_including_readline="$LIBS" LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'` -for ac_func in backtrace_symbols clock_gettime copyfile fdatasync getifaddrs getpeerucred inet_pton kqueue mbstowcs_l memset_s poll posix_fallocate ppoll pthread_is_threaded_np readv setproctitle setproctitle_fast strchrnul strsignal syncfs sync_file_range uselocale wcstombs_l writev +for ac_func in backtrace_symbols copyfile fdatasync getifaddrs getpeerucred inet_pton kqueue mbstowcs_l memset_s poll posix_fallocate ppoll pthread_is_threaded_np readv setproctitle setproctitle_fast strchrnul strsignal syncfs sync_file_range uselocale wcstombs_l writev 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.ac b/configure.ac index 3cf42d1ce4..7e071ce585 100644 --- a/configure.ac +++ b/configure.ac @@ -1792,7 +1792,6 @@ LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'` AC_CHECK_FUNCS(m4_normalize([ backtrace_symbols - clock_gettime copyfile fdatasync getifaddrs diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index beb42549c1..16c160af4c 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -83,9 +83,6 @@ /* Define to 1 if you have the `BIO_meth_new' function. */ #undef HAVE_BIO_METH_NEW -/* Define to 1 if you have the `clock_gettime' function. */ -#undef HAVE_CLOCK_GETTIME - /* Define to 1 if your compiler handles computed gotos. */ #undef HAVE_COMPUTED_GOTO diff --git a/src/include/portability/instr_time.h b/src/include/portability/instr_time.h index ca09a1608f..8faeca8b49 100644 --- a/src/include/portability/instr_time.h +++ b/src/include/portability/instr_time.h @@ -57,8 +57,6 @@ #ifndef WIN32 -#ifdef HAVE_CLOCK_GETTIME - /* Use clock_gettime() */ #include @@ -141,72 +139,6 @@ typedef struct timespec instr_time; #define INSTR_TIME_GET_MICROSEC(t) \ (((uint64) (t).tv_sec * (uint64) 1000000) + (uint64) ((t).tv_nsec / 1000)) -#else /* !HAVE_CLOCK_GETTIME */ - -/* Use gettimeofday() */ - -#include - -typedef struct timeval instr_time; - -#define INSTR_TIME_IS_ZERO(t) ((t).tv_usec == 0 && (t).tv_sec == 0) - -#define INSTR_TIME_SET_ZERO(t) ((t).tv_sec = 0, (t).tv_usec = 0) - -#define INSTR_TIME_SET_CURRENT(t) gettimeofday(&(t), NULL) - -#define INSTR_TIME_ADD(x,y) \ - do { \ - (x).tv_sec += (y).tv_sec; \ - (x).tv_usec += (y).tv_usec; \ - /* Normalize */ \ - while ((x).tv_usec >= 1000000) \ - { \ - (x).tv_usec -= 1000000; \ - (x).tv_sec++; \ - } \ - } while (0) - -#define INSTR_TIME_SUBTRACT(x,y) \ - do { \ - (x).tv_sec -= (y).tv_sec; \ - (x).tv_usec -= (y).tv_usec; \ - /* Normalize */ \ - while ((x).tv_usec < 0) \ - { \ - (x).tv_usec += 1000000; \ - (x).tv_sec--; \ - } \ - } while (0) - -#define INSTR_TIME_ACCUM_DIFF(x,y,z) \ - do { \ - (x).tv_sec += (y).tv_sec - (z).tv_sec; \ - (x).tv_usec += (y).tv_usec - (z).tv_usec; \ - /* Normalize after each add to avoid overflow/underflow of tv_usec */ \ - while ((x).tv_usec < 0) \ - { \ - (x).tv_usec += 1000000; \ - (x).tv_sec--; \ - } \ - while ((x).tv_usec >= 1000000) \ - { \ - (x).tv_usec -= 1000000; \ - (x).tv_sec++; \ - } \ - } while (0) - -#define INSTR_TIME_GET_DOUBLE(t) \ - (((double) (t).tv_sec) + ((double) (t).tv_usec) / 1000000.0) - -#define INSTR_TIME_GET_MILLISEC(t) \ - (((double) (t).tv_sec * 1000.0) + ((double) (t).tv_usec) / 1000.0) - -#define INSTR_TIME_GET_MICROSEC(t) \ - (((uint64) (t).tv_sec * (uint64) 1000000) + (uint64) (t).tv_usec) - -#endif /* HAVE_CLOCK_GETTIME */ - #else /* WIN32 */ /* Use QueryPerformanceCounter() */ diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 7806ad67d0..9bc23ae919 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -228,7 +228,6 @@ sub GenerateFiles HAVE_BACKTRACE_SYMBOLS => undef, HAVE_BIO_GET_DATA => undef, HAVE_BIO_METH_NEW => undef, - HAVE_CLOCK_GETTIME => undef, HAVE_COMPUTED_GOTO => undef, HAVE_COPYFILE => undef, HAVE_COPYFILE_H => undef, -- 2.37.1