Re: [Qemu-devel] [Qemu-trivial] [PATCH v3] ivshmem-server: ivshmem-client: Build when eventfd() is available

2017-06-19 Thread Kamil Rytarowski
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

2017-06-19 Thread Markus Armbruster
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

2017-06-10 Thread Kamil Rytarowski
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

2017-06-05 Thread Markus Armbruster
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

2017-06-05 Thread Kamil Rytarowski
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