From 3b08d5224d7df71cc111d8522cf6190fc02f6fb9 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 3 Dec 2024 20:21:23 -0500 Subject: [PATCH] Define __EXTENSIONS__ on Solaris, too. Apparently, if you define _POSIX_C_SOURCE on Solaris, that's interpreted as "you get ONLY what's defined by POSIX". Results from BF member hake show that that breaks perl.h, and doubtless it'd cause more problems if we got past that. Adopt the suggestion from standards(7) that we also need to define __EXTENSIONS__, in hopes of un-breaking things. Discussion: https://postgr.es/m/1654508.1733162761@sss.pgh.pa.us --- configure | 2 +- configure.ac | 2 +- meson.build | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 7029e036269..cf2d83b93ad 100755 --- a/configure +++ b/configure @@ -7593,7 +7593,7 @@ fi # 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_C_SOURCE=200112L -D_POSIX_PTHREAD_SEMANTICS" + CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ -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 afc229e729b..399aae4eed9 100644 --- a/configure.ac +++ b/configure.ac @@ -696,7 +696,7 @@ fi # 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_C_SOURCE=200112L -D_POSIX_PTHREAD_SEMANTICS" + CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ -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 ec5cd9259df..7d9a247d21c 100644 --- a/meson.build +++ b/meson.build @@ -263,7 +263,11 @@ elif host_system == 'sunos' export_fmt = '-Wl,-M@0@' # 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' ] + cppflags += [ + '-D_POSIX_C_SOURCE=200112L', + '-D__EXTENSIONS__', + '-D_POSIX_PTHREAD_SEMANTICS', + ] elif host_system == 'windows' portname = 'win32'