> -----Original Message----- > From: Alex Bennée [mailto:[email protected]] > Sent: Friday, July 27, 2018 7:45 PM > To: Pavel Dovgalyuk > Cc: 'Pavel Dovgalyuk'; [email protected]; [email protected]; > [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; [email protected]; [email protected]; > [email protected]; > [email protected] > Subject: Re: [PATCH v5 23/24] replay: add BH oneshot event for block layer > > > Pavel Dovgalyuk <[email protected]> writes: > > >> From: Alex Bennée [mailto:[email protected]] > >> > Replay is capable of recording normal BH events, but sometimes > >> > there are single use callbacks scheduled with aio_bh_schedule_oneshot > >> > function. This patch enables recording and replaying such callbacks. > >> > Block layer uses these events for calling the completion function. > >> > Replaying these calls makes the execution deterministic. > >> > > >> > Signed-off-by: Pavel Dovgalyuk <[email protected]> > >> > >> I'm not sure what about this commit causes the compile breakage I'm > >> seeing: > >> > >> LINK aarch64-linux-user/qemu-aarch64 > >> ../libqemuutil.a(cpu-get-icount.o):(.bss+0x0): multiple definition of > >> `use_icount' > >> exec.o:(.bss+0x58): first defined here > >> collect2: error: ld returned 1 exit status > >> Makefile:199: recipe for target 'qemu-aarch64' failed > >> make[1]: *** [qemu-aarch64] Error 1 > >> Makefile:481: recipe for target 'subdir-aarch64-linux-user' failed > >> make: *** [subdir-aarch64-linux-user] Error 2 > >> > >> It only occurs on a make clean && make -j on that commit though. It's > >> hidden if you do incremental builds. > > > > make distclean works for me in such cases. > > Hmmm > > make distclean > ./configure > make > > And I get: > > LINK aarch64-linux-user/qemu-aarch64 > ../libqemuutil.a(cpu-get-icount.o):(.bss+0x0): multiple definition of > `use_icount' > exec.o:(.bss+0x58): first defined here > collect2: error: ld returned 1 exit status > Makefile:199: recipe for target 'qemu-aarch64' failed > make[1]: *** [qemu-aarch64] Error 1 > Makefile:481: recipe for target 'subdir-aarch64-linux-user' failed > make: *** [subdir-aarch64-linux-user] Error 2
That's strange. As I understand, linux-user emulators does not include block layer. They also don't include record/replay. Why then block- and record-related stub affects the build? Pavel Dovgalyuk
