From d2ea2d310dfdc40328aca5b6c52225de78432e01 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Fri, 17 Feb 2023 15:18:18 +1300 Subject: [PATCH] Remove obsolete platforms from ps_status.c. Time to remove various code, comments and configure/meson probes relating to ancient BSD, SunOS, GNU/Hurd, IRIX, NeXT and Unixware. Reviewed-by: Tom Lane Discussion: https://postgr.es/m/CA%2BhUKGJMNGUAqf27WbckYFrM-Mavy0RKJvocfJU%3DJ2XcAZyv%2Bw%40mail.gmail.com --- configure | 35 ------------------- configure.ac | 13 ------- meson.build | 17 --------- src/backend/utils/misc/ps_status.c | 55 +++++------------------------- src/include/pg_config.h.in | 3 -- src/tools/msvc/Solution.pm | 1 - 6 files changed, 9 insertions(+), 115 deletions(-) diff --git a/configure b/configure index 7bb829ddf4..e35769ea73 100755 --- a/configure +++ b/configure @@ -16278,41 +16278,6 @@ cat >>confdefs.h <<_ACEOF _ACEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PS_STRINGS" >&5 -$as_echo_n "checking for PS_STRINGS... " >&6; } -if ${pgac_cv_var_PS_STRINGS+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -PS_STRINGS->ps_nargvstr = 1; -PS_STRINGS->ps_argvstr = "foo"; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pgac_cv_var_PS_STRINGS=yes -else - pgac_cv_var_PS_STRINGS=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_var_PS_STRINGS" >&5 -$as_echo "$pgac_cv_var_PS_STRINGS" >&6; } -if test "$pgac_cv_var_PS_STRINGS" = yes ; then - -$as_echo "#define HAVE_PS_STRINGS 1" >>confdefs.h - -fi - ac_fn_c_check_func "$LINENO" "explicit_bzero" "ac_cv_func_explicit_bzero" if test "x$ac_cv_func_explicit_bzero" = xyes; then : $as_echo "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h diff --git a/configure.ac b/configure.ac index 137a40a942..af23c15cb2 100644 --- a/configure.ac +++ b/configure.ac @@ -1849,19 +1849,6 @@ AC_CHECK_DECLS([pwritev], [], [AC_LIBOBJ(pwritev)], [#include ]) # This is probably only present on macOS, but may as well check always AC_CHECK_DECLS(F_FULLFSYNC, [], [], [#include ]) -AC_CACHE_CHECK([for PS_STRINGS], [pgac_cv_var_PS_STRINGS], -[AC_LINK_IFELSE([AC_LANG_PROGRAM( -[#include -#include -], -[PS_STRINGS->ps_nargvstr = 1; -PS_STRINGS->ps_argvstr = "foo";])], -[pgac_cv_var_PS_STRINGS=yes], -[pgac_cv_var_PS_STRINGS=no])]) -if test "$pgac_cv_var_PS_STRINGS" = yes ; then - AC_DEFINE([HAVE_PS_STRINGS], 1, [Define to 1 if the PS_STRINGS thing exists.]) -fi - AC_REPLACE_FUNCS(m4_normalize([ explicit_bzero getopt diff --git a/meson.build b/meson.build index b5daed9f38..f534704452 100644 --- a/meson.build +++ b/meson.build @@ -2293,23 +2293,6 @@ endif cdata.set('pg_restrict', '__restrict') -if cc.links(''' -#include -#include - -int main(void) -{ - PS_STRINGS->ps_nargvstr = 1; - PS_STRINGS->ps_argvstr = "foo"; -} -''', - name: 'PS_STRINGS', args: test_c_args) - cdata.set('HAVE_PS_STRINGS', 1) -else - cdata.set('HAVE_PS_STRINGS', false) -endif - - # Most libraries are included only if they demonstrably provide a function we # need, but libm is an exception: always include it, because there are too # many compilers that play cute optimization games that will break probes for diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c index 06bdc2afd1..c99a4f10fa 100644 --- a/src/backend/utils/misc/ps_status.c +++ b/src/backend/utils/misc/ps_status.c @@ -15,10 +15,6 @@ #include "postgres.h" #include -#ifdef HAVE_PS_STRINGS -#include /* for old BSD */ -#include -#endif #if defined(__darwin__) #include #endif @@ -39,16 +35,10 @@ bool update_process_title = DEFAULT_UPDATE_PROCESS_TITLE; * * PS_USE_SETPROCTITLE_FAST * use the function setproctitle_fast(const char *, ...) - * (newer FreeBSD systems) + * (FreeBSD) * PS_USE_SETPROCTITLE * use the function setproctitle(const char *, ...) - * (newer BSD systems) - * PS_USE_PS_STRINGS - * assign PS_STRINGS->ps_argvstr = "string" - * (some BSD systems) - * PS_USE_CHANGE_ARGV - * assign argv[0] = "string" - * (some other BSD systems) + * (other BSDs) * PS_USE_CLOBBER_ARGV * write over the argv and environment area * (Linux and most SysV-like systems) @@ -62,11 +52,7 @@ bool update_process_title = DEFAULT_UPDATE_PROCESS_TITLE; #define PS_USE_SETPROCTITLE_FAST #elif defined(HAVE_SETPROCTITLE) #define PS_USE_SETPROCTITLE -#elif defined(HAVE_PS_STRINGS) -#define PS_USE_PS_STRINGS -#elif (defined(BSD) || defined(__hurd__)) && !defined(__darwin__) -#define PS_USE_CHANGE_ARGV -#elif defined(__linux__) || defined(_AIX) || defined(__sgi) || (defined(sun) && !defined(BSD)) || defined(__svr5__) || defined(__darwin__) +#elif defined(__linux__) || defined(_AIX) || defined(__sun) || defined(__darwin__) #define PS_USE_CLOBBER_ARGV #elif defined(WIN32) #define PS_USE_WIN32 @@ -186,9 +172,6 @@ save_ps_display_args(int argc, char **argv) new_environ[i] = NULL; environ = new_environ; } -#endif /* PS_USE_CLOBBER_ARGV */ - -#if defined(PS_USE_CHANGE_ARGV) || defined(PS_USE_CLOBBER_ARGV) /* * If we're going to change the original argv[] then make a copy for @@ -226,15 +209,15 @@ save_ps_display_args(int argc, char **argv) #if defined(__darwin__) /* - * macOS (and perhaps other NeXT-derived platforms?) has a static copy - * of the argv pointer, which we may fix like so: + * macOS has a static copy of the argv pointer, which we may fix like + * so: */ *_NSGetArgv() = new_argv; #endif argv = new_argv; } -#endif /* PS_USE_CHANGE_ARGV or PS_USE_CLOBBER_ARGV */ +#endif /* PS_USE_CLOBBER_ARGV */ return argv; } @@ -271,25 +254,10 @@ init_ps_display(const char *fixed_part) /* If ps_buffer is a pointer, it might still be null */ if (!ps_buffer) return; -#endif - /* - * Overwrite argv[] to point at appropriate space, if needed - */ - -#ifdef PS_USE_CHANGE_ARGV - save_argv[0] = ps_buffer; - save_argv[1] = NULL; -#endif /* PS_USE_CHANGE_ARGV */ - -#ifdef PS_USE_CLOBBER_ARGV - { - int i; - - /* make extra argv slots point at end_of_area (a NUL) */ - for (i = 1; i < save_argc; i++) - save_argv[i] = ps_buffer + ps_buffer_size; - } + /* make extra argv slots point at end_of_area (a NUL) */ + for (int i = 1; i < save_argc; i++) + save_argv[i] = ps_buffer + ps_buffer_size; #endif /* PS_USE_CLOBBER_ARGV */ /* @@ -369,11 +337,6 @@ set_ps_display(const char *activity) setproctitle_fast("%s", ps_buffer); #endif -#ifdef PS_USE_PS_STRINGS - PS_STRINGS->ps_nargvstr = 1; - PS_STRINGS->ps_argvstr = ps_buffer; -#endif /* PS_USE_PS_STRINGS */ - #ifdef PS_USE_CLOBBER_ARGV /* pad unused memory; need only clobber remainder of old status string */ if (last_status_len > ps_buffer_cur_len) diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 2490bf8ace..20c82f5979 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -334,9 +334,6 @@ /* Define to 1 if you have the `ppoll' function. */ #undef HAVE_PPOLL -/* Define to 1 if the PS_STRINGS thing exists. */ -#undef HAVE_PS_STRINGS - /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 5399050492..5eaea6355e 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -308,7 +308,6 @@ sub GenerateFiles HAVE_POSIX_FADVISE => undef, HAVE_POSIX_FALLOCATE => undef, HAVE_PPOLL => undef, - HAVE_PS_STRINGS => undef, HAVE_PTHREAD => undef, HAVE_PTHREAD_BARRIER_WAIT => undef, HAVE_PTHREAD_IS_THREADED_NP => undef,