[libvirt-users] Compile error on centos 7 : undefined reference to `virConnectNetworkEventRegisterAnyCheckACL'

Hi all Centos 7.0.1406, 3.10.0-123.el7.x86_64 Configure libvirt-1.2.7 as: ./configure --prefix=/usr --with-xen=no --with-qemu=no --with-openvz=no --with-vmware=no --with-esx=no --with-parallels=no --with-bhyve=no --with-uml=no --with-vbox=no --with-selinux=no make ... make[3]: Entering directory `/usr/local/src/libvirt-1.2.7/daemon' CC libvirtd-remote.o CCLD libvirtd libvirtd-remote.o: In function `remoteRelayDomainEventCheckACL': /usr/local/src/libvirt-1.2.7/daemon/remote.c:157: undefined reference to `virConnectDomainEventRegisterAnyCheckACL' libvirtd-remote.o: In function `remoteRelayNetworkEventCheckACL': /usr/local/src/libvirt-1.2.7/daemon/remote.c:184: undefined reference to `virConnectNetworkEventRegisterAnyCheckACL' collect2: error: ld returned 1 exit status make[3]: *** [libvirtd] Error 1 make[3]: Leaving directory `/usr/local/src/libvirt-1.2.7/daemon' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/local/src/libvirt-1.2.7/daemon' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/libvirt-1.2.7' make: *** [all] Error 2 I trying build libvirt-remote.0 manualy, by added file ../src/.libs/libvirt_driver_access.a where function virConnectDomainEventRegisterAnyCheckACL defined. But as result libvirtd cant' start with multiple errrors: Aug 25 19:00:54 arvis systemd: Starting LSB: daemon for libvirt virtualization API... Aug 25 19:00:54 journal: libvirt version: 1.2.7 Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_network.so /usr/lib/libvirt/connection-driver/libvirt _driver_network.so: undefined symbol: virConnectListAllNetworksCheckACL Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_storage.so /usr/lib/libvirt/connection-driver/libvirt _driver_storage.so: undefined symbol: virConnectListAllStoragePoolsCheckACL Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_nodedev.so /usr/lib/libvirt/connection-driver/libvirt _driver_nodedev.so: undefined symbol: virConnectListAllNodeDevicesCheckACL Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_secret.so /usr/lib/libvirt/connection-driver/libvirt_ driver_secret.so: undefined symbol: virConnectListAllSecretsCheckACL Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_nwfilter.so /usr/lib/libvirt/connection-driver/libvir t_driver_nwfilter.so: undefined symbol: virConnectNumOfNWFiltersCheckACL Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_interface.so /usr/lib/libvirt/connection-driver/libvi rt_driver_interface.so: undefined symbol: virConnectNumOfDefinedInterfacesCheckACL Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_qemu.so /usr/lib/libvirt/connection-driver/libvirt_dr iver_qemu.so: undefined symbol: virConnectListDomainsCheckACL Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_lxc.so /usr/lib/libvirt/connection-driver/libvirt_dri ver_lxc.so: undefined symbol: virConnectListDomainsCheckACL Aug 25 19:00:54 journal: failed to load module /usr/lib/libvirt/connection-driver/libvirt_driver_uml.so /usr/lib/libvirt/connection-driver/libvirt_dri ver_uml.so: undefined symbol: virConnectListDomainsCheckACL b.r. Maxim Kozin

On 08/26/2014 03:41 AM, mxs kolo wrote:
Hi all
Centos 7.0.1406, 3.10.0-123.el7.x86_64 Configure libvirt-1.2.7 as: ./configure --prefix=/usr --with-xen=no --with-qemu=no --with-openvz=no --with-vmware=no --with-esx=no --with-parallels=no --with-bhyve=no --with-uml=no --with-vbox=no --with-selinux=no make
Thanks for the report. That is disabling quite a lot of drivers (what is still left, lxc?), so it's a combination that has not gotten a lot of testing. I'll definitely look at fixing it before 1.2.8 is released, although it may miss release candidate 0. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

Thanks for the report. That is disabling quite a lot of drivers (what is still left, lxc?), so it's a combination that has not gotten a lot of testing. I'll definitely look at fixing it before 1.2.8 is released, although it may miss release candidate 0. It's no problem of configure options. Simple ./configure result:
configure: configure: Configuration summary configure: ===================== configure: configure: Drivers configure: configure: Xen: no configure: QEMU: yes configure: UML: yes configure: OpenVZ: yes configure: VMware: yes configure: VBox: yes configure: XenAPI: no configure: xenlight: no configure: LXC: yes configure: PHYP: no configure: ESX: no configure: Hyper-V: no configure: Parallels: yes configure: Bhyve: no configure: Test: yes configure: Remote: yes configure: Network: yes configure: Libvirtd: yes configure: Interface: yes configure: macvtap: yes configure: virtport: yes configure: configure: Storage Drivers configure: configure: Dir: yes configure: FS: yes configure: NetFS: yes configure: LVM: yes configure: iSCSI: no configure: SCSI: yes configure: mpath: yes configure: Disk: no configure: RBD: no configure: Sheepdog: no configure: Gluster: no configure: configure: Security Drivers configure: configure: SELinux: yes (/selinux) configure: AppArmor: no (install profiles: no) configure: configure: Driver Loadable Modules configure: configure: dlopen: -ldl configure: configure: Libraries configure: configure: apparmor: no configure: attr: no configure: audit: no configure: avahi: no configure: blkid: no configure: capng: yes (CFLAGS='' LIBS='-lcap-ng') configure: curl: no configure: dbus: no configure: fuse: yes (CFLAGS='-D_FILE_OFFSET_BITS=64 -I/usr/include/fuse ' LIBS='-pthread -lfuse ') configure: glusterfs: no configure: hal: no configure: netcf: no configure: numactl: no configure: openwsman: no configure: pciaccess: yes (CFLAGS=' ' LIBS='-lpciaccess ') configure: readline: no configure: sanlock: no configure: sasl: no configure: selinux: yes (CFLAGS='' LIBS='-lselinux') configure: ssh2: no configure: systemd_daemon: yes (CFLAGS=' ' LIBS='-lsystemd-daemon ') configure: udev: yes (CFLAGS=' ' LIBS='-ludev ') configure: yajl: no configure: libxml: -I/usr/include/libxml2 -lxml2 configure: dlopen: -ldl configure: openwsman: no configure: gnutls: no configure: firewalld: no configure: polkit: /usr/bin/pkcheck (version 1) configure: xen: no configure: xenapi: no configure: xenlight: no configure: pcap: no configure: nl: -lnl configure: mscom: no configure: xdr: configure: rbd: no configure: pm-utils: yes configure: configure: Test suite configure: configure: Coverage: no configure: Alloc OOM: no configure: configure: Miscellaneous configure: configure: Debug: yes configure: Use -Werror: no configure: Warning Flags: -W -Waddress -Waggressive-loop-optimizations -Wall -Warray-bounds -Wattributes -Wbad-function-cast -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment -Wcomments -Wcoverage-mismatch -Wcpp -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wdouble-promotion -Wempty-body -Wendif-labels -Wextra -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k -Wformat-zero-length -Wfree-nonheap-object -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Winline -Wint-to-pointer-cast -Winvalid-memory-model -Winvalid-pch -Wjump-misses-init -Wlogical-op -Wmain -Wmaybe-uninitialized -Wmissing-braces -Wmissing-declarations -Wmissing-field-initializers -Wmissing-include-dirs -Wmissing-parameter-type -Wmissing-prototypes -Wmultichar -Wnarrowing -Wnested-externs -Wnonnull -Wnormalized=nfc -Wold-style-declaration -Wold-style-definition -Woverflow -Woverride-init -Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-sign -Wpointer-to-int-cast -Wpragmas -Wreturn-local-addr -Wreturn-type -Wsequence-point -Wshadow -Wsizeof-pointer-memaccess -Wstrict-aliasing -Wstrict-prototypes -Wsuggest-attribute=const -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wswitch -Wsync-nand -Wtrampolines -Wtrigraphs -Wtype-limits -Wuninitialized -Wunknown-pragmas -Wunused -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-parameter -Wunused-result -Wunused-value -Wunused-variable -Wvarargs -Wvariadic-macros -Wvector-operation-performance -Wvolatile-register-var -Wwrite-strings -fdiagnostics-show-option -funit-at-a-time -Wno-sign-compare -Wjump-misses-init -Wno-format-nonliteral -Wframe-larger-than=4096 -fstack-protector-strong -fexceptions -fasynchronous-unwind-tables -fipa-pure-const -Wno-suggest-attribute=pure -Wno-suggest-attribute=const configure: DTrace: no configure: numad: no configure: XML Catalog: /etc/xml/catalog configure: Init script: redhat configure: Char device locks: /var/lock configure: configure: Developer Tools configure: configure: Wireshark dissector: no configure: configure: Privileges configure: configure: QEMU: root:root configure: #make ... make[3]: Entering directory `/usr/local/src/libvirt-1.2.7/daemon' CC libvirtd_conf_la-libvirtd-config.lo CCLD libvirtd_conf.la CC libvirtd-libvirtd.o CC libvirtd-remote.o CC libvirtd-stream.o CCLD libvirtd libvirtd-remote.o: In function `remoteRelayDomainEventCheckACL': /usr/local/src/libvirt-1.2.7/daemon/remote.c:157: undefined reference to `virConnectDomainEventRegisterAnyCheckACL' libvirtd-remote.o: In function `remoteRelayNetworkEventCheckACL': /usr/local/src/libvirt-1.2.7/daemon/remote.c:184: undefined reference to `virConnectNetworkEventRegisterAnyCheckACL' collect2: error: ld returned 1 exit status make[3]: *** [libvirtd] Error 1 make[3]: Leaving directory `/usr/local/src/libvirt-1.2.7/daemon' make[2]: *** [all] Error 2 make[2]: Leaving directory `/usr/local/src/libvirt-1.2.7/daemon' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/libvirt-1.2.7' make: *** [all] Error 2 p.s. I have no error when compiling libvirt-1.2.7 on second CE-7 host. But on second host I installed previously libvirt from rpm, then remove rpm and after this successfully compile libvirt 1.2.7 with same options. Both hosts has small difference in rpm sets, equal kernel and gcc version. b.r. Maxim Kozin

