On Mon, May 2, 2016 at 9:01 PM, Peter Maydell <peter.mayd...@linaro.org> wrote: > [ccing somebody else who ran into this, since I've figured out why.] > > On 3 May 2016 at 01:47, Christopher Friedt <chrisfri...@gmail.com> wrote: >> The file ivshmem.c unconditionally references event_notifier_init_fd() >> in util/event_notifier-posix.c, even if CONFIG_EVENTFD is not defined. > > Yes, but ivshmem.c is only built if CONFIG_IVSHMEM, and > CONFIG_IVSHMEM is set (in default-configs/pci.mak) to CONFIG_EVENTFD. > So if CONFIG_EVENTFD is not defined then we should never build ivshmem.o. > > The problem here is that you've run into a bug in QEMU's makefiles,
That would explain things. > where a change in an included .mak file in default-configs fails > to cause the config-devices.mak file to be rebuilt. In commit > 330b583 we changed pci.mak so that CONFIG_IVSHMEM is set to > CONFIG_EVENTFD rather than CONFIG_POSIX, so if your config-devices.mak > predates that commit then it will have incorrectly not been recreated > and so your build will still try to build ivshmem.c. > > You can check whether this is true by looking at > (for instance) x86_64-softmmu/config-devices.mak in your build > tree: if it has a line "CONFIG_IVSHMEM=$(CONFIG_POSIX)" in it > then it's the out of date version. $ grep "CONFIG_IVSHMEM" x86_64-softmmu/config-devices.mak CONFIG_IVSHMEM=$(CONFIG_EVENTFD) I have been re-configuring on every build, just to eliminate that potential error source. > You should be able to fix this by deleting */config-devices.mak > from your build tree (or by blowing away the build tree entirely > and recreating it.) Then try rebuilding -- ivshmem.c should not > be compiled. I'll give that a go anyway.