On Fri, Dec 09, 2011 at 02:18:02PM +0100, Christophe Fergeau wrote:
Hi,
On Fri, Dec 09, 2011 at 11:18:48AM +0000, Daniel P. Berrange wrote:
>
> There is something odd about the way it is being built:
> The combination of these 3 sets of messages, makes me think you have
> confused libtool into linking to the old binary
>
> What arguments are you passing to 'configure' and what if any variables
> are you passing to 'make install' ?
Yes, jhbuild is being a bit convoluted when building things, it uses
./configure --prefix $prefix ..., but then it does a
make install DESTDIR=$prefix/_jhbuild (or something like this), and
then it moves the files to the right place in $prefix after cleaning up the
old version of the library that might be there. I just tried without
using jhbuild to build libvirt, but just the tarballs, and I can reproduce
when using make install DESTDIR=... and then cleaning $prefix from libvirt
libs, and then copying what's in DESTDIR to $prefix. Not sure it's worth
spending a lot of time on this convoluted scenario :)
I looked some more into it, and I think what happens is that:
- libvirt.so gets installed to $DESTDIR/$libdir
- libvirt-qemu.so gets relinked by libtool during installation, but uses
libvirt from $libdir for this relink
- $libdir/libvirt.so gets replaced with $DESDIR/$libdir/libvirt.so
- libvirt-qemu.so now has some references to a library that has now
disappeared
http://www.gnu.org/software/libtool/manual/html_node/Install-mode.html
seems to indicate this scenario cannot be supported correctly :(
"For systems where fast installation can not be turned on, relinking may be
needed. In this case, a ‘DESTDIR’ install will fail.
Currently it is not generally possible to install into a temporary staging
area that contains needed third-party libraries which are not yet visible
at their final location. "
(I think linux doesn't have fast installation)
Christophe