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