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

From Nathan Bossart
Subject Re: [BUG?] macOS (Intel) build warnings: "ranlib: file … has no symbols" for aarch64 objects
Date
Msg-id ae_BGTKwkAXQRY7R@nathan
Whole thread
In response to Re: [BUG?] macOS (Intel) build warnings: "ranlib: file … has no symbols" for aarch64 objects  (Nathan Bossart <nathandbossart@gmail.com>)
List pgsql-hackers
On Mon, Apr 27, 2026 at 02:43:20PM -0500, Nathan Bossart wrote:
> On Sun, Apr 26, 2026 at 09:31:37PM -0500, Nathan Bossart wrote:
>> On Sun, Apr 26, 2026 at 10:18:33PM -0400, Tom Lane wrote:
>>> I previously suggested that we should teach the build systems not
>>> to build the foo_x86 and foo_aarch64 modules when not on those
>>> architectures.  That was shot down for reasons that made no great
>>> amount of sense to me, but I think it'd be fairly easy and clean.
>> 
>> Yeah, AFAICT that's our best bet.  Will write it up in the morning.
> 
> Here's what I have so far.  Two notes:
> 
> * Since pg_popcount_aarch64.c only builds symbols when USE_NEON is defined,
> I needed to teach the build code about that #define.  So, this patch
> effectively moves USE_NEON and USE_SSE2 from c.h to pg_config.h, which
> happens to be the first #include within c.h.  The reason that I bring this
> up is because back-patching it seems a little scary, although I don't see
> any concrete reasons it would be unsafe.
> 
> * pg_cpu_x86.c has a similar problem, which I haven't fixed yet.
> Presumably a similar approach will work there.  I've added John Naylor to
> this thread for his thoughts.

Sorry, I noticed I was using USE_SSE2 for choosing whether to build
pg_popcount_x86.c, but the code in that file is actually surrounded by
HAVE_X86_64_POPCNTQ.  New patch attached.

-- 
nathan

Attachment

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Randomize B-Tree page split location to avoid oscillating patterns
Next
From: Haibo Yan
Date:
Subject: Re: Extract numeric filed in JSONB more effectively