rjhb@bb-c.de (Rainer J.H. Brandt) writes:
> I got this initdb error for a 64bit-build on macOS El Capitan and Sierra:
> creating conversions ... FATAL: could not load library "/opt/bb/170704/lib/postgresql/ascii_and_mic.so":
dlopen(/opt/bb/170704/lib/postgresql/ascii_and_mic.so,10): Symbol not found: _check_encoding_conversion_args
> Referenced from: /opt/bb/170704/lib/postgresql/ascii_and_mic.so
> Expected in: /opt/bb/170704/bin/postgres
> in /opt/bb/170704/lib/postgresql/ascii_and_mic.so
check_encoding_conversion_args() should certainly be there in any PG
version released since 2009 (see src/backend/utils/mb/wchar.c). But it's
unreferenced in the core Postgres executable, only in the loadable
conversion libraries. I wonder if you have somehow enabled a link-time
optimization to remove "unreferenced" symbols, or at least not export them
to libraries. Are you using Apple's stock toolchain, or something else?
> I configured with ./configure CC='gcc -m64' --prefix=/opt/bb/170704
> and also tried with CFLAGS=-m64 LDFLAGS=-m64.
> With the same procedures, but 32-bit-builds, I don't get this error,
> and everything works fine. Unfortunately, I need the 64-bit version.
This makes little sense to me. 64-bit builds have been the default on
macOS for some time.
It's possible that by overriding LDFLAGS you're removing linker switches
that need to be there ...
regards, tom lane