Re: Meson vs. Solaris - Mailing list pgsql-hackers

From Greg Burd
Subject Re: Meson vs. Solaris
Date
Msg-id f4ed5613-263c-4aeb-888a-d71aac85bfc4@app.fastmail.com
Whole thread Raw
In response to Meson vs. Solaris  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Sat, Feb 7, 2026, at 4:21 PM, Tom Lane wrote:
> I wondered why Greg Burd's new buildfarm animal "icarus" hasn't
> yet managed to complete a successful run.

Hi Tom!

Wow, thanks for taking a minute to dig into this.  I have been putting off digging into my "animals" for too long,
apologiesfor that.  I had mentioned to Thomas that this was annoying and I needed to dig into it ASAP, but neither of
ushad great ideas off the top of our head so the fact that this was immediately recognizable to you is amazing.
 

> The symptoms suggest that getopt() isn't doing what we want:
>
> /scratch/build/HEAD/pgsql.build/tmp_install/scratch/build/HEAD/inst/bin/postgres: 
> illegal option -- cluster-name=node1
> Try "postgres --help" for more information.
>
> But we have other BF animals running on OpenIndiana (Solaris)
> without trouble.
>
> On investigation, it seems that Greg is the first to try to use
> the meson build system on Solaris, and it doesn't work.

I tend to be a glutton for punishment of this variety...

> Our
> Autoconf infrastructure knows that we should use our own getopt()
> because Solaris's doesn't do what we want.  meson.build did try
> to copy that logic:
>
> always_replace_getopt = host_system in ['windows', 'cygwin', 'openbsd', 
> 'solaris']
>
> However, as seen elsewhere in that file, 'solaris' is not the
> value of host_system on this platform!  It's 'sunos'.  So we
> are trying to use the system's getopt(), and then the failure is
> completely expected.
>
> I've verified on a local OpenIndiana VM that the attached patch
> makes it work.  Also, a quick grep doesn't find any other cases
> of the same error in our meson.build files.
>
>             regards, tom lane

I'll find a bit of time to validate this on icarus ASAP.  Thank you for the patch.  I really have a
sentimental/irrationalattachment to Sun/SPARC/Solaris... er Illumos/OpenIndiana/whatever (says the ex-Sun employee).
 

I'll have you know that I'm likely to fool around with swapping out GCC for Clang 22 once the build starts working,
justbecause... glutton for punishment. :)
 

best.

-greg

PS: greenfly and unicorn are on this weeks list for me too.


> diff --git a/meson.build b/meson.build
> index df907b62da3..96b3869df86 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2911,7 +2911,7 @@ gnugetopt_dep = cc.find_library('gnugetopt', 
> required: false)
>  #   (i.e., allow '-' as a flag character), so use our version on those 
> platforms
>  # - We want to use system's getopt_long() only if the system provides 
> struct
>  #   option
> -always_replace_getopt = host_system in ['windows', 'cygwin', 
> 'openbsd', 'solaris']
> +always_replace_getopt = host_system in ['windows', 'cygwin', 
> 'openbsd', 'sunos']
>  always_replace_getopt_long = host_system in ['windows', 'cygwin'] or 
> not cdata.has('HAVE_STRUCT_OPTION')
> 
>  # Required on BSDs
>
> Attachments:
> * solaris.patch



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Meson vs. Solaris
Next
From: Andres Freund
Date:
Subject: Re: Meson vs. Solaris