From: Tom Lane <tgl@sss.pgh.pa.us>
To: Noah Misch <noah@leadboat.com>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Michael Paquier <michael@paquier.xyz>
Cc: Jacob Champion <pchampion@vmware.com>
Cc: pgsql-hackers@postgresql.org <pgsql-hackers@postgresql.org>
Cc: Daniel Gustafsson <daniel@yesql.se>
Cc: info@cspug.cz
Subject: Re: Preventing abort() and exit() calls in libpq
Date: Fri, 09 Jul 2021 10:06:18 -0400
Message-ID: <2093118.1625839578@sss.pgh.pa.us> (raw)
In-Reply-To: <20210709095952.GA2945708@rfd.leadboat.com>
References: <202107021459.7c2dkzyg5lua@alvherre.pgsql>
<819502.1625239217@sss.pgh.pa.us>
<20210703001639.GB2374652@rfd.leadboat.com>
<1231771.1625321413@sss.pgh.pa.us>
<1233492.1625323559@sss.pgh.pa.us>
<20210703214658.GA2421985@rfd.leadboat.com>
<1288324.1625352260@sss.pgh.pa.us>
<20210709095952.GA2945708@rfd.leadboat.com>
Noah Misch <noah@leadboat.com> writes:
> On Sat, Jul 03, 2021 at 06:44:20PM -0400, Tom Lane wrote:
>> That'd require buildfarm owner intervention, as well as intervention
>> by users. Which seems like exporting our problems onto them. I'd
>> really rather not go that way if we can avoid it.
> I like that goal, though we'll have to see how difficult it proves. As of
> today, a GNU/Linux user building against static OpenLDAP will get a failure,
> right? That would export work onto that user, spuriously.
As a former packager for Red Hat, my response would be "you're doing it
wrong". Nobody on any Linux distro should *ever* statically link code
from one package into code from another, because they are going to create
untold pain for themselves when (not if) the first package is updated.
So I flat out reject that as a valid use-case.
It may be that that ethos is not so strongly baked-in on other platforms.
But I'm content to wait and see if there are complaints before rescinding
the automatic test; and if there are, I'd prefer to deal with it by just
backing off to running the test on Linux only.
> We'd get something like 95% of the value by running the test on one Windows
> buildfarm member and one non-Windows buildfarm member.
True. But that just brings up the point that we aren't running the test
at all on MSVC builds right now. I have no idea how to do that, do you?
> ... A strategy not having either of those drawbacks would be to skip
> the test if libpq.so contains a definition of libpq_unbind().
I assume you meant some OpenLDAP symbol?
> If any other
> dependency contains exit calls, we'd likewise probe for one symbol of that
> library and skip the test if presence of that symbol reveals static linking.
> (That's maintenance-prone in its own way, but a maintenance-free strategy has
> not appeared.)
I'm more worried about the risk of failing to detect problems at all,
in case somebody fat-fingers things in a way that causes the test to
be skipped everywhere.
I'll keep that way in mind if we conclude that the existing way is
unworkable, but so far I don't think it is.
regards, tom lane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: tgl@sss.pgh.pa.us, noah@leadboat.com, alvherre@alvh.no-ip.org, michael@paquier.xyz, pchampion@vmware.com, daniel@yesql.se, info@cspug.cz
Subject: Re: Preventing abort() and exit() calls in libpq
In-Reply-To: <2093118.1625839578@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox