postgres.git / summary / log / commit / refs

commit    f00cccb798707ad851ff9afbd0bec005c0f08d6b
Author:   Nathan Bossart <nathan@postgresql.org>
Date:     Wed Apr 29 17:25:09 2026 +0000
First released in: 14.23, 15.18, 16.14, 17.10, 18.4

    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 <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


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 */ [parent: cfbfdb963a42]