[libvirt] [PATCH] tools: Link libvirt.la to libvirt_shell.a

Erik Skultety eskultet at redhat.com
Fri Sep 25 12:10:11 UTC 2015


On 25/09/15 13:38, Michal Privoznik wrote:
> So, our mingw build is broken. It's because while libvirt_shell
> library is using some of our internal APIs, e.g. virStrndup, it's
> not being linked with libvirt.la. Only subsequent users of the
> library, like virsh, do link to libvirt.la. In fact, I'm
> surprised Linux linker doesn't care, because how can it make a
> static library with missing symbols is mystery to me.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  tools/Makefile.am | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/Makefile.am b/tools/Makefile.am
> index 0a00cee..3cf70db 100644
> --- a/tools/Makefile.am
> +++ b/tools/Makefile.am
> @@ -143,6 +143,7 @@ libvirt_shell_la_LDFLAGS = \
>  		$(NULL)
>  libvirt_shell_la_LIBADD = \
>  		$(LIBXML_LIBS)						\
> +		../src/libvirt.la					\
>  		../gnulib/lib/libgnu.la				\
>  		$(NULL)
>  libvirt_shell_la_SOURCES = vsh.c vsh.h
> @@ -220,7 +221,6 @@ virsh_LDFLAGS = \
>  virsh_LDADD =							\
>  		$(STATIC_BINARIES)				\
>  		$(PIE_LDFLAGS)					\
> -		../src/libvirt.la				\
>  		../src/libvirt-lxc.la				\
>  		../src/libvirt-qemu.la				\
>  		libvirt_shell.la				\
> 
There is also this little thing, we also link virsh against VIRSH_LIBS
which are just READLINE_LIBS and in fact, it can be a bit confusing too
= it really gave me some hard time to link virt-admin (devel version)
without any error. Since VIRSH_LIBS isn't used anywhere else, I suggest
going with READLINE_LIBS only and squashing also this snippet to your patch:

diff --git a/configure.ac b/configure.ac
index 03463b0..2d0603d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1670,10 +1670,6 @@ if test "$with_pm_utils" = "yes"; then
 fi
 AM_CONDITIONAL([WITH_PM_UTILS], [test "$with_pm_utils" = "yes"])

-dnl virsh libraries
-VIRSH_LIBS="$VIRSH_LIBS $READLINE_LIBS"
-AC_SUBST([VIRSH_LIBS])
-
 dnl check if the network driver should be compiled

 AC_ARG_WITH([network],
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 3cf70db..d5638d9 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -143,6 +143,7 @@ libvirt_shell_la_LDFLAGS = \
                $(NULL)
 libvirt_shell_la_LIBADD = \
                $(LIBXML_LIBS)                                          \
+               $(READLINE_LIBS)                                        \
                ../src/libvirt.la                                       \
                ../gnulib/lib/libgnu.la                         \
                $(NULL)
@@ -223,8 +224,7 @@ virsh_LDADD =
                \
                $(PIE_LDFLAGS)                                  \
                ../src/libvirt-lxc.la                           \
                ../src/libvirt-qemu.la                          \
-               libvirt_shell.la                                \
-               $(VIRSH_LIBS)
+               libvirt_shell.la
 virsh_CFLAGS =                                                 \
                $(WARN_CFLAGS)                                  \
                $(PIE_CFLAGS)                                   \

ACK with this small adjustment. Btw, thanks for cleaning up the mess
after me :).

Erik




More information about the libvir-list mailing list