On 3 May 2016 at 02:14, Christopher Friedt <chrisfri...@gmail.com> wrote: > 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)
Hmm. (Is it set the same for every config-devices.mak for every target you're trying to build?) Next things to check: is CONFIG_EVENTFD definitely not set in config-host.mak (it shouldn't be)? hw/misc/Makefile.objs ought to say "obj-$(CONFIG_IVSHMEM) += ivshmem.o", and that should mean that we don't try to build it... thanks -- PMM