[libvirt] [PATCH v2] make sure libvirt is linked first
Daniel P. Berrangé
berrange at redhat.com
Mon Mar 5 15:24:48 UTC 2018
On Mon, Mar 05, 2018 at 04:19:50PM +0100, Jan Palus wrote:
> so it's not affected by flags that might be passed in $(*_LIBS) like
> -L/usr/lib which might result in linking against system library and
> requiring incorrect version of private symbols
>
> Signed-off-by: Jan Palus <atler at pld-linux.org>
> ---
> src/Makefile.am | 42 ++++++++++++++++++++++--------------------
> src/lxc/Makefile.inc.am | 2 +-
> tools/Makefile.am | 2 +-
> 3 files changed, 24 insertions(+), 22 deletions(-)
>
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 3bf2da5..3c83513 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -1153,6 +1153,11 @@ libvirtd_LDFLAGS = \
> $(NULL)
>
> libvirtd_LDADD = \
> + libvirt_driver_admin.la \
> + libvirt-lxc.la \
> + libvirt-qemu.la \
> + libvirt.la \
> + ../gnulib/lib/libgnu.la $(LIBSOCKET) \
We need to leave libgnu.la $(LIBSOCKET) where it was originally,
likewise for the other places where you moved libgnu.la. There's
no problem with libgnu.a clashing with stuff in /usr/lib, since
libgnu never gets installed - its always static linked into apps
locally, and must always come last in the linker args.
> $(LIBXML_LIBS) \
> $(GNUTLS_LIBS) \
> $(SASL_LIBS) \
> @@ -1164,14 +1169,6 @@ if WITH_DTRACE_PROBES
> libvirtd_LDADD += ../src/libvirt_probes.lo
> endif WITH_DTRACE_PROBES
>
> -libvirtd_LDADD += \
> - libvirt_driver_admin.la \
> - libvirt-lxc.la \
> - libvirt-qemu.la \
> - libvirt.la \
> - ../gnulib/lib/libgnu.la $(LIBSOCKET) \
> - $(NULL)
> -
> endif WITH_LIBVIRTD
> EXTRA_DIST += \
> remote/test_libvirtd.aug.in \
> @@ -1222,7 +1219,7 @@ libvirt_driver_interface_la_CFLAGS = \
> -I$(srcdir)/conf \
> $(AM_CFLAGS) $(LIBNL_CFLAGS)
> libvirt_driver_interface_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF)
> -libvirt_driver_interface_la_LIBADD =
> +libvirt_driver_interface_la_LIBADD = libvirt.la ../gnulib/lib/libgnu.la
> if WITH_NETCF
> libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
> libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
> @@ -1231,7 +1228,6 @@ if WITH_UDEV
> libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
> libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
> endif WITH_UDEV
> -libvirt_driver_interface_la_LIBADD += libvirt.la ../gnulib/lib/libgnu.la
> libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES)
> endif WITH_INTERFACE
>
> @@ -1323,7 +1319,6 @@ endif WITH_STORAGE_SCSI
> if WITH_STORAGE_MPATH
> libvirt_storage_backend_mpath_la_SOURCES = \
> $(STORAGE_DRIVER_MPATH_SOURCES)
> -libvirt_storage_backend_mpath_la_LIBADD = $(DEVMAPPER_LIBS)
> libvirt_storage_backend_mpath_la_CFLAGS = \
> -I$(srcdir)/conf \
> $(DEVMAPPER_CFLAGS) \
> @@ -1331,7 +1326,10 @@ libvirt_storage_backend_mpath_la_CFLAGS = \
>
> storagebackend_LTLIBRARIES += libvirt_storage_backend_mpath.la
> libvirt_storage_backend_mpath_la_LDFLAGS = $(AM_LDFLAGS_MOD)
> -libvirt_storage_backend_mpath_la_LIBADD += libvirt.la ../gnulib/lib/libgnu.la
> +libvirt_storage_backend_mpath_la_LIBADD = \
> + libvirt.la \
> + ../gnulib/lib/libgnu.la \
> + $(DEVMAPPER_LIBS)
> endif WITH_STORAGE_MPATH
>
> if WITH_STORAGE_DISK
> @@ -1347,7 +1345,6 @@ endif WITH_STORAGE_DISK
>
> if WITH_STORAGE_RBD
> libvirt_storage_backend_rbd_la_SOURCES = $(STORAGE_DRIVER_RBD_SOURCES)
> -libvirt_storage_backend_rbd_la_LIBADD = $(LIBRBD_LIBS)
> libvirt_storage_backend_rbd_la_CFLAGS = \
> -I$(srcdir)/conf \
> -I$(srcdir)/secret \
> @@ -1355,7 +1352,10 @@ libvirt_storage_backend_rbd_la_CFLAGS = \
>
> storagebackend_LTLIBRARIES += libvirt_storage_backend_rbd.la
> libvirt_storage_backend_rbd_la_LDFLAGS = $(AM_LDFLAGS_MOD)
> -libvirt_storage_backend_rbd_la_LIBADD += libvirt.la ../gnulib/lib/libgnu.la
> +libvirt_storage_backend_rbd_la_LIBADD = \
> + libvirt.la \
> + ../gnulib/lib/libgnu.la \
> + $(LIBRBD_LIBS)
> endif WITH_STORAGE_RBD
>
> if WITH_STORAGE_SHEEPDOG
> @@ -1380,7 +1380,6 @@ endif WITH_STORAGE_SHEEPDOG
> if WITH_STORAGE_GLUSTER
> libvirt_storage_backend_gluster_la_SOURCES = \
> $(STORAGE_DRIVER_GLUSTER_SOURCES)
> -libvirt_storage_backend_gluster_la_LIBADD = $(GLUSTERFS_LIBS)
> libvirt_storage_backend_gluster_la_CFLAGS = \
> -I$(srcdir)/conf \
> $(GLUSTERFS_CFLAGS) \
> @@ -1388,7 +1387,10 @@ libvirt_storage_backend_gluster_la_CFLAGS = \
>
> storagebackend_LTLIBRARIES += libvirt_storage_backend_gluster.la
> libvirt_storage_backend_gluster_la_LDFLAGS = $(AM_LDFLAGS_MOD)
> -libvirt_storage_backend_gluster_la_LIBADD += libvirt.la ../gnulib/lib/libgnu.la
> +libvirt_storage_backend_gluster_la_LIBADD = \
> + libvirt.la \
> + ../gnulib/lib/libgnu.la \
> + $(GLUSTERFS_LIBS)
> endif WITH_STORAGE_GLUSTER
>
> if WITH_STORAGE_ZFS
> @@ -1424,7 +1426,7 @@ libvirt_driver_nodedev_la_CFLAGS = \
> -I$(srcdir)/conf \
> $(AM_CFLAGS) $(LIBNL_CFLAGS)
> libvirt_driver_nodedev_la_LDFLAGS = $(AM_LDFLAGS_MOD_NOUNDEF)
> -libvirt_driver_nodedev_la_LIBADD =
> +libvirt_driver_nodedev_la_LIBADD = libvirt.la ../gnulib/lib/libgnu.la
>
> if WITH_HAL
> libvirt_driver_nodedev_la_SOURCES += $(NODE_DEVICE_DRIVER_HAL_SOURCES)
> @@ -1437,7 +1439,6 @@ libvirt_driver_nodedev_la_CFLAGS += $(UDEV_CFLAGS) $(PCIACCESS_CFLAGS)
> libvirt_driver_nodedev_la_LIBADD += $(UDEV_LIBS) $(PCIACCESS_LIBS)
> endif WITH_UDEV
>
> -libvirt_driver_nodedev_la_LIBADD += libvirt.la ../gnulib/lib/libgnu.la
> endif WITH_NODE_DEVICES
>
>
> @@ -1456,10 +1457,11 @@ libvirt_driver_nwfilter_impl_la_CFLAGS = \
> $(AM_CFLAGS)
> libvirt_driver_nwfilter_impl_la_LDFLAGS = $(AM_LDFLAGS)
> libvirt_driver_nwfilter_impl_la_LIBADD = \
> + libvirt.la \
> $(LIBPCAP_LIBS) \
> $(LIBNL_LIBS) \
> - $(DBUS_LIBS)
> -libvirt_driver_nwfilter_impl_la_LIBADD += libvirt.la ../gnulib/lib/libgnu.la
> + $(DBUS_LIBS) \
> + ../gnulib/lib/libgnu.la
> libvirt_driver_nwfilter_impl_la_SOURCES = $(NWFILTER_DRIVER_SOURCES)
> endif WITH_NWFILTER
>
> diff --git a/src/lxc/Makefile.inc.am b/src/lxc/Makefile.inc.am
> index 8a3d4c4..8dd2e9e 100644
> --- a/src/lxc/Makefile.inc.am
> +++ b/src/lxc/Makefile.inc.am
> @@ -121,8 +121,8 @@ libvirt_lxc_LDFLAGS = \
> $(LIBXML_LIBS) \
> $(NULL)
> libvirt_lxc_LDADD = \
> - $(FUSE_LIBS) \
> libvirt.la \
> + $(FUSE_LIBS) \
> ../gnulib/lib/libgnu.la \
> $(NULL)
> if WITH_DTRACE_PROBES
> diff --git a/tools/Makefile.am b/tools/Makefile.am
> index 85e640b..1452d98 100644
> --- a/tools/Makefile.am
> +++ b/tools/Makefile.am
> @@ -139,9 +139,9 @@ libvirt_shell_la_LDFLAGS = \
> $(COVERAGE_LDFLAGS) \
> $(NULL)
> libvirt_shell_la_LIBADD = \
> + ../src/libvirt.la \
> $(LIBXML_LIBS) \
> $(READLINE_LIBS) \
> - ../src/libvirt.la \
> ../gnulib/lib/libgnu.la \
> $(NULL)
> libvirt_shell_la_SOURCES = vsh.c vsh.h
> --
> 2.16.2
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list