On 04/08/2020 19.50, Richard Henderson wrote: > On 8/4/20 10:00 AM, Thomas Huth wrote: >> Otherwise there is a linker error with MinGW while compiling the tests: >> >> LINK tests/test-timed-average.exe >> libqemuutil.a(main-loop.o): In function `qemu_notify_event': >> /builds/huth/qemu/util/main-loop.c:139: multiple definition of >> `qemu_notify_event' >> >> tests/test-timed-average.o:/builds/huth/qemu/tests/../stubs/notify-event.c:5: >> first defined here >> collect2: error: ld returned 1 exit status >> /builds/huth/qemu/rules.mak:124: recipe for target >> 'tests/test-timed-average.exe' failed >> >> Signed-off-by: Thomas Huth <[email protected]> >> --- >> stubs/notify-event.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > > That doesn't make sense. Since the symbol is satisfied from main-loop.c, it > should not be pulled in from libqemuutil.a. > > What's really happening here?
Honestly, I don't have a clue. But since commit ebedb37c8d2aa4775, both the code from util/ and from stubs/ are put into the same library, libqemuutil.a, which is causing the trouble here, I guess. Maybe the linker pulled in the code from the stub first, then some other part used another function from util/main-loop.c which caused the linker to pull in main-loop.o, too, so that it finally found that there is a clash? ... but that's just a plain guess, of course. Paolo (as author of commit ebedb37c8d2), do you have an idea what might be going on here? Thomas
