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

Jacob Champion <pchampion@vmware.com>

From: Jacob Champion <pchampion@vmware.com>
To: "tgl@sss.pgh.pa.us" <tgl@sss.pgh.pa.us>
Cc: "daniel@yesql.se" <daniel@yesql.se>, "peter.eisentraut@enterprisedb.com" <peter.eisentraut@enterprisedb.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, "michael@paquier.xyz" <michael@paquier.xyz>
Date: 2021-06-30T22:58:22Z
Lists: pgsql-hackers
On Wed, 2021-06-30 at 18:56 -0400, Tom Lane wrote:
> Jacob Champion <pchampion@vmware.com> writes:
> > On Wed, 2021-06-30 at 18:29 -0400, Tom Lane wrote:
> > > Looks like we'd have to make use of a dummy stamp-file, more or less
> > > as attached.  Any objections?
> > Spitballing -- if you don't like the stamp file, you could add the
> > check to the end of the $(shlib) rule, surrounded by an ifeq check.
> > Then .DELETE_ON_ERROR should take care of the rest, I think.
> 
> Hmm ... I'd been thinking we don't use .DELETE_ON_ERROR, but on
> second look we do, so that could be a plausible approach.
> 
> On balance though, the separate rule seems better, because
> .DELETE_ON_ERROR would destroy the evidence about why "nm"
> failed, which could be annoying when investigating problems.

Good point. +1 to the stamp approach, then.

--Jacob

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().