From 481c8e9232386e289fbd3e8f75893ae8d9814298 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 21 Feb 2020 14:04:19 -0500 Subject: [PATCH] Assume that we have utime() and . These are required by POSIX since SUSv2, and no live platforms fail to provide them. On Windows, utime() exists and we bring our own , so we're good there too. So remove the configure probes and ad-hoc substitute code. We don't need to check for utimes() anymore either, since that was only used as a substitute. In passing, make the Windows build include only where we need it, not everywhere. 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 | 4 ++-- configure.in | 3 --- src/backend/libpq/pqcomm.c | 18 ++---------------- src/backend/utils/init/miscinit.c | 27 ++------------------------- src/include/pg_config.h.in | 9 --------- src/include/port/win32_msvc/utime.h | 2 ++ src/include/port/win32_port.h | 1 - src/tools/msvc/Solution.pm | 3 --- 8 files changed, 8 insertions(+), 59 deletions(-) diff --git a/configure b/configure index d746255f25..e6e8275e80 100755 --- 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 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 +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 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" @@ -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 clock_gettime copyfile fdatasync getifaddrs getpeerucred getrlimit kqueue mbstowcs_l memset_s 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 poll posix_fallocate ppoll pstat pthread_is_threaded_np readlink setproctitle setproctitle_fast setsid shm_open strchrnul strsignal symlink sync_file_range uselocale 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 a9c91dadbc..e8e972231c 100644 --- a/configure.in +++ b/configure.in @@ -1300,7 +1300,6 @@ AC_CHECK_HEADERS(m4_normalize([ sys/un.h termios.h ucred.h - utime.h wchar.h wctype.h ])) @@ -1642,8 +1641,6 @@ AC_CHECK_FUNCS(m4_normalize([ symlink sync_file_range uselocale - utime - utimes wcstombs_l ])) diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index 10bf13f997..7717bb2719 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -81,9 +81,7 @@ #ifdef HAVE_NETINET_TCP_H #include #endif -#ifdef HAVE_UTIME_H #include -#endif #ifdef _MSC_VER /* mstcpip.h is missing on mingw */ #include #endif @@ -866,20 +864,8 @@ TouchSocketFiles(void) { char *sock_path = (char *) lfirst(l); - /* - * utime() is POSIX standard, utimes() is a common alternative. If we - * have neither, there's no way to affect the mod or access time of - * the socket :-( - * - * In either path, we ignore errors; there's no point in complaining. - */ -#ifdef HAVE_UTIME - utime(sock_path, NULL); -#else /* !HAVE_UTIME */ -#ifdef HAVE_UTIMES - utimes(sock_path, NULL); -#endif /* HAVE_UTIMES */ -#endif /* HAVE_UTIME */ + /* Ignore errors; there's no point in complaining */ + (void) utime(sock_path, NULL); } } diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index c7c9bef617..b02bad4420 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -26,9 +26,7 @@ #include #include #include -#ifdef HAVE_UTIME_H #include -#endif #include "access/htup_details.h" #include "catalog/pg_authid.h" @@ -1213,29 +1211,8 @@ TouchSocketLockFiles(void) if (strcmp(socketLockFile, DIRECTORY_LOCK_FILE) == 0) continue; - /* - * utime() is POSIX standard, utimes() is a common alternative; if we - * have neither, fall back to actually reading the file (which only - * sets the access time not mod time, but that should be enough in - * most cases). In all paths, we ignore errors. - */ -#ifdef HAVE_UTIME - utime(socketLockFile, NULL); -#else /* !HAVE_UTIME */ -#ifdef HAVE_UTIMES - utimes(socketLockFile, NULL); -#else /* !HAVE_UTIMES */ - int fd; - char buffer[1]; - - fd = open(socketLockFile, O_RDONLY | PG_BINARY, 0); - if (fd >= 0) - { - read(fd, buffer, sizeof(buffer)); - close(fd); - } -#endif /* HAVE_UTIMES */ -#endif /* HAVE_UTIME */ + /* we just ignore any error here */ + (void) utime(socketLockFile, NULL); } } diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index e3e7472820..20700cb85a 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -662,15 +662,6 @@ /* Define to 1 if you have the `uselocale' function. */ #undef HAVE_USELOCALE -/* Define to 1 if you have the `utime' function. */ -#undef HAVE_UTIME - -/* Define to 1 if you have the `utimes' function. */ -#undef HAVE_UTIMES - -/* Define to 1 if you have the header file. */ -#undef HAVE_UTIME_H - /* Define to 1 if you have BSD UUID support. */ #undef HAVE_UUID_BSD diff --git a/src/include/port/win32_msvc/utime.h b/src/include/port/win32_msvc/utime.h index dd1b103eae..c78e79c33d 100644 --- a/src/include/port/win32_msvc/utime.h +++ b/src/include/port/win32_msvc/utime.h @@ -1 +1,3 @@ /* src/include/port/win32_msvc/utime.h */ + +#include /* for non-unicode version */ diff --git a/src/include/port/win32_port.h b/src/include/port/win32_port.h index 91ec01468e..8b6576b23d 100644 --- a/src/include/port/win32_port.h +++ b/src/include/port/win32_port.h @@ -50,7 +50,6 @@ #include #include #include -#include /* for non-unicode version */ #undef near #include /* needed before sys/stat hacking below */ diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index cb03d03a97..151a41ad5b 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -390,9 +390,6 @@ sub GenerateFiles HAVE_UNIX_SOCKETS => undef, HAVE_UNSETENV => undef, HAVE_USELOCALE => undef, - HAVE_UTIME => 1, - HAVE_UTIMES => undef, - HAVE_UTIME_H => 1, HAVE_UUID_BSD => undef, HAVE_UUID_E2FS => undef, HAVE_UUID_OSSP => undef,