On Thu, Jan 24, 2019 at 05:10:19PM +0100, Philippe Mathieu-Daudé wrote: > On 1/24/19 4:56 PM, Kamil Rytarowski wrote: > > On 24.01.2019 16:52, Philippe Mathieu-Daudé wrote: > >> On 8/16/17 9:21 AM, Fam Zheng wrote: > >>> The image is prepared following instructions as in: > >>> > >>> https://wiki.qemu.org/Hosts/BSD > >>> > >>> Signed-off-by: Fam Zheng <f...@redhat.com> > >>> --- > >>> tests/vm/openbsd | 45 +++++++++++++++++++++++++++++++++++++++++++++ > >>> 1 file changed, 45 insertions(+) > >>> create mode 100755 tests/vm/openbsd > >>> > >>> diff --git a/tests/vm/openbsd b/tests/vm/openbsd > >>> new file mode 100755 > >>> index 0000000000..d37ff83a59 > >>> --- /dev/null > >>> +++ b/tests/vm/openbsd > >>> @@ -0,0 +1,45 @@ > >>> +#!/usr/bin/env python > >>> +# > >>> +# OpenBSD VM image > >>> +# > >>> +# Copyright (C) 2017 Red Hat Inc. > >>> +# > >>> +# Authors: > >>> +# Fam Zheng <f...@redhat.com> > >>> +# > >>> +# This work is licensed under the terms of the GNU GPL, version 2. See > >>> +# the COPYING file in the top-level directory. > >>> +# > >>> + > >>> +import os > >>> +import sys > >>> +import logging > >>> +import subprocess > >>> +import tempfile > >>> +import time > >>> +import basevm > >>> + > >>> +class OpenBSDVM(basevm.BaseVM): > >>> + name = "openbsd" > >>> + BUILD_SCRIPT = """ > >>> + set -e; > >>> + cd $(mktemp -d /var/tmp/qemu-test.XXXXXX); > >>> + tar -xf /dev/rsd1c; > >>> + ./configure --cc=x86_64-unknown-openbsd6.1-gcc-4.9.4 > >>> --python=python2.7 {configure_opts}; > >>> + gmake -j{jobs}; > >>> + # XXX: "gmake check" seems to always hang or fail > >>> + #gmake check; > >> > >> OK, Now it makes more sense... > >> > >> After spending various hours trying to fix various issues on OpenBSD, I > >> notice that we never ran tests on this OS. > >> The only binary I can run is qemu-img, the rest seems useless. > >> I'll summarize in a different thread. > >> > > > > Is this W^X related? > > Part of it could be but I'm not sure. > > The 6.1 VM provided by Fam has /usr/local mounted with wxallowed, I > tried building/running there and nothing changed, mmap() still returns > ENOTSUP:
ENOTSUP from mmap is certainly what you'd expect from the W^X scenario https://undeadly.org/cgi?action=article&sid=20160527203200 "W^X violations are no longer permitted by default. A kernel log message is generated, and mprotect/mmap return ENOTSUP. If the sysctl(8) flag kern.wxabort is set then a SIGABRT occurs instead, for gdb use or coredump creation." > Since the current script build into /var/tmp (which is symlinked to > /tmp) I also mounted /tmp wxallowed using the following patch: > > -- >8 -- > --- a/tests/vm/openbsd > +++ b/tests/vm/openbsd > @@ -39,6 +39,12 @@ class OpenBSDVM(basevm.BaseVM): > if os.path.exists(img): > os.rename(img_tmp, img) > + self.boot(img) > + self.wait_ssh() > + self.ssh_root_check("sed -E -i 's_(/tmp\ ffs)\ ([^\ ]*)_\\1 > \\2,wxallowed_' /etc/fstab") > + self.ssh_root_check("cat /etc/fstab") > + self.ssh_root("halt -p") > + self.wait() > --- > > $ mount > /dev/sd0a on / type ffs (local) > /dev/sd0k on /home type ffs (local, nodev, nosuid) > /dev/sd0d on /tmp type ffs (local, nodev, nosuid, wxallowed) > /dev/sd0f on /usr type ffs (local, nodev) > /dev/sd0g on /usr/X11R6 type ffs (local, nodev) > /dev/sd0h on /usr/local type ffs (local, nodev, wxallowed) > /dev/sd0j on /usr/obj type ffs (local, nodev, nosuid) > /dev/sd0i on /usr/src type ffs (local, nodev, nosuid) > /dev/sd0e on /var type ffs (local, nodev, nosuid) > > Still no progress. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|