Re: Broken ./configure checks for __cpuid() and __cpuidex()

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-07-29T03:40:17Z
Lists: pgsql-hackers
Michael Paquier <michael@paquier.xyz> writes:
> /usr/share/mingw-w64/include/psdk_inc/intrin-impl.h:2013:42: error:
> macro "__cpuid" requires 5 arguments, but only 2 given

Yeah, surely that's broken ...

> How isn't that a bug in MinGW itself?  I'm puzzled my the macro
> definition of __cpuid() that reports a conflict.  __cpuidex() and
> __cpuid() are both detected by ./configure, the PG use of __cpuid() in
> pg_crc32c_sse42_choose.c causes a failure.

Why is the configure probe succeeding?  Maybe pg_crc32c_sse42_choose.c
is including something the configure check isn't?

			regards, tom lane



Commits

  1. Fix ./configure checks with __cpuidex() and __cpuid()