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: Peter Eisentraut <peter@eisentraut.org>, Zhang Mingli <zmlpostgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-02-04T16:54:22Z
Lists: pgsql-hackers
On Wed, Feb 04, 2026 at 10:28:53AM -0500, Tom Lane wrote:
> Peter Eisentraut <peter@eisentraut.org> writes:
>> On 29.01.26 07:35, Zhang Mingli wrote:
>>> These warnings appear to be related to the recent AArch64 (pg_popcount) 
>>> optimization commits (possibly 79e232ca013c and fbe327e5b465d). It seems 
>>> that on my Intel-based macOS system, the build process is generating 
>>> empty or placeholder object files for the AArch64-specific implementations.
>>> While there is no functional impact in my environment, I'm reporting 
>>> this to ensure it's noted, as other macOS/Intel users might encounter 
>>> the same warnings during their build.
> 
>> Probably not worth fixing, since this is an obsolescent platform.
> 
> Yeah.  My Intel Mac buildfarm animal (longfin) has been showing this
> for some time, but there's no corresponding warning on its ARM Mac
> brethren (sifaka/indri).  I doubt it's worth fixing just to get
> rid of the warning.  Although if a fix arises organically out of the
> nearby thread about popcount refactoring, that would be okay here...

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.

-- 
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