
On Tue, Nov 26, 2019 at 06:33:13PM -0500, Cole Robinson wrote:
On 11/21/19 3:18 AM, Han Han wrote:
Hello, A compilation failure happened when I tried building libvirt latest code on rhel8
Version: gcc-8.3.1-4.5.el8.x86_64 libvirt v5.9.0-352-g5e939cea89
Steps: 1. Clone libvirt source code 2. Create build dir, and run autogen.sh # cd libvirt # mkdir build && cd build # ../autogen.sh --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-runstatedir=/run --with-qemu --without-openvz --without-lxc --without-vbox --without-libxl --with-sasl --with-polkit --with-libvirtd --without-phyp --with-esx --without-hyperv --without-vmware --without-vz --without-bhyve --with-remote-default-mode=legacy --with-interface --with-network --with-storage-fs --with-storage-lvm --with-storage-iscsi --with-storage-iscsi-direct --with-storage-scsi --with-storage-disk --with-storage-mpath --with-storage-rbd --without-storage-sheepdog --with-storage-gluster --without-storage-zfs --without-storage-vstorage --with-numactl --with-numad --with-capng --without-fuse --with-netcf --with-selinux --with-selinux-mount=/sys/fs/selinux --without-apparmor --without-hal --with-udev --with-yajl --with-sanlock --with-libpcap --with-macvtap --with-audit --with-dtrace --with-driver-modules --with-firewalld --with-firewalld-zone --without-wireshark-dissector --without-pm-utils --with-nss-plugin --with-qemu-user=qemu --with-qemu-group=qemu --with-tls-priority=@LIBVIRT,SYSTEM --enable-werror --enable-expensive-tests --with-init-script=systemd --without-login-shell # make
Then error appears: make[2]: Entering directory '/root/libvirt/build/include/libvirt' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/root/libvirt/build/include/libvirt' Making all in src make[2]: Entering directory '/root/libvirt/build/src' GEN access/org.libvirt.api.policy /bin/sh: access/org.libvirt.api.policy: No such file or directory GEN access/viraccessapicheck.h /bin/sh: access/viraccessapicheck.h: No such file or directory make[2]: *** [Makefile:15067: access/viraccessapicheck.h] Error 1 make[2]: Leaving directory '/root/libvirt/build/src' make[1]: *** [Makefile:1957: all-recursive] Error 1 make[1]: Leaving directory '/root/libvirt/build' make: *** [Makefile:1850: all] Error 2
I reproduced on Fedora too. I tracked it down to the --disable-dependency-tracking configure option: drop that and the build should work. I don't know enough about autotools to say if that's expected, or it's something broken on libvirt side
It is broken code in autotools IMHO, but we don't really care enough to investigate further. Simply don't use the --disable-dependency-tracking option. We'll "solve" it by ditching autotools in favour of meson soon. 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 :|