From f00cccb798707ad851ff9afbd0bec005c0f08d6b Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Wed, 29 Apr 2026 12:25:09 -0500 Subject: [PATCH] Suppress "has no symbols" linker warnings on macOS. After a recent macOS update, building Postgres produces warnings that look like this: ranlib: warning: 'libpgport_shlib.a(pg_cpu_x86.c.o)' has no symbols ranlib: warning: 'libpgport_shlib.a(pg_popcount_x86.c.o)' has no symbols To fix, add a dummy symbol to files that may otherwise have none. Per project policy, this is a candidate for back-patching into out-of-support branches: it suppresses annoying compiler warnings but changes no behavior. Reported-by: Zhang Mingli Reviewed-by: John Naylor Reviewed-by: Tom Lane Discussion: https://postgr.es/m/229aaaf3-f529-44ed-8e50-00cb6909af21%40Spark Backpatch-through: 13 --- src/port/pg_popcount_aarch64.c | 8 +++++++- src/port/pg_popcount_avx512.c | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/port/pg_popcount_aarch64.c b/src/port/pg_popcount_aarch64.c index 0b6b86de4d0..0c93e2e625e 100644 --- a/src/port/pg_popcount_aarch64.c +++ b/src/port/pg_popcount_aarch64.c @@ -478,4 +478,10 @@ pg_popcount_masked_neon(const char *buf, int bytes, bits8 mask) return popcnt; } -#endif /* POPCNT_AARCH64 */ +#else /* POPCNT_AARCH64 */ + +/* prevent linker complaints about empty module */ +extern int pg_popcount_aarch64_dummy_variable; +int pg_popcount_aarch64_dummy_variable = 0; + +#endif /* ! POPCNT_AARCH64 */ diff --git a/src/port/pg_popcount_avx512.c b/src/port/pg_popcount_avx512.c index 80c0aee3e73..896bc7473b2 100644 --- a/src/port/pg_popcount_avx512.c +++ b/src/port/pg_popcount_avx512.c @@ -220,4 +220,11 @@ pg_popcount_masked_avx512(const char *buf, int bytes, bits8 mask) } #endif /* TRY_POPCNT_X86_64 */ -#endif /* USE_AVX512_POPCNT_WITH_RUNTIME_CHECK */ + +#else /* USE_AVX512_POPCNT_WITH_RUNTIME_CHECK */ + +/* prevent linker complaints about empty module */ +extern int pg_popcount_avx512_dummy_variable; +int pg_popcount_avx512_dummy_variable = 0; + +#endif /* ! USE_AVX512_POPCNT_WITH_RUNTIME_CHECK */