postgres.git / summary / log / commit / refs

commit    481c8e9232386e289fbd3e8f75893ae8d9814298
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Fri Feb 21 19:04:19 2020 +0000
First released in: 13.0

    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/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 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, [parent: f88a058200a4]