|
So far this is what I have discovered (after hours of hosing around with stuff):
The bottom line I know to be true is that Microsoft are fucking assholes and make just about everything 100 times harder than it needs to be for software developers. I'll keep slogging away and see what I can figure out. Cheers, Eric referenced files:
On 2011-04-29 3:32 PM, JOSE CARLOS MARTINEZ LLARIO wrote: Hi Johann, _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
On 4/29/2011 5:34 PM, Eric Kolotyluk wrote:
> 2. The 64-bit release of Postgres has some bad and missing DLLs in > it. You need to add the referenced files to the postgres/bin > directory (let me know if you want me to e-mail them to you). > DependencyWalker shows one final unresolved function: > DatumGetFloat8 that I cannot find anywhere. A missing reference to DatumGetFloat8 implies that the server was built with float8 pass by value and pljava was built with float8 pass by reference. When float8 is pass by value, the function call is replaced with a macro, so it won't be exported. I'm not sure how this could have happened because pljava should just pickup the config from the server, but Johann might know more. Perhaps he built 64bit pljava against the 32bit server include files? Kris Jurka _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
On 04/29/11 5:38 PM, Kris Jurka wrote:
> Perhaps he built 64bit pljava against the 32bit server include files? been there, done that, got the t-shirt.... on solaris sparc :-O I discovered the 8.4 solaris 64bit sparc builds had been packaged with only the 32 bit includes due to an oversight of the packager not realizing they were different. Upon notification, the Solaris Sparc postgres builder fixed his builds. _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
In reply to this post by Eric Kolotyluk
Hi Eric,
Im almost sure I already run 32-bit pljava with 32-bit Postgres and 32-bit Java on 64-bit windows. I wil check it again though. cheers, Jose Date: Fri, 29 Apr 2011 17:34:05 -0700 From: [hidden email] To: [hidden email] Subject: [Pljava-dev] Fwd: Re: Calling it a day So far this is what I have discovered (after hours of hosing around with stuff):
The bottom line I know to be true is that Microsoft are fucking assholes and make just about everything 100 times harder than it needs to be for software developers. I'll keep slogging away and see what I can figure out. Cheers, Eric referenced files:
On 2011-04-29 3:32 PM, JOSE CARLOS MARTINEZ LLARIO wrote: Hi Johann, _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
In reply to this post by John R Pierce
On Sat, 30 Apr 2011 02:20:15 -0000, John R Pierce <[hidden email]>
wrote: > On 04/29/11 5:38 PM, Kris Jurka wrote: >> Perhaps he built 64bit pljava against the 32bit server include files? > > been there, done that, got the t-shirt.... on solaris sparc :-O So did I. On Solaris too. And I was the "packager." Here's a partial command line: x86_64-w64-mingw32-gcc -c -O2 -Wall ... -I/opt/myrkraverk/WinePrograms/PostgreSQL/amd64/9.0.4/include/postgresql/server ... So I'm not building against 32bit header files, but maybe the cross compilation screwed something up? Thank you Eric for figuring out what symbols were missing and to install the MSVC++ redistributables. -- Johann Oskarsson http://www.2ndquadrant.com/ |[] PostgreSQL Development, 24x7 Support, Training and Services --+-- | Blog: http://my.opera.com/myrkraverk/blog/ _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
In reply to this post by Kris Jurka
On Sat, 30 Apr 2011 00:38:21 -0000, Kris Jurka <[hidden email]> wrote:
> A missing reference to DatumGetFloat8 implies that the server was built > with float8 pass by value and pljava was built with float8 pass by > reference. Both the Enterprise DB and my header files define the DatumGetFloat8 in the same way: Enterprise DB: server/postgres.h:#define DatumGetFloat8(X) (* ((float8 *) DatumGetPointer(X))) My cross compiled binary: server/postgres.h:#define DatumGetFloat8(X) (* ((float8 *) DatumGetPointer(X))) However, when I preprocess Double.c, which does reference it, I get: extern float8 DatumGetFloat8(Datum X); I guess something in the PL/Java build system is broken for 64 bit Windows. That's what I'm hunting down now. -- Johann Oskarsson http://www.2ndquadrant.com/ |[] PostgreSQL Development, 24x7 Support, Training and Services --+-- | Blog: http://my.opera.com/myrkraverk/blog/ _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
In reply to this post by Eric Kolotyluk
Hi PL/Java users,
On Sat, 30 Apr 2011 00:34:05 -0000, Eric Kolotyluk <[hidden email]> wrote: > DependencyWalker shows one final unresolved function: > DatumGetFloat8 that I cannot find anywhere. This has been fixed, the solution turned out be compile my server with --disable-float8-byval. Let me know if there are any other issues. The download url I have you, Eric and Jose, has been updated. Please let me know whether it works as soon as you can. -- Johann Oskarsson http://www.2ndquadrant.com/ |[] PostgreSQL Development, 24x7 Support, Training and Services --+-- | Blog: http://my.opera.com/myrkraverk/blog/ _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
Well I tried your latest DLL and it fixes float8 problem, but now there
is some other DLL problem I am trying to sort out. IEFRAME.DLL is missing some references for some reason - and they have no name, just numbers - argh! Cheers, Eric On 2011-05-02 8:06 AM, Johann 'Myrkraverk' Oskarsson wrote: > Hi PL/Java users, > > On Sat, 30 Apr 2011 00:34:05 -0000, Eric Kolotyluk > <[hidden email]> wrote: > >> DependencyWalker shows one final unresolved function: >> DatumGetFloat8 that I cannot find anywhere. > > This has been fixed, the solution turned out be compile my server with > --disable-float8-byval. Let me know if there are any other issues. > > The download url I have you, Eric and Jose, has been updated. > > Please let me know whether it works as soon as you can. > > Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
On Mon, 02 May 2011 16:02:31 -0000, Eric Kolotyluk
<[hidden email]> wrote: > Well I tried your latest DLL and it fixes float8 problem, but now there > is some other DLL problem I am trying to sort out. IEFRAME.DLL is > missing some references for some reason - and they have no name, just > numbers - argh! Is it possible for you to show me what symbols in PL/Java map to IEFRAME? I'm hoping there is a chance I can get rid of that dependency. -- Johann Oskarsson http://www.2ndquadrant.com/ |[] PostgreSQL Development, 24x7 Support, Training and Services --+-- | Blog: http://my.opera.com/myrkraverk/blog/ _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
Hi, this is the error i get now, maybe the same Erik said..dont know..
psql:c:/jaspa4pg/sql/pljavainstall.sql:6: ERROR: incompatible library "c:/jaspa 4pg/lib/pljava.dll": missing magic block HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro. psql:c:/jaspa4pg/sql/pljavainstall.sql:8: ERROR: function sqlj.java_call_handle r() does not exist > To: [hidden email] > Date: Mon, 2 May 2011 16:04:08 +0000 > From: [hidden email] > Subject: Re: [Pljava-dev] Fwd: Re: Calling it a day > > On Mon, 02 May 2011 16:02:31 -0000, Eric Kolotyluk > <[hidden email]> wrote: > > > Well I tried your latest DLL and it fixes float8 problem, but now there > > is some other DLL problem I am trying to sort out. IEFRAME.DLL is > > missing some references for some reason - and they have no name, just > > numbers - argh! > > Is it possible for you to show me what symbols in PL/Java map to IEFRAME? > I'm hoping there is a chance I can get rid of that dependency. > > > -- > Johann Oskarsson http://www.2ndquadrant.com/ |[] > PostgreSQL Development, 24x7 Support, Training and Services --+-- > | > Blog: http://my.opera.com/myrkraverk/blog/ > _______________________________________________ > Pljava-dev mailing list > [hidden email] > http://pgfoundry.org/mailman/listinfo/pljava-dev _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
On Mon, 02 May 2011 16:24:38 -0000, JOSE CARLOS MARTINEZ LLARIO
<[hidden email]> wrote: > > Hi, this is the error i get now, maybe the same Erik said..dont know.. > psql:c:/jaspa4pg/sql/pljavainstall.sql:6: ERROR: incompatible library > "c:/jaspa4pg/lib/pljava.dll": missing magic blockHINT: Extension > libraries are required to use the PG_MODULE_MAGIC > macro.psql:c:/jaspa4pg/sql/pljavainstall.sql:8: ERROR: function > sqlj.java_call_handler() does not exist I'm not sure why that would pop up. The DLL does contain the module magic: % x86_64-w64-mingw32-nm build/objs/pljava.dll|grep -i magic 00000000690183c0 r Pg_magic_data.78625 0000000069006160 T Pg_magic_func However, if I managed to make the module incompatible somehow I would expect the error message to say so, and not that it's missing. I'll try and see if I can check that the magic numbers are equivalent. -- Johann Oskarsson http://www.2ndquadrant.com/ |[] PostgreSQL Development, 24x7 Support, Training and Services --+-- | Blog: http://my.opera.com/myrkraverk/blog/ _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
In reply to this post by Johann 'Myrkraverk' Oskarsson-2
Here is the dependency tree
PLJAVA.DLL JVM.DLL ADVAPI32.DLL WINTRUST.DLL CRYPT32.DLL USERENV.DLL SHELL32.DLL SHDOCVW.DLL IEFRAME.DLL -> #160, #141, #159 I don't know if the IEFRAME.DLL references are because of COM or some other foolishness. Cheers, Eric On 2011-05-02 9:04 AM, Johann 'Myrkraverk' Oskarsson wrote: > On Mon, 02 May 2011 16:02:31 -0000, Eric Kolotyluk > <[hidden email]> wrote: > >> Well I tried your latest DLL and it fixes float8 problem, but now >> there is some other DLL problem I am trying to sort out. IEFRAME.DLL >> is missing some references for some reason - and they have no name, >> just numbers - argh! > > Is it possible for you to show me what symbols in PL/Java map to IEFRAME? > I'm hoping there is a chance I can get rid of that dependency. > > Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
In reply to this post by JOSE CARLOS MARTINEZ LLARIO
Jose, did you ever get around to checking 32-bit pljava with 32-bit
Postgres and 32-bit Java on 64-bit Windows.
I was finally able to get 64-bit pljava with 64-bit Postgres and 64-bit Java to work on 64-bit windows with Johann's latest builds. It makes application deployment a little trickier now, but at least I have solutions for both 32-bit and 64-bit windows. Cheers, Eric On 2011-04-30 4:58 AM, JOSE CARLOS MARTINEZ LLARIO wrote: Hi Eric, _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
Hi Erik, I just checked it out right now getting the same results than I got some weeks before. W7 64 - Pg 9 32 - JRE 32 - PLJAVA 32 - Working W7 64 - Pg 9 32 - JRE 64 - PLJAVA 32 - not working, with this error: ERROR: could not load library "c:/jaspa4pg/lib/pljava.dll": %1 is not a valid Win32 application. Do not why with JRE 64 is not working but with JRE 32 I can tell you that its working for sure. Cheers, Jose ________________________________ > Date: Tue, 3 May 2011 22:48:27 -0700 > From: [hidden email] > To: [hidden email] > Subject: Re: [Pljava-dev] Fwd: Re: Calling it a day > > Jose, did you ever get around to checking 32-bit pljava with 32-bit > Postgres and 32-bit Java on 64-bit Windows. > > I was finally able to get 64-bit pljava with 64-bit Postgres and 64-bit > Java to work on 64-bit windows with Johann's latest builds. > > It makes application deployment a little trickier now, but at least I > have solutions for both 32-bit and 64-bit windows. > > Cheers, Eric > > On 2011-04-30 4:58 AM, JOSE CARLOS MARTINEZ LLARIO wrote: > Hi Eric, > Im almost sure I already run 32-bit pljava with 32-bit Postgres and > 32-bit Java on 64-bit windows. > I wil check it again though. > cheers, > Jose > > ________________________________ > Date: Fri, 29 Apr 2011 17:34:05 -0700 > From: [hidden email] > To: [hidden email] > Subject: [Pljava-dev] Fwd: Re: Calling it a day > > Thanks for trying. > > So far this is what I have discovered (after hours of hosing around > with stuff): > > 1. It is not possible to run 32-bit pljava with 32-bit Postgres and > 32-bit Java on 64-bit windows. I have tried every variation I can think > of and DependencyWalker always shows that it is still trying to link > against 64-bit DLLs. This could be some sort of build configuration > problem with Postgres and/or PLJava. > 2. The 64-bit release of Postgres has some bad and missing DLLs in > it. You need to add the referenced files to the postgres/bin directory > (let me know if you want me to e-mail them to you). DependencyWalker > shows one final unresolved function: DatumGetFloat8 that I cannot find > anywhere. Anyway, you need to use Microsoft Visual C++ 2008 > Redistributable Package > (x64) > instead of the (x86) version, and the version of IEShims.dll from the > 64-bit version of IE. > > What I know to be true is that I can run 32-bit pljava with 32-bit > postgres and 32-bit Java on 32-bit windows. > > The bottom line I know to be true is that Microsoft are fucking > assholes and make just about everything 100 times harder than it needs > to be for software developers. > > I'll keep slogging away and see what I can figure out. > > Cheers, Eric > > referenced files: > > * msvcm90.dll > * msvcp90.dll > * msvcr90.dll > * IEShims.dll > > On 2011-04-29 3:32 PM, JOSE CARLOS MARTINEZ LLARIO wrote: > Hi Johann, > ok, I will try it again next week. As soon as you get it please send it > to me. > > Have a nice weekend too. > Jose > > > > To: [hidden email]; > [hidden email] > > Subject: Calling it a day > > Date: Fri, 29 Apr 2011 22:27:49 +0000 > > From: [hidden email] > > > > Hi Eric and Jose, > > > > Just to let you know I'm calling it a day. I suspect the pljava > > binary I gave you does not work because there are no exported sym- > > bols in it. If that's the case, it just will not work at all. > > > > I'll dig further into this on Monday. > > > > Have a nice weekend, > > > > > > -- > > Johann Oskarsson http://www.2ndquadrant.com/ |[] > > PostgreSQL Development, 24x7 Support, Training and Services --+-- > > | > > Blog: http://my.opera.com/myrkraverk/blog/ > > > _______________________________________________ > Pljava-dev mailing list > [hidden email] > http://pgfoundry.org/mailman/listinfo/pljava-dev > > _______________________________________________ Pljava-dev mailing list > [hidden email] > http://pgfoundry.org/mailman/listinfo/pljava-dev > > > > > _______________________________________________ > Pljava-dev mailing list > [hidden email] > http://pgfoundry.org/mailman/listinfo/pljava-dev > > _______________________________________________ Pljava-dev mailing list > [hidden email] > http://pgfoundry.org/mailman/listinfo/pljava-dev _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
On Wed, 04 May 2011 15:14:04 -0000, JOSE CARLOS MARTINEZ LLARIO
<[hidden email]> wrote: > > Hi Erik, > I just checked it out right now getting the same results than I got some > weeks before. > W7 64 - Pg 9 32 - JRE 32 - PLJAVA 32 - Working > W7 64 - Pg 9 32 - JRE 64 - PLJAVA 32 - not working, with this error: > ERROR: could not load library "c:/jaspa4pg/lib/pljava.dll": %1 is not a > valid Win32 application. > Do not why with JRE 64 is not working but with JRE 32 I can tell you > that its working for sure. That is expected. It's simply not possible to mix 32bit and 64bit code in applications [*]. However, the error message is misleading, the %1 is not referring to pljava.dll but to some dependency of it. In this case jvm.dll. It is interesting to note that the error messages coming from the dynamic linker (part of the operating system) are totally useless on Windows. It is possible that Postgres is not filling the %1 in correctly, but I have a feeling that's Windows' fault. Compare this with the equivalent message on Solaris: % java -cp $CLASSPATH org.postgresql.pljava.deploy.Deployer \ -host pgnode1 -port 58903 -database template1 \ -user postgres9 -install org.postgresql.util.PSQLException: ERROR: could not load library "/opt/myrkraverk/postgresql/9.0.3/lib/amd64/pljava.so": ld.so.1: postgres: fatal: libjvm.so: open failed: No such file or directory Here the server has only 32bit Java installed. Linux should have an ent- irely equivalent message. Also, when the dependency, jvm.dll, is not found, Windows says psql:C:/jaspa4pg/sql/pljavainstall.sql:6: ERROR: could not load library "c:/jaspa4pg/lib/pljava.dll": The specified module could not be found. What module? My previous error message on Solaris told me exactly what it wasn't finding. The solution here is to add the JRE bin directories to the system Path and then restart the server. I'm re-iterating these problems and solutions for posterity. In the hope that some future googler will find them useful. Unix (all I've used) has entirely different search paths for 32bit and 64bit dynamic libraries so there is no naming conflict here, unlike Wind- ows it seems. [*] This is not always true, 64bit kernels (of various operating systems) can run 32bit applications. They do however have the necessary hooks to mix the execution contexts. Unlike normal applications. -- Johann Oskarsson http://www.2ndquadrant.com/ |[] PostgreSQL Development, 24x7 Support, Training and Services --+-- | Blog: http://my.opera.com/myrkraverk/blog/ _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
|
In reply to this post by JOSE CARLOS MARTINEZ LLARIO
OK, after extensive testing I am able to run
I also learned that there are two version of Dependency Walker x86 7 x64. You need to be running the right version when you check a DLL. This probably screwed me up because I only had the x64 version installed until recently. Dependency Walker is still complaining about things, but not about CPU architecture - however the pljava.dll seems to work anyway. Anyway - it's good to know we can run pljava in both x86 and x64 worlds now. Thanks for all the effort everyone. Cheers, Eric On 2011-05-04 8:14 AM, JOSE CARLOS MARTINEZ LLARIO wrote: Hi Erik, I just checked it out right now getting the same results than I got some weeks before. W7 64 - Pg 9 32 - JRE 32 - PLJAVA 32 - Working W7 64 - Pg 9 32 - JRE 64 - PLJAVA 32 - not working, with this error: ERROR: could not load library "c:/jaspa4pg/lib/pljava.dll": %1 is not a valid Win32 application. Do not why with JRE 64 is not working but with JRE 32 I can tell you that its working for sure. Cheers, Jose ________________________________Date: Tue, 3 May 2011 22:48:27 -0700 From: [hidden email] To: [hidden email] Subject: Re: [Pljava-dev] Fwd: Re: Calling it a day Jose, did you ever get around to checking 32-bit pljava with 32-bit Postgres and 32-bit Java on 64-bit Windows. I was finally able to get 64-bit pljava with 64-bit Postgres and 64-bit Java to work on 64-bit windows with Johann's latest builds. It makes application deployment a little trickier now, but at least I have solutions for both 32-bit and 64-bit windows. Cheers, Eric On 2011-04-30 4:58 AM, JOSE CARLOS MARTINEZ LLARIO wrote: Hi Eric, Im almost sure I already run 32-bit pljava with 32-bit Postgres and 32-bit Java on 64-bit windows. I wil check it again though. cheers, Jose ________________________________ Date: Fri, 29 Apr 2011 17:34:05 -0700 From: [hidden email] To: [hidden email] Subject: [Pljava-dev] Fwd: Re: Calling it a day Thanks for trying. So far this is what I have discovered (after hours of hosing around with stuff): 1. It is not possible to run 32-bit pljava with 32-bit Postgres and 32-bit Java on 64-bit windows. I have tried every variation I can think of and DependencyWalker always shows that it is still trying to link against 64-bit DLLs. This could be some sort of build configuration problem with Postgres and/or PLJava. 2. The 64-bit release of Postgres has some bad and missing DLLs in it. You need to add the referenced files to the postgres/bin directory (let me know if you want me to e-mail them to you). DependencyWalker shows one final unresolved function: DatumGetFloat8 that I cannot find anywhere. Anyway, you need to use Microsoft Visual C++ 2008 Redistributable Package (x64) instead of the (x86) version, and the version of IEShims.dll from the 64-bit version of IE. What I know to be true is that I can run 32-bit pljava with 32-bit postgres and 32-bit Java on 32-bit windows. The bottom line I know to be true is that Microsoft are fucking assholes and make just about everything 100 times harder than it needs to be for software developers. I'll keep slogging away and see what I can figure out. Cheers, Eric referenced files: * msvcm90.dll * msvcp90.dll * msvcr90.dll * IEShims.dll On 2011-04-29 3:32 PM, JOSE CARLOS MARTINEZ LLARIO wrote: Hi Johann, ok, I will try it again next week. As soon as you get it please send it to me. Have a nice weekend too. JoseTo: [hidden email];[hidden email]Subject: Calling it a day Date: Fri, 29 Apr 2011 22:27:49 +0000 From: [hidden email] Hi Eric and Jose, Just to let you know I'm calling it a day. I suspect the pljava binary I gave you does not work because there are no exported sym- bols in it. If that's the case, it just will not work at all. I'll dig further into this on Monday. Have a nice weekend, -- Johann Oskarsson http://www.2ndquadrant.com/ |[] PostgreSQL Development, 24x7 Support, Training and Services --+-- | Blog: http://my.opera.com/myrkraverk/blog/_______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev_______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev _______________________________________________ Pljava-dev mailing list [hidden email] http://pgfoundry.org/mailman/listinfo/pljava-dev |
| Powered by Nabble | Edit this page |
