[Qemu-devel] [PATCH 0/3] Fix NetBSD build (don't build ivshmem tools)

Peter Maydell posted 3 patches 6 years, 8 months ago
Only 0 patches received!
configure               | 11 +++++++++++
Makefile                |  2 ++
Makefile.objs           |  4 ++--
hw/misc/Makefile.objs   |  2 +-
tests/Makefile.include  |  4 ++--
default-configs/pci.mak |  2 +-
6 files changed, 19 insertions(+), 6 deletions(-)
[Qemu-devel] [PATCH 0/3] Fix NetBSD build (don't build ivshmem tools)
Posted by Peter Maydell 6 years, 8 months ago
This patchset fixes the build on NetBSD by making sure we only
build the ivshmem-client and ivshmem-server tools if the host OS
actually supports ivshmem. (Previously we were only gating building
of the within-QEMU ivshmem PCI device.)

Most of this patchset is the work of Kamil Rytarowski; I just
split it up into easily-reviewable patches and fixed a few bugs.

Tested on Linux, on NetBSD, and on Linux with a '--disable-linux-user
--disable-system' config (which was the one that was failing with
our previous attempt to fix this bug).

NB: we still have some things we need to fix to be able to put
NetBSD into the build-test set. The next issue is that 'make check'
fails with

MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM % 255 + 1))} gtester -k --verbose -m=quick tests/check-qdict
sh: arith: syntax error: "RANDOM % 255 + 1"

likely because we're using a bashism there.

thanks
-- PMM

Kamil Rytarowski (2):
  configure: Use an explicit CONFIG_IVSHMEM rather than CONFIG_EVENTFD
  configure: Don't build ivshmem tools unless CONFIG_IVSHMEM is set

Peter Maydell (1):
  configure: Rename CONFIG_IVSHMEM to CONFIG_IVSHMEM_DEVICE

 configure               | 11 +++++++++++
 Makefile                |  2 ++
 Makefile.objs           |  4 ++--
 hw/misc/Makefile.objs   |  2 +-
 tests/Makefile.include  |  4 ++--
 default-configs/pci.mak |  2 +-
 6 files changed, 19 insertions(+), 6 deletions(-)

-- 
2.7.4


Re: [Qemu-devel] [PATCH 0/3] Fix NetBSD build (don't build ivshmem tools)
Posted by Kamil Rytarowski 6 years, 8 months ago
On 13.07.2017 19:03, Peter Maydell wrote:
> This patchset fixes the build on NetBSD by making sure we only
> build the ivshmem-client and ivshmem-server tools if the host OS
> actually supports ivshmem. (Previously we were only gating building
> of the within-QEMU ivshmem PCI device.)
> 
> Most of this patchset is the work of Kamil Rytarowski; I just
> split it up into easily-reviewable patches and fixed a few bugs.
> 

Thank you for improving the patches!

> Tested on Linux, on NetBSD, and on Linux with a '--disable-linux-user
> --disable-system' config (which was the one that was failing with
> our previous attempt to fix this bug).
> 
> NB: we still have some things we need to fix to be able to put
> NetBSD into the build-test set. The next issue is that 'make check'
> fails with
> 
> MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM % 255 + 1))} gtester -k --verbose -m=quick tests/check-qdict
> sh: arith: syntax error: "RANDOM % 255 + 1"
> 
> likely because we're using a bashism there.
> 

This is an extension to a POSIX shell. We were lately adding it as an
extension to our sh(1) in the distribution. Were also thinking about
prompting POSIX to standarize it.

$ echo $((RANDOM % 255))
52

As of now, one portable solution is to parse /dev/urandom, or use a 3rd
party tool like awk(1).

To make the life easier we can try to request bash to run tests. A
portable shebang is "/usr/bin/env bash".

From the NetBSD point of view I see nothing wrong with using bash for tests.

We can also request NetBSD 8.0 for running tests, busy wait till getting
this compatibility issue gone. As of now NetBSD 8.0 is in beta.
Personally I don't intend to invest to much time into pre-8.0 releases.

> thanks
> -- PMM
> 
> Kamil Rytarowski (2):
>   configure: Use an explicit CONFIG_IVSHMEM rather than CONFIG_EVENTFD
>   configure: Don't build ivshmem tools unless CONFIG_IVSHMEM is set
> 
> Peter Maydell (1):
>   configure: Rename CONFIG_IVSHMEM to CONFIG_IVSHMEM_DEVICE
> 
>  configure               | 11 +++++++++++
>  Makefile                |  2 ++
>  Makefile.objs           |  4 ++--
>  hw/misc/Makefile.objs   |  2 +-
>  tests/Makefile.include  |  4 ++--
>  default-configs/pci.mak |  2 +-
>  6 files changed, 19 insertions(+), 6 deletions(-)
> 


Re: [Qemu-devel] [PATCH 0/3] Fix NetBSD build (don't build ivshmem tools)
Posted by Eric Blake 6 years, 8 months ago
On 07/13/2017 01:40 PM, Kamil Rytarowski wrote:

>> MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM % 255 + 1))} gtester -k --verbose -m=quick tests/check-qdict
>> sh: arith: syntax error: "RANDOM % 255 + 1"
>>
>> likely because we're using a bashism there.

Yes, assuming that $RANDOM exists is a bashism.

>>
> 
> This is an extension to a POSIX shell. We were lately adding it as an
> extension to our sh(1) in the distribution. Were also thinking about
> prompting POSIX to standarize it.
> 
> $ echo $((RANDOM % 255))
> 52
> 
> As of now, one portable solution is to parse /dev/urandom, or use a 3rd
> party tool like awk(1).

It's also portable (although less random) to do:

$(( ${RANDOM:-0} + 1))

(the whole idea of MALLOC_PERTURB_ only works on glibc anyways, so it
really doesn't matter what you set it to on other systems).

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Re: [Qemu-devel] [PATCH 0/3] Fix NetBSD build (don't build ivshmem tools)
Posted by Peter Maydell 6 years, 8 months ago
On 13 July 2017 at 18:03, Peter Maydell <peter.maydell@linaro.org> wrote:
> This patchset fixes the build on NetBSD by making sure we only
> build the ivshmem-client and ivshmem-server tools if the host OS
> actually supports ivshmem. (Previously we were only gating building
> of the within-QEMU ivshmem PCI device.)

Markus pointed out that I'd accidentally only sent out the
cover letter -- I've just resent the whole set.

thanks
-- PMM