On 08/26/2014 05:37 AM, mxs kolo wrote:
Thanks for the report. That is disabling quite a lot of drivers (what is still left, lxc?), so it's a combination that has not gotten a lot of testing. I'll definitely look at fixing it before 1.2.8 is released, although it may miss release candidate 0. It's no problem of configure options. Simple ./configure result:
I'm confused. Earlier, you said:
./configure --prefix=/usr --with-xen=no --with-qemu=no --with-openvz=no --with-vmware=no --with-esx=no --with-parallels=no --with-bhyve=no --with-uml=no --with-vbox=no --with-selinux=no
configure: configure: Configuration summary configure: ===================== configure: configure: Drivers configure: configure: Xen: no configure: QEMU: yes
but here, qemu shows as yes. Are you sure you are reporting from the same build tree?
p.s. I have no error when compiling libvirt-1.2.7 on second CE-7 host. But on second host I installed previously libvirt from rpm, then remove rpm and after this successfully compile libvirt 1.2.7 with same options.
So maybe we have a bug where the build depends on pre-installed files, rather than building properly from the tarball. Good thing it's easy to make a virgin VM to test this theory. Like I said, I'll try and reproduce and fix this, but it may be a couple days. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

It's no problem of configure options. Simple ./configure result:
I'm confused. Earlier, you said:
./configure --prefix=/usr --with-xen=no --with-qemu=no --with-openvz=no --with-vmware=no --with-esx=no --with-parallels=no --with-bhyve=no --with-uml=no --with-vbox=no --with-selinux=no I try build libvirt 2 times: first with ./configure with options above (lxc only) second, after Your replay, with pure ./configure. And it's output from pure configure: configure: configure: Configuration summary configure: ===================== configure: configure: Drivers configure: configure: Xen: no configure: QEMU: yes
In both case make phase failed with same error about undefined reference to `virConnectDomainEventRegisterAnyCheckACL' And it's not depended from configure options in my case.
So maybe we have a bug where the build depends on pre-installed files, rather than building properly from the tarball. Good thing it's easy to make a virgin VM to test this theory. Like I said, I'll try and reproduce and fix this, but it may be a couple days. By the way - 1.2.6 builded successfully from source on both hosts.
b.r. Maxim Kozin

So maybe we have a bug where the build depends on pre-installed files, rather than building properly from the tarball. Good thing it's easy to make a virgin VM to test this theory. Like I said, I'll try and reproduce and fix this, but it may be a couple days. Some news. I get libvirt-1.2.8-rc1.tar.gz and successfully build it on my "problem" node, without any make errors. I nothing change on node, libvirt-1.2.7 still broken on make phase with error "undefined reference to `virConnectNetworkEventRegisterAnyCheckACL'"
b.r. Maxim Kozin

On 08/27/2014 02:49 AM, mxs kolo wrote:
So maybe we have a bug where the build depends on pre-installed files, rather than building properly from the tarball. Good thing it's easy to make a virgin VM to test this theory. Like I said, I'll try and reproduce and fix this, but it may be a couple days. Some news. I get libvirt-1.2.8-rc1.tar.gz and successfully build it on my "problem" node, without any make errors.
That's good to hear; we've fixed it in the meantime.
I nothing change on node, libvirt-1.2.7 still broken on make phase with error "undefined reference to `virConnectNetworkEventRegisterAnyCheckACL'"
Would you like to bisect which commit fixed the problem, so we can backport it to v1.2.7-maint? Or even bisect which commit between 1.2.6 and 1.2.7 broke things? Are you familiar with using git bisect? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
participants (2)
-
Eric Blake
-
mxs kolo