On Fri, 21 Jul 2000, Mike Schwartz wrote:

>  > Yikes. That is really odd. You might be running into some
>  > goofy junk related to how the JVM loads shared libs and
>  > how Tcl loads shared libs. For instance, you need to
>  > load libtclblend.so in Tcl and in Java (with System.loadLibrary()),
>  > but I do not know if that matters.
> 
> Hmm, based the above I tried explicitly telling the interpreter to load
> /iw/tcl/current/lib/libtcl8.3g.so using the Java code:
>       theInterp.eval("load /iw/tcl/current/lib/libtcl8.3g.so");
> just before the part of the code that was causing the relocation error, but
> that causes a different error to happen before I even get to the place that
> was getting the relocation error:
>       caught tcl.lang.TclException: Can't find tclx.tcl in the following 
> directories:
>         /usr/local/lib/tclX8.2
>         /home/dnew/perforce/openSource/Release/tcl/8.3.0/lib/tclX8.2
>         ./lib/tclX8.2
>         ./tclX8.2/tcl/.
>         ./tclX8.2/tcl/

It seems to want to load the Tcl X package, I am not really sure why that
would happen. Tcl itself should be loaded when you load tcl blend.

>  > Is there any chance that tclexpat.so is linked to another
>  > Tcl shared lib?
>  >
>  > Try running:
>  >
>  > % ldd tclexpat.so
>  >
>  > and see if that says something about libtcl8.3g.so in the link dep line.
> 
> I tried
>      ldd /iw/tcl/current/lib/TclExpat-1.1/tclexpat.so
> but it showed no dependencies at all (nothing printed).

Humm, perhaps tclexpat is already compiled with Tcl stubs support. I find
that a little odd because my version of ldd would print (staticially 
linked) if it was a .so with no deps.

>  > > So, it seems the function *is* defined in the .so file it's accessing.
>  > >
>  > > Any ideas what might be going on, or how I might try to debug it?
>  >
>  > You might also want to try building tclexpat.so with stubs
>  > support. That might work a little better.
> 
> I don't know what "stubs support" means in this context.  Can you please
> elaborate?  Thanks
>   - Mike

Tcl stubs are used when an extension is compiled with -DUSE_TCL_STUBS and
linked to libtclstub.a. It removes any external symbol deps an extension
might have so that it can be loaded into new versions of Tcl without
a recompile. Tcl Blend is not yet stub enabled, but it will be in the
next release.

later
Mo DeJong
Red Hat Inc

----------------------------------------------------------------
The TclJava mailing list is sponsored by Scriptics Corporation.
To subscribe:    send mail to [EMAIL PROTECTED]  
                 with the word SUBSCRIBE as the subject.
To unsubscribe:  send mail to [EMAIL PROTECTED] 
                 with the word UNSUBSCRIBE as the subject.
To send to the list, send email to '[EMAIL PROTECTED]'. 
An archive is available at http://www.mail-archive.com/tcljava@scriptics.com

Reply via email to