John R Pierce <pierce@hogranch.com> writes:
> I have compiled some C (pljava.c) for solaris sparc 64 bit, setup the
> LD_LIBRARY_PATH so postgres can find it, and try and load it.
> me=# CREATE FUNCTION sqlj.java_call_handler() RETURNS language_handler
> AS 'pljava' LANGUAGE C;
> ERROR: could not load library "/opt/mystuff/pljava/pljava.so": ld.so.1:
> postgres: fatal: relocation error: file /opt/mystuff/pljava/pljava.so:
> symbol Int64GetDatum: referenced symbol not found
This appears to be a consequence of 32-vs-64-bit confusion, ie, your
pljava.so was built assuming !USE_FLOAT8_BYVAL but the backend was
built with that symbol defined. Are you still trying to hack your
way to a solution without making configure run properly? Because
this is just about the sort of pain I'd expect from that "shortcut".
regards, tom lane