Hi,
On 2026-02-07 16:21:31 -0500, Tom Lane wrote:
> 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.
Ugh. At some point I had solaris working, but apparently I broke it again at
some point. Thanks for noticing & fixing.
Greetings,
Andres Freund