]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix universal builds on MacOS
authorJohn Naylor <john.naylor@postgresql.org>
Fri, 8 May 2026 09:44:25 +0000 (16:44 +0700)
committerJohn Naylor <john.naylor@postgresql.org>
Fri, 8 May 2026 09:44:25 +0000 (16:44 +0700)
Commit 16743db06 assumed that the CPUID instruction was always
available when the usual x86 symbols were defined. That is not the
case, so zero out the info rather than error out.

Reported-by: Jakob Egger <jakob@eggerapps.at>
Reported-by: Tobias Bussmann <t.bussmann@gmx.net>
Suggested-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/223EA201-A0E8-4A13-B220-EB903E8DF817@eggerapps.at

src/port/pg_cpu_x86.c

index f22167da9afb014908106b46511a72970c23e9ba..f61f09404310a594725d5e816564054377c6d833 100644 (file)
@@ -63,12 +63,11 @@ mask_available(uint32 value, uint32 mask)
 static inline void
 pg_cpuid(int leaf, unsigned int *reg)
 {
+       memset(reg, 0, 4 * sizeof(unsigned int));
 #if defined(HAVE__GET_CPUID)
        __get_cpuid(leaf, &reg[EAX], &reg[EBX], &reg[ECX], &reg[EDX]);
 #elif defined(HAVE__CPUID)
        __cpuid((int *) reg, leaf);
-#else
-#error cpuid instruction not available
 #endif
 }