Broken ./configure checks for __cpuid() and __cpuidex()
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-07-29T02:21:41Z
Lists: pgsql-hackers
Hi all,
While looking at patch 0001 posted by Lukas at [1], the following bit
stood out as an independent fix:
+++ b/configure
unsigned int exx[4] = {0, 0, 0, 0};
- __get_cpuidex(exx[0], 7, 0);
+ __cpuidex(exx, 7, 0);
The patch posted is incorrect because it does not touch configure.ac
and an autoreconf -i or equivalent is missing, but it does not change
the fact that this looks like a valid issue to me.
While looking at the surroundings, I have noticed a second check
that's incorrect in ./configure.ac, with __cpuid(). I may be missing
something, of course, but these two typos have been introduced by
3dc2d62d0486, back in 2015. meson is doing these checks correctly. I
have not been able to test that on cirrus, it seems to run into
problems this morning. I don't know much about these instructions,
but it seems like __get_cpuid_count() and __get_cpuid() are much more
populate than the two others, so the impact may be lighter than I
suspect for builds using ./configure.
Equally, I think that one comment in meson.build is just a consequence
of these two typos.
The attached warrants a backpatch to me, thoughts?
Thanks,
[1]: https://www.postgresql.org/message-id/CAP53Pky-BN0Ui+A9no3TsU=GoMTFpxYSWYtp_LVaDH=y69BxNg@mail.gmail.com
--
Michael
Commits
-
Fix ./configure checks with __cpuidex() and __cpuid()
- 612f5b80620d 13.22 landed
- 60953d4cba7c 14.19 landed
- d6ffc43f95b2 15.14 landed
- c1984be23cdc 16.10 landed
- 8de56323c139 17.6 landed
- cd2d52cc6b39 18.0 landed
- 1a5212775e46 19 (unreleased) landed