Thread: [tcljava-dev] Building tclblend 1.4.0 under windows with mingw...
Brought to you by:
mdejong
From: Georgios P. <pet...@ya...> - 2007-03-11 09:27:02
|
Hi all, I tried to build tclblend 1.4.0 under windows with mingw, and there is something I didn't understand during the building process: how is tclblend linked with the jvm.dll. I downloaded the sources, configured and build everything required (i.e. following http://wiki.tcl.tk/9993), abd the build went ok. However, I didn't understood how the library libjvm.dll.a (inside win directory) has been built. It is included in the sources, but I couldn't get it to work under ActiveTcl, untill I re-build it my self. (I used reimp available from http://mywebpage.netscape.com/yongweiwu/reimp_new.zip) How was the original libjvm.dll.a in the sources built? Using the same tool? George |
From: Mo D. <mo...@mo...> - 2007-03-12 22:40:25
|
Georgios Petasis wrote: > Hi all, > > I tried to build tclblend 1.4.0 under windows with mingw, and there is > something I didn't > understand during the building process: how is tclblend linked with the > jvm.dll. > > I downloaded the sources, configured and build everything required (i.e. > following > http://wiki.tcl.tk/9993), abd the build went ok. However, I didn't > understood how > the library libjvm.dll.a (inside win directory) has been built. It is > included in the sources, but I couldn't > get it to work under ActiveTcl, untill I re-build it my self. > The libjvm.dll.a file is used when liking only in the case where the jvm.lib file that comes with the JDK fails to work. Some jvm.lib files from some vendors don't work with gcc, so the workaround is needed in those cases. But, once tclblend.dll is linked, this file is no longer needed. You will likely run into issues trying to run a tclblend.dll with the Active State binary as this is not a supported configuration. The tclblend.dll you build needs to be run with the Tcl release it was compiled against. I hope that helps Mo DeJong |
From: Georgios P. <pet...@ya...> - 2007-03-13 07:12:05
|
O/H Mo DeJong ??????: > Georgios Petasis wrote: > >> Hi all, >> >> I tried to build tclblend 1.4.0 under windows with mingw, and there is >> something I didn't >> understand during the building process: how is tclblend linked with the >> jvm.dll. >> >> I downloaded the sources, configured and build everything required (i.e. >> following >> http://wiki.tcl.tk/9993), abd the build went ok. However, I didn't >> understood how >> the library libjvm.dll.a (inside win directory) has been built. It is >> included in the sources, but I couldn't >> get it to work under ActiveTcl, untill I re-build it my self. >> >> > The libjvm.dll.a file is used when liking only in the case where the > jvm.lib file that comes with the > JDK fails to work. Some jvm.lib files from some vendors don't work with > gcc, so the workaround > is needed in those cases. But, once tclblend.dll is linked, this file is > no longer needed. I have the impression that the included libjvm.dll.a didn't work in my case (mingw - ActiveTcl), and I created my own. This is why I wanted to know how the file in the original distribution was built (and if the procedure I followed to re-create it was wrong :-)) > You will likely > run into issues trying to run a tclblend.dll with the Active State > binary as this is not a supported > configuration. The tclblend.dll you build needs to be run with the Tcl > release it was compiled against. > If I only stick into creating a JVM from Tcl (and never do the opposite - load Tcl from Java) will I still have problems? ( I am using a tclblend version that uses stubs :-) with ActiveTcl/JDK 5) Regards, George |
From: Mo D. <mo...@mo...> - 2007-03-15 00:07:09
|
Georgios Petasis wrote: > I have the impression that the included libjvm.dll.a didn't work in my > case (mingw - ActiveTcl), and I created > my own. This is why I wanted to know how the file in the original > distribution was built (and if the procedure > I followed to re-create it was wrong :-)) See: http://www.inonit.com/cygwin/jni/invocationApi/archive.html >> You will likely >> run into issues trying to run a tclblend.dll with the Active State >> binary as this is not a supported >> configuration. The tclblend.dll you build needs to be run with the Tcl >> release it was compiled against. >> > If I only stick into creating a JVM from Tcl (and never do the > opposite - load Tcl from Java) > will I still have problems? ( I am using a tclblend version that uses > stubs :-) with ActiveTcl/JDK 5) It does not matter. What you need to do is load the Tcl Blend dll into the version of Tcl that it was compiled agains. Otherwise, you may run into issues. The Tcl Blend configure script checks for these kinds of problems to keep you from making mistakes. If the ActiveTcl binary is compiled without threads, then you will run into crashes sooner or later. Mixing and matching binaries with Tcl Blend is not a good idea, you should use Tcl Blend with the version of Tcl it was compiled for. Mo |