Jeff Hobbs wrote:
Brian Bevins wrote:
Thanks very much for your help with our little problem. I am out of
ideas on this. I can do a "package require BLT" in both wish and tclsh
just fine with no problems. And when I try to load BLT into Perl, the
error is not that it cannot find the BLT package library. The problem
is that when it tries to load that library there is a missing symbol.
That symbol is found only in libtcl8.4.so. If I manually load that
library before loading BLT then everything works. The odd thing is
that I shouldn't have to do that. The Tcl.so used by perl should
already be loading libtcl8.4.so.
Is it possible that the implicit loader (or any pre-loading occuring
through whatever means) for libtcl is using RTLD_LOCAL instead of
RTLD_GLOBAL, which would very possible cause this issue?
OK, I poked my nose in because it may well be my own code on this in the
Tcl.xs file. When this builds, it should build against -ltclstub only,
and load libtcl dynamically (you should not see -Ltcl or -Rtcl on the
compile line). Tcl.xs does use RTLD_NOW | RTLD_GLOBAL as the flags, so
that is maybe not the issue (unless libtcl is magically getting loaded
implicitly ahead of this).
Jeff