Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Tkx and PERL_DL_NONLAZY

by mje (Curate)
on Jun 25, 2012 at 10:00 UTC ( #978172=note: print w/ replies, xml ) Need Help??


in reply to Tkx and PERL_DL_NONLAZY

My guess is that 2 libraries in your chain have the same symbol and a dlopen is called with something like LT_GROUP or LT_GLOBAL. When running with PERL_DL_NONLAZY the undefined symbol is resolved correctly but without it, the undefined symbol is resolved in another library and it probably takes different arguments. I've seen this before. It is hard to debug.

When I first hit this it was with unixODBC and some ODBC drivers when we put together Why do I get "SQLSetConnectOption err=-2" errors in my Perl scripts.


Comment on Re: Tkx and PERL_DL_NONLAZY
Re^2: Tkx and PERL_DL_NONLAZY
by Anonymous Monk on Jun 25, 2012 at 12:48 UTC

    Hmm, kinda hard to believe, IIRC even win32 won't look for symbols in a different dll/so

    If you can trigger it, strace ought to help -- also lsof -p, or ldd /objdump

      Read dlopen man page and look at LT_GROUP, LT_GLOBAL etc. Those flags change the way symbols are resolved. As you can change the way symbols are resolved if you have 2 symbols with the same name you can pick the wrong one e.g., symbols can be resolved downwards or from the top. I've seen it happen.

      See Why do I get "SQLSetConnectOption err=-2" errors in my Perl scripts for an example.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://978172]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (13)
As of 2014-11-26 18:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (172 votes), past polls