tl;dr:
I think there is a bug in libvirt's build system which, with
low probability, causes a build failure containing this message:
/usr/bin/ld: cannot find -lvirt
Complete build logs of two attempts:
http://logs.test-lab.xenproject.org/osstest/logs/123046/build-i386-libvir...
http://logs.test-lab.xenproject.org/osstest/logs/123096/build-i386-libvir...
Snippet from 123046 containing the error is enclosed below.
Longer explanation:
I have two new machines for the Xen Project CI, which I am trying to
commission. As part of commissioning I run a complete test run (a
"flight" in osstest terminology) on just those new hosts. The i386
libvirt build failed:
http://logs.test-lab.xenproject.org/osstest/logs/123046/build-i386-libvir...
Everything else that would be expected to work was fine. The test
programme was identical to flight 122815, except that that ran on
other hosts in the test farm (and, there, it passed). The error is
the kind of error one sees with missing dependencies in parallel
builds, etc.
I wanted to have some 32-bit libvirt tests actually run, so I reran a
new flight containing the relevant parts. That failed too in a very
similar way:
http://logs.test-lab.xenproject.org/osstest/logs/123096/build-i386-libvir...
The two machines are Dell R230s (and therefore hardly unusual). The
main novelty of these machines is that the firmware is UEFI booting in
UEFI mode. I doubt that has anything to do with it. The host,
including compiler, is Debian jessie i386.
As you can see from the log, we were trying to build libvirt
764a7483f189e6de841163647c14296e693dbb2e
What may be less obvious is that we were trying to build it against
xen.git#0306a1311d02ea52b4a9a9bc339f8bab9354c5e3.
http://logs.test-lab.xenproject.org/osstest/logs/123064/build-i386-libvir...
http://logs.test-lab.xenproject.org/osstest/logs/123046/build-i386/info.html
Does this seem like a likely explanation ? Have other people
experienced occasional problems with make -j ? If someone wants to
suggest a patch that might fix it I can test it.
In the meantime I have set off a number of new attempts, to try to
guess the failure probability, and also one attempt on other hosts to
check that nothing unexpected was broken.
Ian.
/usr/bin/ld: cannot find -lvirt
/usr/bin/ld: cannot find -lvirt
/bin/mkdir -p
'/home/osstest/build.123046.build-i386-libvirt/dist/usr/local/lib/libvirt/storage-backend'
/bin/bash ../libtool --mode=install /usr/bin/install -c libvirt_storage_backend_fs.la
libvirt_storage_backend_logical.la libvirt_storage_backend_scsi.la
libvirt_storage_backend_mpath.la
'/home/osstest/build.123046.build-i386-libvirt/dist/usr/local/lib/libvirt/storage-backend'
libtool: install: warning: relinking `libvirt_storage_backend_fs.la'
libtool: install: (cd /home/osstest/build.123046.build-i386-libvirt/libvirt/src; /bin/bash
/home/osstest/build.123046.build-i386-libvirt/libvirt/libtool --silent --tag CC
--mode=relink gcc -std=gnu99 -I./conf -I/usr/include/libxml2 -fno-common -W -Waddress
-Waggressive-loop-optimizations -Wall -Wattributes -Wbad-function-cast
-Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment -Wcomments
-Wcoverage-mismatch -Wcpp -Wdate-time -Wdeprecated-declarations -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
-Wmemset-transposed-args -Wmissing-braces -Wmissing-declarations
-Wmissing-field-initializers -Wmissing-include-dirs -Wmissing-parameter-type
-Wmissing-prototypes -Wmultichar -Wnarrowing -Wnested-externs -Wnonnull
-Wold-style-declaration -Wold-style-definition -Wopenmp-simd -Woverflow -Woverride-init
-Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-sign
-Wpointer-to-int-cast -Wpragmas -Wpsabi -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
-Wnormalized=nfc -Wno-sign-compare -Wjump-misses-init -Wswitch-enum -Wno-format-nonliteral
-fstack-protector-strong -fexceptions -fasyn
chronous-unwind-tables -fipa-pure-const -Wno-suggest-attribute=pure
-Wno-suggest-attribute=const -Werror -Wframe-larger-than=4096 -g
-I/home/osstest/build.123046.build-i386-libvirt/xendist/usr/local/include/
-DLIBXL_API_VERSION=0x040400 -module -avoid-version -Wl,-z -Wl,nodelete -export-dynamic
-Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,--no-copy-dt-needed-entries -g
-L/home/osstest/build.123046.build-i386-libvirt/xendist/usr/local/lib/
-Wl,-rpath-link=/home/osstest/build.123046.build-i386-libvirt/xendist/usr/local/lib/ -o
libvirt_storage_backend_fs.la -rpath /usr/local/lib/libvirt/storage-backend
storage/libvirt_storage_backend_fs_la-storage_backend_fs.lo libvirt.la
../gnulib/lib/libgnu.la -ldl -inst-prefix-dir
/home/osstest/build.123046.build-i386-libvirt/dist)
collect2: error: ld returned 1 exit status
Makefile:6410: recipe for target 'install-lockdriverLTLIBRARIES' failed
libtool: install: error: relink `lockd.la' with the above command before installing
it
make[3]: *** [install-lockdriverLTLIBRARIES] Error 1
make[3]: *** Waiting for unfinished jobs....
/usr/bin/ld: cannot find -lvirt