Re: make test with a program that dlopen()s a shared lib "peer"
On Tue, Mar 29, 2011 at 4:46 AM, Jack Andrews wrote: > Hi Eric, > > That make perfect sense -- only thing is it doesn't seem to work for me: > > ~/effbiae/core(ENV)]$ echo $LD_LIBRARY_PATH > /home/jack/effbiae/core/.libs > ~/effbiae/core(ENV)]$ ./jconsole > 'hi' > hi > ~/effbiae/core(ENV)]$ export LD_LIBRARY_PATH= > ~/effbiae/core(ENV)]$ echo $LD_LIBRARY_PATH > > ~/effbiae/core(ENV)]$ libtool --mode=execute ./jconsole > Load library libj.so failed. I'm guessing your file layout, but try "./libtool --mode=execute -dlopen libj.la ./jconsole". libtool will build up LD_LIBRARY_PATH in that case. If the program had been linked directly to libj.so, then it would have rpath entries pointing to the in-tree directory. Look at "./libtool --help --mode=execute". -- Dan ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: make test with a program that dlopen()s a shared lib "peer"
Hi Eric, That make perfect sense -- only thing is it doesn't seem to work for me: ~/effbiae/core(ENV)]$ echo $LD_LIBRARY_PATH /home/jack/effbiae/core/.libs ~/effbiae/core(ENV)]$ ./jconsole 'hi' hi ~/effbiae/core(ENV)]$ export LD_LIBRARY_PATH= ~/effbiae/core(ENV)]$ echo $LD_LIBRARY_PATH ~/effbiae/core(ENV)]$ libtool --mode=execute ./jconsole Load library libj.so failed. Thanks, Jack. On Tue, Mar 29, 2011 at 4:05 AM, Eric Blake wrote: > On 03/27/2011 05:46 AM, Jack Andrews wrote: >> i want to use the usual sequence of >> >> autoreconf --install >> ./configure >> make >> make test >> make install >> >> but my program dlopen()s a lib which >> i find here: >> .libs/libj.so >> >> i've read that shared objects are hidden in >> .libs for a reason and that they should be >> installed prior to use. >> >> if this is the case, how can i run tests >> "legally", before installing the .libs/libj.so ? > > If I understand correctly, > > libtool --mode=execute path/to/uninstalled/program > > will do what you want - libtool will massage PATH behind the scenes > before spawning the wrapped uninstalled program so that it will > correctly pick up the .libs/*.so files in preference to anything installed. > > -- > Eric Blake ebl...@redhat.com +1-801-349-2682 > Libvirt virtualization library http://libvirt.org > > ___ http://lists.gnu.org/mailman/listinfo/libtool
Re: libtool relinks all shared libraries when "make install" is performed
Hello Markus, * Markus Franke wrote on Wed, Mar 23, 2011 at 05:18:53PM CET: > we have a large C++ project containing of several modules which each get > compiled into seperate shared libraries. Our directory structure looks > somehow as follows: [...] > When performing the "make install" step all the libraries and binaries get > installed to our prefix directory "/opt/kmt". This currently takes very > long (~20 minutes) as libtool relinks all libraries. [...] Wow. That's terrible. > How can I avoid this additional relinking step during "make install"? Generally, --enable-fast-install should be the switch to avoid it. However, it is not possible to do on every system, and not fully optimized on all systems where it could be made to work. Unfortunately, GNU/Linux is one of the latter ones where Libtool still needs a bit of work. Thanks for the bug report, Ralf ___ http://lists.gnu.org/mailman/listinfo/libtool