Re: [BUG?] macOS (Intel) build warnings: "ranlib: file … has no symbols" for aarch64 objects

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: John Naylor <johncnaylorls@gmail.com>, Peter Eisentraut <peter@eisentraut.org>, Zhang Mingli <zmlpostgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-28T20:32:28Z
Lists: pgsql-hackers

Attachments

On Tue, Apr 28, 2026 at 09:09:09AM -0500, Nathan Bossart wrote:
> On Tue, Apr 28, 2026 at 09:29:41AM -0400, Tom Lane wrote:
>> If we do care, a low-tech solution could be to have a dummy symbol
>> declared in each file, along the lines of
>> 
>> #if HAVE_X86_64_POPCNTQ
>> // code for popcntq case
>> #elif HAVE_FROBNITZ
>> // code for frobnitz case
>> ...
>> #else
>> /* prevent linker complaints about empty module */
>> extern int pg_cpu_x86_dummy_variable;
>> int	pg_cpu_x86_dummy_variable = 0;
>> #endif
>> 
>> Actually then we'd not need to change the build systems either...
> 
> I've been trying to avoid doing that, but it's a far simpler solution, and
> in theory it should fix the problem for all platforms, too.  So, it's
> probably the way to go.

Here's a full set of patches for back-patching purposes.
protocol_openssl.c has a similar problem on older versions.  I suppose this
is the sort of thing I could back-patch all the way to v9.2.  Does anyone
feel strongly one way or the other about that?

-- 
nathan

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Suppress "has no symbols" linker warnings on macOS.

  2. Fix two error messages in extended_stats_funcs.c