hi,
im building qemu with a large make -j value(9).
sometimes the build fails because of an error:
libtool: link: ar cru .libs/libcacard.a stubs/arch-query-cpu-def.o stubs/clock-warp.o stubs/cpu-get-clock.o stubs/cpu-get-icount.o stubs/dump.o stubs/fdset-add-fd.o stubs/fdset-find-fd.o stubs/fdset-get-fd.o stubs/fdset-remove-fd.o stubs/gdbstub.o stubs/get-fd.o stubs/get-vm-name.o stubs/iothread-lock.o stubs/migr-blocker.o stubs/mon-is-qmp.o stubs/mon-printf.o stubs/mon-print-filename.o stubs/mon-protocol-event.o stubs/mon-set-error.o stubs/pci-drive-hot-add.o stubs/qtest.o stubs/reset.o stubs/runstate-check.o stubs/set-fd-handler.o stubs/slirp.o stubs/sysbus.o stubs/uuid.o stubs/vm-stop.o stubs/vmstate.o stubs/cpus.o stubs/kvm.o libcacard/cac.o libcacard/event.o libcacard/vcard.o libcacard/vreader.o libcacard/vcard_emul_nss.o libcacard/vcard_emul_type.o libcacard/card_7816.o libcacard/vcardt.o util/osdep.o util/cutils.o util/qemu-timer-common.o util/error.o util/qemu-error.o util/oslib-posix.o util/qemu-thread-posix.o trace/generated-events.o trace/default.o trace/control.o trace/generated-tracers.o
ar: trace/generated-events.o: No such file or directory
make[2]: *** [libcacard.la] Error 1
i see the build of generated-events.o in the log before the ar command.
because of the -j it was probably not completed yet.
the generated-events.o build command:
/usr/bin/gcc -I/home/npsdb/qemu/qemu/tcg -I/home/npsdb/qemu/qemu/tcg/i386 -I/home/npsdb/qemu/qemu/linux-headers -I/home/npsdb/qemu/build/linux_x86_64/linux-headers -I. -I/home/npsdb/qemu/qemu -I/home/npsdb/jenkins/qemu/qemu/include -I/home/npsdb/qemu/qemu/libcacard -Itrace -Itrace -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -I/usr/include/libpng12 -I/usr/include/nss3 -I/usr/include/nspr4 -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/home/npsdb/qemu/qemu/tests -I qga/qapi-generated -MMD -MP -MT trace/generated-events.o -MF trace/generated-events.d -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -g -c -o trace/generated-events.o trace/generated-events.c
must be a race condition in the makefile because of a missing dependency.
i tried to find it but it was a little bit complicated to me.
thanks,
tal
Version 2.0.0
Isn’t the libcacard Makefile run as a recursive make?
how do you keep the dependencies between two different makes(libcacard and trace)?
-----Original Message-----
From: <email address hidden> [mailto:<email address hidden>] On Behalf Of Stefan Hajnoczi
Sent: Wednesday, June 04, 2014 11:19 AM
To: Tal Zilcer
Subject: Re: [Qemu-devel] [Bug 1324112] [NEW] qemu parallel building error on libcacard.la
On Wed, May 28, 2014 at 12:52:10PM -0000, tal zilcer wrote: query-cpu- def.o stubs/clock-warp.o stubs/cpu- get-clock. o stubs/cpu- get-icount. o stubs/dump.o stubs/fdset- add-fd. o stubs/fdset- find-fd. o stubs/fdset- get-fd. o stubs/fdset- remove- fd.o stubs/gdbstub.o stubs/get-fd.o stubs/get-vm-name.o stubs/iothread- lock.o stubs/migr- blocker. o stubs/mon-is-qmp.o stubs/mon-printf.o stubs/mon- print-filename. o stubs/mon- protocol- event.o stubs/mon- set-error. o stubs/pci- drive-hot- add.o stubs/qtest.o stubs/reset.o stubs/runstate- check.o stubs/set- fd-handler. o stubs/slirp.o stubs/sysbus.o stubs/uuid.o stubs/vm-stop.o stubs/vmstate.o stubs/cpus.o stubs/kvm.o libcacard/cac.o libcacard/event.o libcacard/vcard.o libcacard/vreader.o libcacard/ vcard_emul_ nss.o libcacard/ vcard_emul_ type.o libcacard/ card_7816. o libcacard/vcardt.o util/osdep.o util/cutils.o util/qemu- timer-common. o util/error.o util/qemu-error.o util/oslib-posix.o util/qemu- thread- posix.o trace/generated -events. o trace/default.o trace/control.o trace/generated -tracers. o -events. o: No such file or directory npsdb/qemu/ qemu/tcg -I/home/ npsdb/qemu/ qemu/tcg/ i386 -I/home/ npsdb/qemu/ qemu/linux- headers -I/home/ npsdb/qemu/ build/linux_ x86_64/ linux-headers -I. -I/home/ npsdb/qemu/ qemu -I/home/ npsdb/jenkins/ qemu/qemu/ include -I/home/ npsdb/qemu/ qemu/libcacard -Itrace -Itrace -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_ OFFSET_ BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing- prototypes -fno-strict- aliasing -fno-common -Wendif-labels -Wmissing- include- dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored- qualifiers -Wold-style- declaration -Wold-style- definition -Wtype-limits -fstack- protector- all -I/usr/ include/ libpng12 -I/usr/include/nss3 -I/usr/ include/ nspr4 -pthread -I/usr/ include/ glib-2. 0 -I/usr/ lib64/glib- 2.0/include -I/usr/ include/ pixman- 1 -I/home/ npsdb/qemu/ qemu/tests -I qga/qapi-generated -MMD -MP -MT trace/generated -events. o -MF trace/generated -events. d -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/ include/ glib-2. 0 -I/usr/ lib64/glib- 2.0/include -g -c -o trace/generated -events. o trace/generated -events. c
> im building qemu with a large make -j value(9).
> sometimes the build fails because of an error:
> libtool: link: ar cru .libs/libcacard.a stubs/arch-
> ar: trace/generated
> make[2]: *** [libcacard.la] Error 1
>
>
> i see the build of generated-events.o in the log before the ar command.
> because of the -j it was probably not completed yet.
> the generated-events.o build command:
> /usr/bin/gcc -I/home/
>
>
> must be a race condition in the makefile because of a missing dependency.
> i tried to find it but it was a little bit complicated to me.
Which QEMU ...