Re: Preventing abort() and exit() calls in libpq

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>, Michael Paquier <michael@paquier.xyz>, Jacob Champion <pchampion@vmware.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Daniel Gustafsson <daniel@yesql.se>, info@cspug.cz
Date: 2021-07-01T05:23:52Z
Lists: pgsql-hackers
On Thu, Jul 01, 2021 at 01:20:48AM -0400, Tom Lane wrote:
> Noah Misch <noah@leadboat.com> writes:
> > On Wed, Jun 30, 2021 at 11:45:10PM -0400, Tom Lane wrote:
> >> we're still left with the question of why
> >> Solaris' "nm" doesn't support the POSIX-required options.
> 
> > In POSIX, -g and -u are mutually exclusive.  Solaris ignores all but the first
> > of these in a command:
> 
> I've just re-read the POSIX spec for "nm", and I do not see anything there
> that would support that interpretation.  Still, we can try it without -g
> and see what else breaks.

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/nm.html says:

  nm [-APv] [-g|-u] [-t format] file...

If the options weren't mutually-exclusive, it would say:

  nm [-APvgu] [-t format] file...



Commits

  1. Further restrict the scope of no-exit()-in-libpq test.

  2. Improve build-time check that libpq doesn't call exit().

  3. Fix portability fallout from commit dc227eb82.

  4. Add a build-time check that libpq doesn't call exit() or abort().