libtool
[Top][All Lists]
Advanced

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

unresolved symbols with libltdl at runtime


From: Philip Lowman
Subject: unresolved symbols with libltdl at runtime
Date: Wed, 06 Sep 2006 12:34:19 -0400
User-agent: Thunderbird 1.5.0.5 (X11/20060728)

I am having a problem with libltdl version 1.5.22 (Ubuntu 6.06) that I am not having with libltdl version 1.5.16 (Fedora Core 4), and I'm not sure why. At runtime my program runs into unresolved symbols and crashes in the middle of running because it can't find a particular symbol which exists in a plugin which is being loaded by libltdl (as far as I can tell). The weird thing is this problem doesn't occur in Fedora Core 4 but I don't know why. I'm using version 1.9 of the GNU Autotools on both systems and slightly different versions of GCC (4.0.2 vs. 4.0.3). The error I get occurs when one of the plugins makes a call into a dependent plugin.

libpluginConfigFileSymbology depends on a call to libpluginSymbologyManager.

/home/lowmanp/src/mpv-1.5.2+stuff.ubuntu/kernel/.libs/lt-mpv: symbol lookup error: ./pluginConfigFileSymbology/.libs/libpluginConfigFileSymbology.so.0: undefined symbol: _ZN16SymbologyManager13lookup_symbolEiR10SymbolType\

An nm on libpluginConfigFileSymbology.so.0 shows the symbol is unresolved (as I'm assuming it should be). The symbol is defined in the SymbologyManager library, I just can't figure out why it's not being found.

nm .libs/libpluginConfigFileSymbology.so |grep lookup_symbol
         U _ZN16SymbologyManager13lookup_symbolEiR10SymbolType
nm .libs/libpluginSymbologyManager.so |grep lookup_symbol
00002ea8 T _ZN16SymbologyManager13lookup_symbolEiR10SymbolType

I am using the LTDL_LIBRARY_PATH environment variable with a script to search for and help assist in loading all of the plugins. I'm fairly certain this isn't the problem though because if I do a "make install" I get the same runtime error running out of /usr/bin.

Here are my Makefile.am's for the two plugins. I tried removing "-no-undefined" from the two plugins but it didn't help. Not sure what to try from here.

pluginSymbologyManager
======================
lib_LTLIBRARIES = libpluginSymbologyManager.la

libpluginSymbologyManager_la_SOURCES = \
    PluginSymbologyManager.cpp\
    PluginSymbologyManager.h\
    pluginWrapper.cpp\
    pluginWrapper.h\
    SymbologyManager.cpp\
    SymbologyManager.h

libpluginSymbologyManager_la_LIBADD = \
    -L$(top_builddir)/common -lmpvcommon \
    -lfl @CCL_LIBS@ -lpthread

#DEFS += -DWIN32

INCLUDES = \
    -I$(top_srcdir)/common \
    -I$(top_srcdir)/pluginSymbologyBase \
    -I$(top_srcdir)/pluginRenderSymbologyOSG \
    @CCL_CFLAGS@

libpluginSymbologyManager_la_LDFLAGS = \
        -module\
        --debug\
        -no-undefined

pluginConfigFileSymbology
======================
lib_LTLIBRARIES = libpluginConfigFileSymbology.la

libpluginConfigFileSymbology_la_SOURCES = \
    PluginConfigFileSymbology.cpp\
    PluginConfigFileSymbology.h\
    pluginWrapper.cpp\
    pluginWrapper.h\
    VrsgSymbologyParser.cpp\
    VrsgSymbologyParser.h

libpluginConfigFileSymbology_la_LIBADD = \
    -L$(top_builddir)/common -lmpvcommon \
    -lfl @CCL_LIBS@ -lpthread

#DEFS += -DWIN32

INCLUDES = \
    -I$(top_srcdir)/common \
    -I$(top_srcdir)/pluginSymbologyBase \
    -I$(top_srcdir)/pluginSymbologyManager \
    @CCL_CFLAGS@

libpluginConfigFileSymbology_la_LDFLAGS = \
        -module\
        --debug\
        -no-undefined




reply via email to

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