Kamil Rytarowski <n...@gmx.com> writes: > On 05.06.2017 16:29, Michael Tokarev wrote: >> 31.05.2017 15:00, Kamil Rytarowski wrote: >>> Currently ivshmem requires eventfd() which is Linux specific. >>> Do not and build it unconditionally on every Linux/BSD/Solaris. >>> >>> This patch indirectly fixes build failure on NetBSD, where these tools >>> additionally require -lrt for shm_open(3). In future there should be >>> added support for NetBSD and the linking addressed appropriately. >> >> Unfortunately this breaks static build. >> >> $ ../configure --disable-system --disable-linux-user --static >> $ make V=1 >> ... >> c++ -I/usr/include/pixman-1 -Werror -pthread -I/usr/include/glib-2.0 >> -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -m64 -mcx16 -D_GNU_SOURCE >> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes >> -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes >> -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels >> -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body >> -Wnested-externs >> -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers >> -Wold-style-declaration -Wold-style-definition -Wtype-limits >> -fstack-protector-strong >> -I/usr/include/libpng16 -I/build/qemu/git/tests -O2 -U_FORTIFY_SOURCE >> -D_FORTIFY_SOURCE=2 -g -Wl,--warn-common -m64 -static -g -o ivshmem-server >> libqemuutil.a libqemustub.a -lm -lgthread-2.0 -pthread -lglib-2.0 -pthread >> -lpcre -pthread -lz -lrt -lz -lnettle -lutil >> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crt1.o: In >> function `_start': >> (.text+0x20): undefined reference to `main' >> collect2: error: ld returned 1 exit status >> Makefile:475: error building «ivshmem-server» >> $ _ >> >> I'll take a look at this later. reverting it for now. >> >> Thanks, >> >> /mjt >> > > I will try to reproduce it locally.
I haven't, but here's a quick guess on what we need to squash into the patch: diff --git a/Makefile b/Makefile index c830d7a..2ef5a78 100644 --- a/Makefile +++ b/Makefile @@ -469,10 +469,12 @@ ifneq ($(EXESUF),) qemu-ga: qemu-ga$(EXESUF) $(QGA_VSS_PROVIDER) $(QEMU_GA_MSI) endif +ifdef CONFIG_IVSHMEM ivshmem-client$(EXESUF): $(ivshmem-client-obj-y) $(COMMON_LDADDS) $(call LINK, $^) ivshmem-server$(EXESUF): $(ivshmem-server-obj-y) $(COMMON_LDADDS) $(call LINK, $^) +endif module_block.h: $(SRC_PATH)/scripts/modules/module_block.py config-host.mak $(call quiet-command,$(PYTHON) $< $@ \ diff --git a/tests/Makefile.include b/tests/Makefile.include index f42f3df..ab70d01 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -203,7 +203,7 @@ gcov-files-pci-y += hw/display/virtio-gpu-pci.c gcov-files-pci-$(CONFIG_VIRTIO_VGA) += hw/display/virtio-vga.c check-qtest-pci-y += tests/intel-hda-test$(EXESUF) gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c -check-qtest-pci-$(CONFIG_EVENTFD) += tests/ivshmem-test$(EXESUF) +check-qtest-pci-$(CONFIG_IVSHMEM) += tests/ivshmem-test$(EXESUF) gcov-files-pci-y += hw/misc/ivshmem.c check-qtest-i386-y = tests/endianness-test$(EXESUF)