From: books at ejurka.com (Kris Jurka) Date: Thu, 15 Apr 2010 21:39:29 -0400 (EDT) Subject: [Pljava-dev] building pljava for solaris 10 sparc 64bit In-Reply-To: <4BC7B7C0.40008@hogranch.com> References: <4BC78D22.7020809@hogranch.com> <4BC79676.8050007@hogranch.com> <4BC7A0FA.4050600@hogranch.com> <4BC7B7C0.40008@hogranch.com> Message-ID: On Thu, 15 Apr 2010, John R Pierce wrote: > Kris Jurka wrote: >> >> >> On Thu, 15 Apr 2010, John R Pierce wrote: >> >>> org.postgresql.util.PSQLException: ERROR: could not load library >>> "/opt/FIS/pljava/pljava.so": ld.so.1: postgres: fatal: relocation error: >>> file /opt/FIS/pljava/pljava.so: symbol Int64GetDatum: referenced symbol >>> not found >> >> Your hacking of the 32 bit build files is incomplete/incorrect, so you've >> built a pljava that is incompatible with your server. I'm not entirely >> sure what you've done, but you don't have the right setting for >> FLOAT8PASSBYVAL in src/include/pg_config.h in the source tree. I'm not >> sure where you've got that installed. > > k, the three files I copied from the 32bit to the 64bit pgxs/src dir in the > postgres dir were Makefile.global, Makefile.port and Makefile.shlib > > only Makefile.global -seemed- to have anything in it that referenced wordsize > kinda stuff. I changed the libdir and bindir paths. I replaced > configure_arguments with the output of pg_config > The package you have may be more busted than just some missing files. If they packaged the 32bit headers with a 64bit server then you're hosed and it sort of sounds like that's what they did. Run: "pg_controldata /path/to/your/data/directory" and check for the line: Float8 argument passing: by value If it says the above instead of "by reference" then you've got a 64bit server that was not compiled with --disable-float8-byval. Then run "grep FLOAT8 include/postgresql/server/pg_config.h" and I expect you'll see: #define FLOAT8PASSBYVAL false which conflicts with the running server. If this is the case, your package is no good for building an extension. > one thing I noted, getting a fair number of > line 47: warning: initialization type mismatch > from various C sources. I assume these are normal ? > No, those aren't normal although I haven't built with Sun Studio on a 64bit machine. Again I suspect your package is busted and I wouldn't recommend trying to manually fix it up. You need the right headers. Kris Jurka