Re: Broken build on macOS (Universal / Intel): cpuid instruction not available

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Tobias Bussmann <t(dot)bussmann(at)gmx(dot)net>
Cc: John Naylor <johncnaylorls(at)gmail(dot)com>, Lukas Fittl <lukas(at)fittl(dot)com>, Jakob Egger <jakob(at)eggerapps(dot)at>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>, Sandeep Thakkar <sandeep(dot)thakkar(at)enterprisedb(dot)com>
Subject: Re: Broken build on macOS (Universal / Intel): cpuid instruction not available
Date: 2026-06-02 15:20:46
Message-ID: 2927612.1780413646@sss.pgh.pa.us
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I wrote:
> However, it definitely is a regression that the build fails
> altogether. Too bad nobody tried the x86 -> ARM case earlier.

I replicated this on longfin's host (x86_64 mac mini).
It seems there are two problems:

1. pg_cpu.h believes that x86-specific code can be conditional on

#if defined(USE_SSE2) || defined(__i386__)

but macOS doesn't define __i386__, only __x86_64__. It works
anyway on single-arch builds because the test to set USE_SSE2
succeeds, but not on multi-arch builds.

2. checksum.c believes that it's okay to call x86_feature_available
if USE_AVX2_WITH_RUNTIME_CHECK is set. I didn't track down just
why that's getting set in a multi-arch build when USE_SSE2 is not,
but it is, and that's probably good since it means we get at least
some optimization for x86 Macs. But we have to disregard it when
we're doing the ARM side.

The attached quick hack makes the build work on my machine.
I'm hesitant to shove it into the tree though because I'm
not too certain whether there could be side-effects on
other platforms. I think the way to proceed for now is for
EDB to apply this patch in their build of beta1, and we can
review the patch at leisure afterwards.

regards, tom lane

Attachment Content-Type Size
quick-fix.patch text/x-diff 945 bytes

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2026-06-02 15:22:36 Re: hashjoins vs. Bloom filters (yet again)
Previous Message Tobias Bussmann 2026-06-02 15:10:49 Re: Broken build on macOS (Universal / Intel): cpuid instruction not available