[libvirt] [PATCH] build: fix 'make check' linkage with dtrace

Jiri Denemark jdenemar at redhat.com
Tue Oct 11 19:59:44 UTC 2011


On Tue, Oct 11, 2011 at 13:54:40 -0600, Eric Blake wrote:
> Building on Linux with dtrace enabled was failing 'make check':
> 
>   CCLD   nodeinfotest
> ../src/.libs/libvirt_test.a(libvirt_net_rpc_client_la-virnetclient.o): In function `virNetClientNew':
> /home/remote/eblake/libvirt/src/rpc/virnetclient.c:162: undefined reference to `libvirt_rpc_client_new_semaphore'
> 
> On looking further, I see some earlier warnings emitted from libtool:
> 
> *** Warning: Linking the shared library libvirt.la against the non-libtool
> *** objects  probes.o is not portable!
> 
> Since src/probes.o is only built on Linux, and even then, only when
> dtrace is enabled, this failure does not affect other platforms, and
> despite libtool warning that it is not generally portable, it is not
> a problem for our use-case in libvirt.la.  But it turns out that while
> libtool is willing to jam raw .o files into an installed shared
> library (libvirt.la becomes libvirt.so), it is NOT willing to jam
> the same .o file into the convenience library libvirt_test.la.
> Perhaps this is a bug in libtool, but even if we get libtool fixed,
> libvirt must continue to build on platforms with older libtool.  So,
> the fix is the same as we are already using for the libvirt_lxc
> executable - don't rely on the .o file being in the convenience
> library, but instead use LDADD to pull it in directly.
> 
> * tests/Makefile.am (PROBES_O): New macro.
> (LDADDS): Use it to fix link errors.
> ---
> 
> I'm still in the middle of running ./autobuild.sh, but if that
> fixes the VPATH build there, then I will push this under the
> build-breaker rule.
> 
>  tests/Makefile.am |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)

I pushed my patch and checked that your patch fixes the make check errors in
VPATH build.

ACK

Jirka




More information about the libvir-list mailing list