Re: [Qemu-devel] [Qemu-trivial] [PATCH v3] ivshmem-server: ivshmem-client: Build when eventfd() is available
On 19.06.2017 09:42, Markus Armbruster wrote: > Kamil Rytarowski writes: > >> On 10.06.2017 17:15, Markus Armbruster wrote: >>> Kamil Rytarowski writes: >>> On 06.06.2017 16:56, Kamil Rytarowski wrote: > On 06.06.2017 16:34, Peter Maydell wrote: >> On 6 June 2017 at 14:38, Kamil Rytarowski wrote: >>> I've linked qemu with the original patch and: >>> ./configure --disable-linux-user --disable-system --static >>> >>> I got some warnings, I think they are originated from our libc and are >>> not related to qemu: >>> LINKsparc64-bsd-user/qemu-sparc64 >>> /usr/lib/libc.a(initfini.o): warning: common of `__ps_strings' >>> overridden by definition >>> /usr/lib/crt0.o: warning: defined here >>> /usr/lib/libc.a(_env.o): warning: multiple common of `environ' >>> /usr/lib/crt0.o: warning: previous common is here >>> /usr/lib/libc.a(getprogname.o): warning: common of `__progname' >>> overridden by definition >>> /usr/lib/crt0.o: warning: defined here >> >> Yes, I think I've seen those before on NetBSD -- they look >> like a bug in your libc to me, it shouldn't be confusing itself >> with itself like that :-) >> >> thanks >> -- PMM >> > > I have filed this bug upstream: http://gnats.netbsd.org/52278 > > What's the status with this patch? NetBSD build still breaks due to ivshmem-*. >>> >>> I guess Michael expects a v4 that doesn't break the static build. >>> >> >> -static works for me, I have restricted options to test build on !NetBSD >> systems. >> >> Was this patch ok? >> >> 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 >> >> >> So I could amend it. > > Please do. Additionally consider > > 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) > Thank you, I will give it a try. signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [Qemu-trivial] [PATCH v3] ivshmem-server: ivshmem-client: Build when eventfd() is available
Kamil Rytarowski writes: > On 10.06.2017 17:15, Markus Armbruster wrote: >> Kamil Rytarowski writes: >> >>> On 06.06.2017 16:56, Kamil Rytarowski wrote: On 06.06.2017 16:34, Peter Maydell wrote: > On 6 June 2017 at 14:38, Kamil Rytarowski wrote: >> I've linked qemu with the original patch and: >> ./configure --disable-linux-user --disable-system --static >> >> I got some warnings, I think they are originated from our libc and are >> not related to qemu: >> LINKsparc64-bsd-user/qemu-sparc64 >> /usr/lib/libc.a(initfini.o): warning: common of `__ps_strings' >> overridden by definition >> /usr/lib/crt0.o: warning: defined here >> /usr/lib/libc.a(_env.o): warning: multiple common of `environ' >> /usr/lib/crt0.o: warning: previous common is here >> /usr/lib/libc.a(getprogname.o): warning: common of `__progname' >> overridden by definition >> /usr/lib/crt0.o: warning: defined here > > Yes, I think I've seen those before on NetBSD -- they look > like a bug in your libc to me, it shouldn't be confusing itself > with itself like that :-) > > thanks > -- PMM > I have filed this bug upstream: http://gnats.netbsd.org/52278 >>> >>> >>> What's the status with this patch? >>> >>> NetBSD build still breaks due to ivshmem-*. >> >> I guess Michael expects a v4 that doesn't break the static build. >> > > -static works for me, I have restricted options to test build on !NetBSD > systems. > > Was this patch ok? > > 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 > > > So I could amend it. Please do. Additionally consider 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)
Re: [Qemu-devel] [Qemu-trivial] [PATCH v3] ivshmem-server: ivshmem-client: Build when eventfd() is available
On 10.06.2017 17:15, Markus Armbruster wrote: > Kamil Rytarowski writes: > >> On 06.06.2017 16:56, Kamil Rytarowski wrote: >>> On 06.06.2017 16:34, Peter Maydell wrote: On 6 June 2017 at 14:38, Kamil Rytarowski wrote: > I've linked qemu with the original patch and: > ./configure --disable-linux-user --disable-system --static > > I got some warnings, I think they are originated from our libc and are > not related to qemu: > LINKsparc64-bsd-user/qemu-sparc64 > /usr/lib/libc.a(initfini.o): warning: common of `__ps_strings' > overridden by definition > /usr/lib/crt0.o: warning: defined here > /usr/lib/libc.a(_env.o): warning: multiple common of `environ' > /usr/lib/crt0.o: warning: previous common is here > /usr/lib/libc.a(getprogname.o): warning: common of `__progname' > overridden by definition > /usr/lib/crt0.o: warning: defined here Yes, I think I've seen those before on NetBSD -- they look like a bug in your libc to me, it shouldn't be confusing itself with itself like that :-) thanks -- PMM >>> >>> I have filed this bug upstream: http://gnats.netbsd.org/52278 >>> >>> >> >> >> What's the status with this patch? >> >> NetBSD build still breaks due to ivshmem-*. > > I guess Michael expects a v4 that doesn't break the static build. > -static works for me, I have restricted options to test build on !NetBSD systems. Was this patch ok? 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 So I could amend it. signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [Qemu-trivial] [PATCH v3] ivshmem-server: ivshmem-client: Build when eventfd() is available
Kamil Rytarowski 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)
Re: [Qemu-devel] [Qemu-trivial] [PATCH v3] ivshmem-server: ivshmem-client: Build when eventfd() is available
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. signature.asc Description: OpenPGP digital signature