diff options
author | Thomas Munro <tmunro@postgresql.org> | 2022-08-05 09:18:34 +1200 |
---|---|---|
committer | Thomas Munro <tmunro@postgresql.org> | 2022-08-05 09:18:34 +1200 |
commit | bdb657edd6db1e471437d62f4642674a801ef32c (patch) | |
tree | 74ae928e3976d43b74af6c76f13255bd87a5e3ac /src | |
parent | ca1e85513e1c92afb80a74935cbbb6f7e4a3ccf9 (diff) | |
download | postgresql-bdb657edd6db1e471437d62f4642674a801ef32c.tar.gz postgresql-bdb657edd6db1e471437d62f4642674a801ef32c.zip |
Remove configure probe and related tests for getrlimit.
getrlimit() is in SUSv2 and all targeted systems have it.
Windows doesn't have it. We could just use #ifndef WIN32, but for a
little more explanation about why we're making things conditional, let's
retain the HAVE_GETRLIMIT macro. It's defined in port.h for Unix systems.
On systems that have it, it's not necessary to test for RLIMIT_CORE,
RLIMIT_STACK or RLIMIT_NOFILE macros, since SUSv2 requires those and all
targeted systems have them. Also remove references to a pre-historic
alternative spelling of RLIMIT_NOFILE, and coding that seemed to believe
that Cygwin didn't have it.
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CA+hUKGJ3LHeP9w5Fgzdr4G8AnEtJ=z=p6hGDEm4qYGEUX5B6fQ@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/storage/file/fd.c | 4 | ||||
-rw-r--r-- | src/backend/tcop/postgres.c | 8 | ||||
-rw-r--r-- | src/bin/pg_ctl/pg_ctl.c | 8 | ||||
-rw-r--r-- | src/bin/pgbench/pgbench.c | 4 | ||||
-rw-r--r-- | src/include/pg_config.h.in | 3 | ||||
-rw-r--r-- | src/include/port.h | 8 | ||||
-rw-r--r-- | src/test/regress/pg_regress.c | 4 | ||||
-rw-r--r-- | src/tools/msvc/Solution.pm | 1 |
8 files changed, 16 insertions, 24 deletions
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index f904f60c086..447d5a86c30 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -895,11 +895,7 @@ count_usable_fds(int max_to_probe, int *usable_fds, int *already_open) fd = (int *) palloc(size * sizeof(int)); #ifdef HAVE_GETRLIMIT -#ifdef RLIMIT_NOFILE /* most platforms use RLIMIT_NOFILE */ getrlimit_status = getrlimit(RLIMIT_NOFILE, &rlim); -#else /* but BSD doesn't ... */ - getrlimit_status = getrlimit(RLIMIT_OFILE, &rlim); -#endif /* RLIMIT_NOFILE */ if (getrlimit_status != 0) ereport(WARNING, (errmsg("getrlimit failed: %m"))); #endif /* HAVE_GETRLIMIT */ diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 078fbdb5a0c..11e802eba98 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -4770,7 +4770,7 @@ forbidden_in_wal_sender(char firstchar) long get_stack_depth_rlimit(void) { -#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_STACK) +#if defined(HAVE_GETRLIMIT) static long val = 0; /* This won't change after process launch, so check just once */ @@ -4789,13 +4789,9 @@ get_stack_depth_rlimit(void) val = rlim.rlim_cur; } return val; -#else /* no getrlimit */ -#if defined(WIN32) || defined(__CYGWIN__) +#else /* On Windows we set the backend stack size in src/backend/Makefile */ return WIN32_STACK_RLIMIT; -#else /* not windows ... give up */ - return -1; -#endif #endif } diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index ef58883a5c2..2762e8590d0 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -160,7 +160,7 @@ static bool wait_for_postmaster_stop(void); static bool wait_for_postmaster_promote(void); static bool postmaster_is_alive(pid_t pid); -#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE) +#if defined(HAVE_GETRLIMIT) static void unlimit_core_size(void); #endif @@ -776,7 +776,7 @@ wait_for_postmaster_promote(void) } -#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE) +#if defined(HAVE_GETRLIMIT) static void unlimit_core_size(void) { @@ -949,7 +949,7 @@ do_start(void) if (exec_path == NULL) exec_path = find_other_exec_or_die(argv0, "postgres", PG_BACKEND_VERSIONSTR); -#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE) +#if defined(HAVE_GETRLIMIT) if (allow_core_files) unlimit_core_size(); #endif @@ -2069,7 +2069,7 @@ do_help(void) printf(_("If the -D option is omitted, the environment variable PGDATA is used.\n")); printf(_("\nOptions for start or restart:\n")); -#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE) +#if defined(HAVE_GETRLIMIT) printf(_(" -c, --core-files allow postgres to produce core files\n")); #else printf(_(" -c, --core-files not applicable on this platform\n")); diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index bcaea8f5ea2..0778656794a 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -6662,11 +6662,7 @@ main(int argc, char **argv) exit(1); } #ifdef HAVE_GETRLIMIT -#ifdef RLIMIT_NOFILE /* most platforms use RLIMIT_NOFILE */ if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) -#else /* but BSD doesn't ... */ - if (getrlimit(RLIMIT_OFILE, &rlim) == -1) -#endif /* RLIMIT_NOFILE */ pg_fatal("getrlimit failed: %m"); if (rlim.rlim_cur < nclients + 3) { diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index ab812bca891..93173d67c0b 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -229,9 +229,6 @@ /* Define to 1 if you have the `getpeerucred' function. */ #undef HAVE_GETPEERUCRED -/* Define to 1 if you have the `getrlimit' function. */ -#undef HAVE_GETRLIMIT - /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY diff --git a/src/include/port.h b/src/include/port.h index 323df8f9ede..2c25498add5 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -519,4 +519,12 @@ extern char *wait_result_to_str(int exit_status); extern bool wait_result_is_signal(int exit_status, int signum); extern bool wait_result_is_any_signal(int exit_status, bool include_command_not_found); +/* + * Interfaces that we assume all Unix system have. We retain individual macros + * for better documentation. + */ +#ifndef WIN32 +#define HAVE_GETRLIMIT 1 +#endif + #endif /* PG_PORT_H */ diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c index 982801e029d..04ab513b7cb 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -129,7 +129,7 @@ static void psql_end_command(StringInfo buf, const char *database); /* * allow core files if possible. */ -#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE) +#if defined(HAVE_GETRLIMIT) static void unlimit_core_size(void) { @@ -2229,7 +2229,7 @@ regression_main(int argc, char *argv[], initialize_environment(); -#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_CORE) +#if defined(HAVE_GETRLIMIT) unlimit_core_size(); #endif diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index a7a5c31a5b6..c703708b50b 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -271,7 +271,6 @@ sub GenerateFiles HAVE_GETOPT_LONG => undef, HAVE_GETPEEREID => undef, HAVE_GETPEERUCRED => undef, - HAVE_GETRLIMIT => undef, HAVE_GETTIMEOFDAY => undef, HAVE_GSSAPI_GSSAPI_H => undef, HAVE_GSSAPI_H => undef, |