libtool
[Top][All Lists]
Advanced

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

Re: link_all_deplibs


From: Ralf Wildenhues
Subject: Re: link_all_deplibs
Date: Tue, 18 Jan 2005 18:43:57 +0100
User-agent: Mutt/1.4.1i

Hi Christoph,

* Christoph Wellner wrote on Tue, Jan 18, 2005 at 09:46:31AM CET:
> On Mon, 17 Jan 2005 16:03:46 +0100, Ralf Wildenhues  
> <address@hidden> wrote:
> 
> >Please provide a small recipe how we can reproduce what you are doing,
> >or at least post the rules you use to create your libraries and
> >programs, i.e., Makefile or Makefile.am snippets.
> 
> Ok,

This is much better!  :-)

> so when I start my application, I get the following:
> 
> 
> /home/chwellner/nmm2_sarge/apps/clic/.libs/lt-clic: error while loading  
> shared libraries: libnmmutils.so.0: cannot open shared object file: No  
> such file or directory
> 
> ldd says: ldd .libs/lt-clic
>       ...
>         libc.so.6 => /lib/tls/libc.so.6 (0x4075d000)
>         libnmmutils.so.0 => not found
>       ...
>         libnmmnetutils.so.0 => not found
>         libnmmrtp.so.0 =>  
> /home/chwellner/nmm2_sarge/nmm/base/proxy/rtp/.libs/libnmmrtp.so.0  
> (0x40893000)
>         libnmmutils.so.0 =>  
> /home/chwellner/nmm2_sarge/nmm/utils/.libs/libnmmutils.so.0 (0x408d4000)
>       ...

Also interesting would be:
  objdump -p .libs/lt-clic
and
  objdump -p /path/to/.libs/libmnnbase.so

(you can pipe the output through
  egrep 'PATH|NEEDED'
if it's too long for your taste).

> The linking-part of the Makefile.am is this (snippet)
>       $(top_builddir)/nmm/utils/gdparse/libnmmgdparse.la \
>       $(top_builddir)/nmm/base/libnmmbase.la \
>       $(top_builddir)/nmm/base/graph/libnmmgraphmgr.la \

This is part of clic_LDADD or LIBS, right?

> So, clic is linked against libnmmbase. And the Makefile.am of libnmmbase :
>         $(top_builddir)/nmm/utils/libnmmutils.la \
>         $(top_builddir)/nmm/utils/thread/libnmmutilsthread.la \
>         $(top_builddir)/nmm/base/registry/libnmmregistry.la \

This is part of libnmmbase_la_LDADD, right?

Is libnmmbase a library that will be installed (i.e., is it listed in
something like lib_LTLIBRARIES or noinst_LTLIBRARIES)?  What about
libnmmutils?

> So libnmmutils is linked against libnmmbase, wich is linked against the  
> application clic.
> 
> libnmmbase is linked using this command:
> /bin/sh ../../libtool --mode=link g++  -g -O0  -Wall -W -Wpointer-arith  
> -Wmissing-prototypes -Wwrite-strings -fno-check-new -fexceptions  -o  
> libnmmbase.la -rpath /usr/local/lib/nmm --version-info 0:0:0 connect.lo  
> ConnectorAcceptor.lo ConnectorAddress.lo Node.lo GenericNode.lo  
> GenericSourceNode.lo GenericProcessorNode.lo GenericSinkNode.lo  
> GenericMultiplexerNode.lo GenericDemultiplexerNode.lo  
> GenericMuxDemuxNode.lo GenericConverterNode.lo GenericFilterNode.lo  
> Jack.lo InputJack.lo OutputJack.lo StdNamedObject.lo QueuedInputJack.lo  
> QueuedOutputJack.lo JackGroup.lo ThreadedNode.lo StreamQueue.lo Event.lo  
> EventDispatcher.lo Message.lo NMMObject.lo CommunicationChannel.lo  
> OutOfBandChannel.lo InstreamChannel.lo TransportStrategy.lo Interface.lo  
> InterfaceFactory.lo TSFactory.lo NMMApplication.lo BaseExceptions.lo  
> ProxyObject.lo ProxyApplication.lo ObjectAcceptor.lo GenericProducer.lo  
> ReferenceCount.lo ConnectionManager.lo FormatStrategyMap.lo  
> CompositeStrategy.lo ../../nmm/base/proxy/rtp/libnmmrtp.la    
> ../../nmm/utils/libnmmutils.la   
> ../../nmm/utils/thread/libnmmutilsthread.la        
> ../../nmm/base/registry/libnmmregistry.la        
> ../../nmm/base/serialize/libnmmserialize.la      
> ../../nmm/base/serialize/net/libnmmnetstream.la          
> ../../nmm/base/format/libnmmformat.la      
> ../../nmm/base/resourcemgr/libnmmresourcemgr.la          
> ../../nmm/base/memorymgr/libnmmmemorymgr.la      
> ../../nmm/base/graph/libnmmcompositenode.la        
> ../../nmm/base/sync/libnmmsync.la        
> ../../nmm/base/proxy/tcp/libnmmtcp.la    
> ../../nmm/base/proxy/udp/libnmmudp.la    
> ../../nmm/interfaces/base/libnmmibase.la  
> ../../nmm/interfaces/audio/libnmmiaudio.la        
> ../../nmm/interfaces/net/libnmminet.la
> 
> 
> and the command for clic:
> /bin/sh ../../libtool --mode=link g++  -g -O0  -Wall -W -Wpointer-arith  
> -Wmissing-prototypes -Wwrite-strings -fno-check-new -fexceptions  -o clic   
> ClicApplication.o ../../nmm/utils/gdparse/libnmmgdparse.la      
> ../../nmm/base/libnmmbase.la    ../../nmm/base/graph/libnmmgraphmgr.la   
> ../../nmm/interfaces/file/libnmmifile.la         
> ../../nmm/interfaces/base/sync/libnmmisync.la      
> ../../nmm/interfaces/video/display/libnmmidisplay.la     
> ../../nmm/base/registry/libnmmregistry.la        
> ../../nmm/misc/timer/libnmmtimer.la

For both of these, I'd very much like to see what libtool makes out of
these -- post the output of those commands.  To avoid having to ask you
again, please add --debug as first libtool option.  Pack the output
(gzip or preferably bzip2) and attach, like so:
  /bin/sh ../../libtool --debug --mode=link ..... >linklog 2>&1
  bzip2 linklog
  (attach linklog.bz2)

> This is now a lot of text (sorry for that) and I hope, the information is  
> enough. The clic-application also uses functions from libnmmutils.

It's enough to make me suspect a genuine libtool bug, but not enough to
be able to locate or reproduce it.  Actually, I can build most of the
package just fine.

But I should be able to provide you with a workaround:  add
  $(top_builddir)/nmm/utils/libnmmutils.la
(and if necessary also libnmmnetutils.la) to clic_LDADD.
Please report whether that works.

Please also tell me where I can direct bug reports against nmm (mailing
list?) and whether patches should be sent against version 0.7.0.

Thanks,
Ralf




reply via email to

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