On Tue, Apr 28, 2026 at 09:29:41AM -0400, Tom Lane wrote: > If we do care, a low-tech solution could be to have a dummy symbol > declared in each file, along the lines of > > #if HAVE_X86_64_POPCNTQ > // code for popcntq case > #elif HAVE_FROBNITZ > // code for frobnitz case > ... > #else > /* prevent linker complaints about empty module */ > extern int pg_cpu_x86_dummy_variable; > int pg_cpu_x86_dummy_variable = 0; > #endif > > Actually then we'd not need to change the build systems either...
I've been trying to avoid doing that, but it's a far simpler solution, and in theory it should fix the problem for all platforms, too. So, it's probably the way to go. -- nathan
>From d9e128fdcf168c90ebf6d5be0c645ce27b7611ba Mon Sep 17 00:00:00 2001 From: Nathan Bossart <[email protected]> Date: Tue, 28 Apr 2026 09:05:43 -0500 Subject: [PATCH v3 1/1] avoid ranlib warnings on macOS --- src/port/pg_cpu_x86.c | 7 ++++++- src/port/pg_popcount_aarch64.c | 8 +++++++- src/port/pg_popcount_x86.c | 8 +++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/port/pg_cpu_x86.c b/src/port/pg_cpu_x86.c index 150b4a1d574..2a4eae8688b 100644 --- a/src/port/pg_cpu_x86.c +++ b/src/port/pg_cpu_x86.c @@ -263,5 +263,10 @@ x86_hypervisor_tsc_frequency_khz(void) return 0; } +#else + +/* prevent linker complaints about empty module */ +extern int pg_cpu_x86_dummy_variable; +int pg_cpu_x86_dummy_variable = 0; -#endif /* defined(USE_SSE2) || defined(__i386__) */ +#endif diff --git a/src/port/pg_popcount_aarch64.c b/src/port/pg_popcount_aarch64.c index 3969a42523c..68a768bac01 100644 --- a/src/port/pg_popcount_aarch64.c +++ b/src/port/pg_popcount_aarch64.c @@ -463,4 +463,10 @@ pg_popcount_masked_neon(const char *buf, int bytes, uint8 mask) return popcnt; } -#endif /* USE_NEON */ +#else + +/* prevent linker complaints about empty module */ +extern int pg_popcount_aarch64_dummy_variable; +int pg_popcount_aarch64_dummy_variable = 0; + +#endif diff --git a/src/port/pg_popcount_x86.c b/src/port/pg_popcount_x86.c index 91579e6b569..b3a6d8b3b0c 100644 --- a/src/port/pg_popcount_x86.c +++ b/src/port/pg_popcount_x86.c @@ -301,4 +301,10 @@ pg_popcount_masked_sse42(const char *buf, int bytes, uint8 mask) return popcnt; } -#endif /* HAVE_X86_64_POPCNTQ */ +#else + +/* prevent linker complaints about empty module */ +extern int pg_popcount_x86_dummy_variable; +int pg_popcount_x86_dummy_variable = 0; + +#endif -- 2.50.1 (Apple Git-155)
