Re: Annoying build warnings from latest Apple toolchain

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>, Noah Misch <noah@leadboat.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2023-10-05T17:17:25Z
Lists: pgsql-hackers

Attachments

I wrote:
> So I experimented with fixing things so that the versions of these
> functions exported by libpq have physically different names from those
> that you'd get from linking to libpgcommon.a or libpgcommon_srv.a.
> Then, there's certainty about which one a given usage will link to,
> based on what the #define environment is when the call is compiled.

> This leads to a pleasingly small patch, at least in the Makefile
> universe (I've not attempted to sync the meson or MSVC infrastructure
> with this yet).

Here's a v2 that addresses the meson infrastructure as well.
(This is my first attempt at writing meson code, so feel free
to critique.)  I propose not bothering to fix src/tools/msvc/,
on the grounds that (a) that infrastructure will likely be gone
before v17 ships, and (b) the latent problem with version
skew between libpq.dll and calling programs seems much less
likely to matter in the Windows world in the first place.

Barring comments or CI failures, I intend to push this soon.

			regards, tom lane

Commits

  1. meson: macos: Avoid warnings on Sonoma

  2. Restore proper linkage of pg_char_to_encoding() and friends.

  3. meson: macos: Correct -exported_symbols_list syntax for Sonoma compat

  4. Suppress macOS warnings about duplicate libraries in link commands.

  5. Stop using "-multiply_defined suppress" on macOS.

  6. Fix the inadvertent libpq ABI breakage discovered by Martin Pitt: the

  7. Cause libpq and ecpg libraries to be built as proper shared libraries