[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

No LT_GLOBAL flag in dlopen on debian?

From: Tim Furlong
Subject: No LT_GLOBAL flag in dlopen on debian?
Date: Thu, 1 Jun 2006 12:43:14 -0400

Hi folks,

I'm wondering if someone can tell me or refer me to some discussion about why libtoolize --ltdl on Debian installs an ltdl.c that does not set the LT_GLOBAL flag in its call to dlopen, whereas that in several other distributions does set the flag (specifics below).  I have googled around for a while and haven't come across much. I'd also like to know if there's a way to coerce it to do so - again, I haven't had much luck with it to date.

I've been beating my head against some problems building the libnetdude package (network traffic handling and manipulation framework) on debian (stable/sarge with libtool 1.5.6, and testing/woody with libtool 1.5.22).  Specifically, when I build the package from the CVS source and run the autogen script locally, the libltdl that gets generated by libtoolize doesn't dlopen modules with the LT_GLOBAL flag set as it does on FreeBSD 6.1 with libtool 1.5.20, FC3 with libtool 1.5.6, and FC4 with libtool 1.5.16. This presents a problem for this package, as it's using a plugin architecture where the modules are compiled independently, expecting to be able to look up symbols exported by other modules at run-time, and I get run-time ld errors if that flag is not set.  The -export-dynamic flag doesn't appear to work for inter-library dependencies, unfortunately.  The advice presented in chapter 8 of the 1.3.2 libtool docs (link the module with -L/-l arguments specifying the .so's of the depended-upon modules) works to get things running, but we'd really rather avoid having to pre-link against other modules if we can avoid it.  As I understand it, going through the modules code to look up all the function calls via dlsym would probably also work, but that's a whole lot of work for a couple of people who are trying to finish up theses. :P

So I'm really curious to know why libtoolize doesn't set the LT_GLOBAL flag in dlopen calls on Debian, which appears to be behaviour peculiar to that platform, and if there's a way to override that behaviour either package-wide or on a per-module basis (perhaps I'm just not using -export-dynamic properly?)  If anyone could offer some insight, it would be greatly appreciated.  Please let me know if I can provide additional information about my system configuration that would be useful.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]