From 86454dab30c55e521e2bd6908be08cccae8647f0 Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Sun, 24 Jul 2022 00:12:37 +1200
Subject: [PATCH v2 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 <tgl@sss.pgh.pa.us>
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 d86a8db1ff..5f0f519466 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 9d2d338a65..62d5d635a3 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 ba9d702101..9c426ca8a0 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 <time.h>
@@ -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 <sys/time.h>
-
-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 d904f42d53..8ccd9d6ab0 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.35.1

