From e7bcfa563e568ca8d3474432fd094a38205c78f0 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Fri, 2 Apr 2021 03:43:26 +1300 Subject: [PATCH] Use POSIX_NAMED_SEMAPHORES on OpenBSD. For PostgreSQL to work out of the box without sysctl changes, let's use POSIX semaphores instead of System V ones. The "unamed" kind aren't supported in shared memory, so we use the "named" kind. Discussion: https://postgr.es/m/27582.1546928073%40sss.pgh.pa.us --- doc/src/sgml/runtime.sgml | 6 +----- src/template/openbsd | 11 +++++++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index bf877c0e0c..9aa3129aba 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -998,11 +998,7 @@ psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such The default shared memory settings are usually good enough, unless you have set shared_memory_type to sysv. - You will usually want to - increase kern.seminfo.semmni - and kern.seminfo.semmns, - as OpenBSD's default settings - for these are uncomfortably small. + System V semaphores are not used on this platform (since OpenBSD 5.5). diff --git a/src/template/openbsd b/src/template/openbsd index 365268c489..d3b6bf464a 100644 --- a/src/template/openbsd +++ b/src/template/openbsd @@ -2,3 +2,14 @@ # Extra CFLAGS for code that will go into a shared library CFLAGS_SL="-fPIC -DPIC" + +# OpenBSD 5.5 (2014) gained named POSIX semaphores. They work out of the box +# without changing any sysctl settings, unlike System V semaphores. +case $host_os in + openbsd5.[01234]*) + USE_SYSV_SEMAPHORES=1 + ;; + *) + USE_NAMED_POSIX_SEMAPHORES=1 + ;; +esac -- 2.30.1