summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2020-02-21 19:04:19 +0000
committerTom Lane2020-02-21 19:30:47 +0000
commit481c8e9232386e289fbd3e8f75893ae8d9814298 (patch)
tree34c0aa0246b7333019d6a8c8326381f6d9599436
parentf88a058200a40032e88a8bfc1aea453c22d2dcb0 (diff)
Assume that we have utime() and <utime.h>.
These are required by POSIX since SUSv2, and no live platforms fail to provide them. On Windows, utime() exists and we bring our own <utime.h>, 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 <sys/utime.h> 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/[email protected]
-rwxr-xr-xconfigure4
-rw-r--r--configure.in3
-rw-r--r--src/backend/libpq/pqcomm.c18
-rw-r--r--src/backend/utils/init/miscinit.c27
-rw-r--r--src/include/pg_config.h.in9
-rw-r--r--src/include/port/win32_msvc/utime.h2
-rw-r--r--src/include/port/win32_port.h1
-rw-r--r--src/tools/msvc/Solution.pm3
8 files changed, 8 insertions, 59 deletions
diff --git a/configure b/configure
index d746255f25d..e6e8275e807 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 a9c91dadbc1..e8e972231c2 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 10bf13f997d..7717bb27195 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -81,9 +81,7 @@
#ifdef HAVE_NETINET_TCP_H
#include <netinet/tcp.h>
#endif
-#ifdef HAVE_UTIME_H
#include <utime.h>
-#endif
#ifdef _MSC_VER /* mstcpip.h is missing on mingw */
#include <mstcpip.h>
#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 c7c9bef617e..b02bad44203 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -26,9 +26,7 @@
#include <pwd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
-#ifdef HAVE_UTIME_H
#include <utime.h>
-#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 e3e74728204..20700cb85a9 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 <utime.h> 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 dd1b103eaef..c78e79c33d3 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 <sys/utime.h> /* for non-unicode version */
diff --git a/src/include/port/win32_port.h b/src/include/port/win32_port.h
index 91ec01468e8..8b6576b23dc 100644
--- a/src/include/port/win32_port.h
+++ b/src/include/port/win32_port.h
@@ -50,7 +50,6 @@
#include <process.h>
#include <signal.h>
#include <direct.h>
-#include <sys/utime.h> /* for non-unicode version */
#undef near
#include <sys/stat.h> /* needed before sys/stat hacking below */
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index cb03d03a971..151a41ad5b6 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,