| From: | ecf at goldencode(dot)com (Eric Faulhaber) | 
|---|---|
| To: | |
| Subject: | [Pljava-dev] Building from source for PG 8.2.4 | 
| Date: | 2007-08-31 19:47:37 | 
| Message-ID: | 46D87059.6080905@goldencode.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pljava-dev | 
Kris Jurka wrote:
>
>
> On Fri, 31 Aug 2007, Eric Faulhaber wrote:
>
>> Curiously, I ended up with a pljava.so that was nearly 5 times larger 
>> than the version which was distributed with the PL/Java 1.3.0 
>> release. Any idea why this would be?  Does the default build included 
>> debug symbols?
>>
>
> It will pick up the compile options used for the server it's built 
> against (see pg_config --cflags).  I'm not sure how the release was 
> made, but you can certainly check your own config.
pg_config --cflags output:
-g -Wall -O2 -fPIC -Wall -Wmissing-prototypes -Wpointer-arith -Winline 
-Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -g
Interesting.  I installed PG 8.2.4 using Kubuntu's package manager.  Odd 
that they would distribute a production release with debug symbols (and 
they seem to want to be sure of it;  '-g' shows up twice!).  Well, that 
explains the huge library file.
>
>> Anyway, when I try to deploy to a database using install.sql, it
>> complains that it is unable to locate the JVM:
>>
>> psql:install.sql:6: ERROR:  could not load library
>> "/usr/lib/postgresql/8.2/lib/pljava.so":
>> /usr/lib/postgresql/8.2/lib/pljava.so: undefined symbol: 
>> JNI_CreateJavaVM
>>
>> I've made all the same changes to postgresql.conf that were necessary to
>> get this to work with my previous PG 8.1.8 installation.  Likewise, I
>> have set LD_LIBRARY_PATH in exactly the same way as was working before.
>> For Kubuntu, this is set in /etc/postgresql/8.2/<mycluster>/environment,
>> as in:
>
> Have you restarted the postgres server?  These changes won't take 
> effect without that.
Yes.  BTW, on Kubuntu, apparently it's not enough to SIGHUP the 
postmaster if you make changes to the 
/etc/postgresql/8.2/<cluster>/environment file;  a full restart seems to 
be necessary.
Actually, it turns out something was wrong with my build:  pljava.so was 
not linking to libjvm.so.  The problem area for me was with the setup of 
the directory in which we look to link to the JVM (in 
src/C/pljava/Makefile):
                        JVM_LIB := $(firstword $(shell /bin/ls -d \
                                $(JRE_LIB)/client \
                                $(JRE_LIB)/server \
                                $(JRE_LIB)/jrockit \
                                2> /dev/null))
For me, this was resulting in an empty string for JVM_LIB:
cc -g -Wall -O2 -fPIC -Wall -Wmissing-prototypes -Wpointer-arith 
-Winline -Wdeclaration-after-statement -Wendif-labels 
-fno-strict-aliasing -g -fpic  -shared -Wl,-soname,pljava.so   
JNICalls.o Iterator.o SPI.o PgObject.o SQLOutputToChunk.o 
SQLOutputToTuple.o ExecutionPlan.o SQLInputFromChunk.o Exception.o 
PgSavepoint.o Session.o SubXactListener.o XactListener.o HashMap.o 
type/Void.o type/Double.o type/Float.o type/ErrorData.o type/Array.o 
type/Date.o type/Timestamp.o type/Boolean.o type/Coerce.o type/Any.o 
type/Long.o type/AclId.o type/String.o type/HeapTupleHeader.o 
type/Type.o type/Byte.o type/JavaWrapper.o type/Short.o type/Portal.o 
type/BigDecimal.o type/LargeObject.o type/Integer.o type/UDT.o 
type/Time.o type/Oid.o type/TriggerData.o type/Relation.o type/Tuple.o 
type/TupleDesc.o type/Composite.o type/TupleTable.o type/byte_array.o 
backports.o Invocation.o Function.o SQLInputFromTuple.o Backend.o  
-L/usr/lib  -L. -L"" -ljvm -o pljava.so
I temporarily worked around this by hard-coding the target JVM_LIB 
directory in the Makefile, but clearly this is not a permanent 
solution.  So, something appears to be invalid with my build 
environment.  I had JAVA_HOME set to my Java 1.5 directory.  Something 
else I should have set?
>
> Kris Jurka
>
>
Thanks for your feedback!
Regards,
Eric Faulhaber
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kris Jurka | 2007-08-31 20:02:48 | [Pljava-dev] Building from source for PG 8.2.4 | 
| Previous Message | Kris Jurka | 2007-08-31 18:48:34 | [Pljava-dev] PL/Java 1.3 and PG 8.2.4 |