Message ID | 20200902102433.304737-1-thuth@redhat.com |
---|---|
State | New |
Headers | show |
Series | stubs: Move qemu_timer_notify_cb() and remove qemu_notify_event() stub | expand |
On 02/09/20 12:24, Thomas Huth wrote: > When cross-compiling with MinGW, there are sometimes some weird linker > errors like: > > ibqemuutil.a(util_main-loop.c.obj): In function `qemu_notify_event': > /builds/huth/qemu/build/../util/main-loop.c:139: multiple definition of > `qemu_notify_event' > libqemuutil.a(stubs_notify-event.c.obj):/builds/huth/qemu/stubs/notify-event.c:5: > first defined here > collect2: error: ld returned 1 exit status > /builds/huth/qemu/rules.mak:88: recipe for target 'tests/test-timed-average.exe' > failed > > It seems like it works better when the qemu_timer_notify_cb() stub (which > calls qemu_notify_event()) is in a separate file - then we can also even > remove the qemu_notify_event() stub now. > > This patch is based on ideas from the patch "stubs: Remove qemu_notify_event()" > by Philippe Mathieu-Daudé and the patch "cpu-timers, icount: new modules" from > Claudio Fontana. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > stubs/cpu-get-icount.c | 5 ----- > stubs/meson.build | 2 +- > stubs/notify-event.c | 6 ------ > stubs/qemu-timer-notify-cb.c | 8 ++++++++ > 4 files changed, 9 insertions(+), 12 deletions(-) > delete mode 100644 stubs/notify-event.c > create mode 100644 stubs/qemu-timer-notify-cb.c > > diff --git a/stubs/cpu-get-icount.c b/stubs/cpu-get-icount.c > index b35f844638..4001613240 100644 > --- a/stubs/cpu-get-icount.c > +++ b/stubs/cpu-get-icount.c > @@ -14,8 +14,3 @@ int64_t cpu_get_icount_raw(void) > { > abort(); > } > - > -void qemu_timer_notify_cb(void *opaque, QEMUClockType type) > -{ > - qemu_notify_event(); > -} > diff --git a/stubs/meson.build b/stubs/meson.build > index 019bd79c7a..e2dfedc2a7 100644 > --- a/stubs/meson.build > +++ b/stubs/meson.build > @@ -24,9 +24,9 @@ stub_ss.add(files('machine-init-done.c')) > stub_ss.add(files('migr-blocker.c')) > stub_ss.add(files('monitor.c')) > stub_ss.add(files('monitor-core.c')) > -stub_ss.add(files('notify-event.c')) > stub_ss.add(files('pci-bus.c')) > stub_ss.add(files('pci-host-piix.c')) > +stub_ss.add(files('qemu-timer-notify-cb.c')) > stub_ss.add(files('qmp_memory_device.c')) > stub_ss.add(files('qtest.c')) > stub_ss.add(files('ram-block.c')) > diff --git a/stubs/notify-event.c b/stubs/notify-event.c > deleted file mode 100644 > index 827bb52d1a..0000000000 > --- a/stubs/notify-event.c > +++ /dev/null > @@ -1,6 +0,0 @@ > -#include "qemu/osdep.h" > -#include "qemu/main-loop.h" > - > -void qemu_notify_event(void) > -{ > -} > diff --git a/stubs/qemu-timer-notify-cb.c b/stubs/qemu-timer-notify-cb.c > new file mode 100644 > index 0000000000..054b408b1c > --- /dev/null > +++ b/stubs/qemu-timer-notify-cb.c > @@ -0,0 +1,8 @@ > +#include "qemu/osdep.h" > +#include "sysemu/cpus.h" > +#include "qemu/main-loop.h" > + > +void qemu_timer_notify_cb(void *opaque, QEMUClockType type) > +{ > + qemu_notify_event(); > +} > Acked-by: Paolo Bonzini <pbonzini@redhat.com>
diff --git a/stubs/cpu-get-icount.c b/stubs/cpu-get-icount.c index b35f844638..4001613240 100644 --- a/stubs/cpu-get-icount.c +++ b/stubs/cpu-get-icount.c @@ -14,8 +14,3 @@ int64_t cpu_get_icount_raw(void) { abort(); } - -void qemu_timer_notify_cb(void *opaque, QEMUClockType type) -{ - qemu_notify_event(); -} diff --git a/stubs/meson.build b/stubs/meson.build index 019bd79c7a..e2dfedc2a7 100644 --- a/stubs/meson.build +++ b/stubs/meson.build @@ -24,9 +24,9 @@ stub_ss.add(files('machine-init-done.c')) stub_ss.add(files('migr-blocker.c')) stub_ss.add(files('monitor.c')) stub_ss.add(files('monitor-core.c')) -stub_ss.add(files('notify-event.c')) stub_ss.add(files('pci-bus.c')) stub_ss.add(files('pci-host-piix.c')) +stub_ss.add(files('qemu-timer-notify-cb.c')) stub_ss.add(files('qmp_memory_device.c')) stub_ss.add(files('qtest.c')) stub_ss.add(files('ram-block.c')) diff --git a/stubs/notify-event.c b/stubs/notify-event.c deleted file mode 100644 index 827bb52d1a..0000000000 --- a/stubs/notify-event.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "qemu/osdep.h" -#include "qemu/main-loop.h" - -void qemu_notify_event(void) -{ -} diff --git a/stubs/qemu-timer-notify-cb.c b/stubs/qemu-timer-notify-cb.c new file mode 100644 index 0000000000..054b408b1c --- /dev/null +++ b/stubs/qemu-timer-notify-cb.c @@ -0,0 +1,8 @@ +#include "qemu/osdep.h" +#include "sysemu/cpus.h" +#include "qemu/main-loop.h" + +void qemu_timer_notify_cb(void *opaque, QEMUClockType type) +{ + qemu_notify_event(); +}
When cross-compiling with MinGW, there are sometimes some weird linker errors like: ibqemuutil.a(util_main-loop.c.obj): In function `qemu_notify_event': /builds/huth/qemu/build/../util/main-loop.c:139: multiple definition of `qemu_notify_event' libqemuutil.a(stubs_notify-event.c.obj):/builds/huth/qemu/stubs/notify-event.c:5: first defined here collect2: error: ld returned 1 exit status /builds/huth/qemu/rules.mak:88: recipe for target 'tests/test-timed-average.exe' failed It seems like it works better when the qemu_timer_notify_cb() stub (which calls qemu_notify_event()) is in a separate file - then we can also even remove the qemu_notify_event() stub now. This patch is based on ideas from the patch "stubs: Remove qemu_notify_event()" by Philippe Mathieu-Daudé and the patch "cpu-timers, icount: new modules" from Claudio Fontana. Signed-off-by: Thomas Huth <thuth@redhat.com> --- stubs/cpu-get-icount.c | 5 ----- stubs/meson.build | 2 +- stubs/notify-event.c | 6 ------ stubs/qemu-timer-notify-cb.c | 8 ++++++++ 4 files changed, 9 insertions(+), 12 deletions(-) delete mode 100644 stubs/notify-event.c create mode 100644 stubs/qemu-timer-notify-cb.c