编译libvirt 5.6.0概率性失败的解决方法
问题现象描述
按《KVM虚拟机 安装指南》中“(可选)升级libvirt”相关内容编译libvirt-5.6.0,概率性(62.5%)出现编译失败的情况:
make[3]: Leaving directory '/root/rpmbuild/BUILD/libvirt-5.6.0/src' make[2]: *** [all] Error 2 make[2]: Leaving directory '/root/rpmbuild/BUILD/libvirt-5.6.0/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/root/rpmbuild/BUILD/libvirt-5.6.0' make: *** [all] Error 2 error: Bad exit status from /var/tmp/tmp-tmp.5eNem7 (%build) RPM build errors: Bad exit status from /var/tmp/tmp-tmp.5eNem7 (%build)
查找提示有问题的具体行,会找到以下两种提示的其中一种。
- 第一种:
gcc: error: ../src/libvirt_probes.o.dtrace-temp.c: No such file or directory gcc: fatal error: no input files compilation terminated. "gcc ../src/libvirt_probes.o.dtrace-temp.c" failed
- 第二种:
Traceback (most recent call last): File "usr/bin/dtrace", line 445, in <module> sys. exit (main()) File "usr/bin/dtrace", line 432, in main os.remove (fname) OSError: [Errno 2] No such file or directory: '../src/libvirt_probes.o.dtrace-temp.c'
均与某个源码文件找不到有关。
关键过程、根本原因分析
libvirt-5.6.0的Makefile缺陷,导致并发编译下出现bug。问题文件为“src/remote/Makefile.inc.am”。
父主题: KVM虚拟化