Re: __pg_log_level in anonynous enum should be initialized? (Was: pgsql: Change SHA2 implementation based on OpenSSL to use EVP digest ro)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: __pg_log_level in anonynous enum should be initialized? (Was: pgsql: Change SHA2 implementation based on OpenSSL to use EVP digest ro)
Date: 2020-09-28 16:49:29
Message-ID: 300644.1601311769@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Michael Paquier <michael(at)paquier(dot)xyz> writes:
> It looks like this commit has broken prairiedog as follows:
> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=prairiedog&dt=2020-09-28%2005%3A45%3A55
> ld: common symbols not allowed with MH_DYLIB output format with the
> -multi_module option
> ../../../src/common/libpgcommon_shlib.a(logging_shlib.o) definition of
> common ___pg_log_level (size 4)

> Looking around, I have found a similar report from MacPorts and 10.4,
> leading to the fact that it may be better to initialize
> __pg_log_level:
> https://trac.macports.org/ticket/19829

I experimented and confirmed that explicitly initializing __pg_log_level
would suppress this build error on prairiedog. However, I'm not sure
that doing so is a good idea, because it seems to me that this animal
has accidentally saved us from a serious design error. IMO it is quite
unacceptable for libpq to contain either a forced write to stderr or a
forced exit(1). It should be reporting the failure back to the calling
application, instead. So the error handling in this patch needs to be
reconsidered.

Since prairiedog is not likely to be around forever, I propose that
we ought to enforce this going forward by arranging for common/logging.c
to not get built into the libpgcommon_shlib library variant.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2020-09-28 17:44:11 pgsql: Remove complaints about COLLATE clauses in partition bound value
Previous Message Tom Lane 2020-09-28 16:05:19 pgsql: Cache the result of converting now() to a struct pg_tm.

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2020-09-28 17:01:36 Re: Report error position in partition bound check
Previous Message Andrew Dunstan 2020-09-28 16:43:39 Re: Support for OUT parameters in procedures