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

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Jacob Champion <pchampion@vmware.com>, "tgl@sss.pgh.pa.us" <tgl@sss.pgh.pa.us>
Cc: "daniel@yesql.se" <daniel@yesql.se>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, "michael@paquier.xyz" <michael@paquier.xyz>
Date: 2021-07-01T18:05:59Z
Lists: pgsql-hackers
On 01.07.21 00:41, Jacob Champion wrote:
> On Wed, 2021-06-30 at 18:29 -0400, Tom Lane wrote:
>> I wrote:
>>> Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
>>>> Could we set this rule up a little bit differently so that it is only
>>>> run when the library is built.
>>>> Right now, make world on a built tree makes 17 calls to this "nm" line,
>>>> and make check-world calls it 81 times.  I think once would be enough. ;-)
>>> Hmm, didn't realize that would happen.  Will see what can be done.
>>
>> 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.

Somewhere in the $(shlib) rule would seem most appropriate.  But I don't 
understand the rest: What ifeq, and why .DELETE_ON_ERROR?



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