Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1iGKKE-0001KJ-CC for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Oct 2019 09:56:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1iGKKD-0002Oe-1B for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Oct 2019 09:56:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1iGKKC-0002ON-LP for pgsql-hackers@lists.postgresql.org; Fri, 04 Oct 2019 09:56:36 +0000 Received: from feynman.df7cb.de ([195.49.152.168]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1iGKK9-0000SG-Pe for pgsql-hackers@postgresql.org; Fri, 04 Oct 2019 09:56:35 +0000 Received: from msg.df7cb.de (unknown [IPv6:2a02:908:1473:f520:76e5:bff:fef3:7e00]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by feynman.df7cb.de (Postfix) with ESMTPSA id 46l4yl3gsBz3F1j; Fri, 4 Oct 2019 11:56:31 +0200 (CEST) Date: Fri, 4 Oct 2019 11:56:31 +0200 From: Christoph Berg To: Tom Lane Cc: PostgreSQL Hackers Subject: Re: pgsql: Remove pqsignal() from libpq's official exports list. Message-ID: <20191004095630.GA29119@msg.df7cb.de> Mail-Followup-To: Christoph Berg , Tom Lane , PostgreSQL Hackers References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Re: Tom Lane 2018-09-28 > Remove pqsignal() from libpq's official exports list. > > Client applications should get this function, if they need it, from > libpgport. > > The fact that it's exported from libpq is a hack left over from before > we set up libpgport. It's never been documented, and there's no good > reason for non-PG code to be calling it anyway, so hopefully this won't > cause any problems. Moreover, with the previous setup it was not real > clear whether our clients that use the function were getting it from > libpgport or libpq, so this might actually prevent problems. > > The reason for changing it now is that in the wake of commit ea53100d5, > some linkers won't export the symbol, apparently because it's coming from > a .a library instead of a .o file. We could get around that by continuing > to symlink pqsignal.c into libpq as before; but unless somebody complains > very hard, I don't want to adopt such a kluge. This is starting to hurt in several places: 04 11:41 mha@xindi:~$ psql 04 11:41 /usr/lib/postgresql/9.2/bin/psql: symbol lookup error: /usr/lib/postgresql/9.2/bin/psql: undefined symbol: pqsignal pg_repack linked against libpq5 11 breaks with libpq5 12: --- /tmp/autopkgtest-lxc.evololie/downtmp/build.XvF/src/regress/expected/repack-run.out 2018-10-18 11:30:46.000000000 +0000 +++ /tmp/autopkgtest-lxc.evololie/downtmp/build.XvF/src/regress/results/repack-run.out 2019-10-03 21:24:29.049576631 +0000 @@ -2,19 +2,8 @@ -- do repack -- \! pg_repack --dbname=contrib_regression --table=tbl_cluster -INFO: repacking table "public.tbl_cluster" +pg_repack: symbol lookup error: pg_repack: undefined symbol: pqsignal https://ci.debian.net/data/autopkgtest/testing/amd64/p/pg-repack/3070831/log.gz Christoph