Meson vs. Solaris
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-hackers@lists.postgresql.org
Cc: Greg Burd <greg@burd.me>
Date: 2026-02-07T21:21:31Z
Lists: pgsql-hackers
Attachments
- solaris.patch (text/x-diff) patch
I wondered why Greg Burd's new buildfarm animal "icarus" hasn't yet managed to complete a successful run. 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. 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
Commits
-
meson: host_system value for Solaris is 'sunos' not 'solaris'.
- c0bf15729f46 19 (unreleased) landed
- 7369656faa6e 16.12 landed
- 5eac1d68fc0c 18.2 landed
- 59c2f7efaef6 17.8 landed