aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2024-12-03 12:44:43 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2024-12-03 12:44:43 -0500
commit32a7deb2a02bc3c81d61eeb943b03ed2010eaac9 (patch)
tree663f6fef43bf49bc03084e576f0b355cef25540f
parent3c5f9f12c807760f6d512957a863113b07a79dcb (diff)
downloadpostgresql-32a7deb2a02bc3c81d61eeb943b03ed2010eaac9.tar.gz
postgresql-32a7deb2a02bc3c81d61eeb943b03ed2010eaac9.zip
Define _POSIX_C_SOURCE as 200112L on Solaris.
This is an attempt to suppress some compiler warnings that appeared in the wake of commit 7f798aca1: it seems that by default Solaris/illumos declares shmdt() to take "char *" not "void *". We'd like the system headers to provide modern POSIX APIs, and POSIX 2001 seems to be as modern as is available there. illumos' standards(7) man page suggests that we might also need to define __EXTENSIONS__, but let's see what happens with just this. Discussion: https://postgr.es/m/1654508.1733162761@sss.pgh.pa.us
-rwxr-xr-xconfigure6
-rw-r--r--configure.ac6
-rw-r--r--meson.build4
3 files changed, 9 insertions, 7 deletions
diff --git a/configure b/configure
index ff59f1422d8..7029e036269 100755
--- a/configure
+++ b/configure
@@ -7590,10 +7590,10 @@ $as_echo "#define PROFILE_PID_DIR 1" >>confdefs.h
fi
fi
-# On Solaris, we need this #define to get POSIX-conforming versions
-# of many interfaces (sigwait, getpwuid_r, ...).
+# On Solaris, we need these #defines to get POSIX-conforming versions
+# of many interfaces (sigwait, getpwuid_r, shmdt, ...).
if test "$PORTNAME" = "solaris"; then
- CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
+ CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L -D_POSIX_PTHREAD_SEMANTICS"
fi
# We already have this in Makefile.win32, but configure needs it too
diff --git a/configure.ac b/configure.ac
index 21817009642..afc229e729b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -693,10 +693,10 @@ if test "$enable_profiling" = yes && test "$ac_cv_prog_cc_g" = yes; then
fi
fi
-# On Solaris, we need this #define to get POSIX-conforming versions
-# of many interfaces (sigwait, getpwuid_r, ...).
+# On Solaris, we need these #defines to get POSIX-conforming versions
+# of many interfaces (sigwait, getpwuid_r, shmdt, ...).
if test "$PORTNAME" = "solaris"; then
- CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
+ CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L -D_POSIX_PTHREAD_SEMANTICS"
fi
# We already have this in Makefile.win32, but configure needs it too
diff --git a/meson.build b/meson.build
index 451c3f6d851..ec5cd9259df 100644
--- a/meson.build
+++ b/meson.build
@@ -261,7 +261,9 @@ elif host_system == 'openbsd'
elif host_system == 'sunos'
portname = 'solaris'
export_fmt = '-Wl,-M@0@'
- cppflags += '-D_POSIX_PTHREAD_SEMANTICS'
+ # We need these #defines to get POSIX-conforming versions
+ # of many interfaces (sigwait, getpwuid_r, shmdt, ...).
+ cppflags += [ '-D_POSIX_C_SOURCE=200112L', '-D_POSIX_PTHREAD_SEMANTICS' ]
elif host_system == 'windows'
portname = 'win32'