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

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Peter Eisentraut <peter@eisentraut.org>, Zhang Mingli <zmlpostgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-02-04T18:27:43Z
Lists: pgsql-hackers
Nathan Bossart <nathandbossart@gmail.com> writes:
> Hm.  The options I see for fixing this seem to be:

> * Pass -no_warning_for_no_symbols flag on this platform, but that option
> might not be available in older toolchains.

> * Add a random symbol to this file.  That seems like a hack.

> * Add build logic to only compile this file when necessary.  I've been
> trying to get rid of complexity here, so this feels like a step backwards.

> IMHO none of these options seem worth the effort to fix a warning on an
> obsolescent platform, so my vote is to do nothing for now.

The idea I'd had was to simply merge pg_popcount_aarch64.c
and pg_popcount_x86.c into one file.  Since each one is basically
one giant #ifdef block conditioned on a different symbol, they'd not
interfere.  But I wouldn't propose this unless it made sense from
a code-structure viewpoint, and I'm not sure it does.  It could
make sense if there was some code that could be shared, but I'm
not seeing much.

			regards, tom lane



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