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 <zmlpostgres@gmail.com>
Reviewed-by: John Naylor <johncnaylorls@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/
229aaaf3-f529-44ed-8e50-
00cb6909af21%40Spark
Backpatch-through: 13
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 */
}
#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 */