Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
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 > --- > 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 00..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 > +# > +# 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.XX); > +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. > +""" > + > +def build_image(self, img, rebuild=False): > +if os.path.exists(img) and not rebuild: > +return > +cimg = > self._download_with_cache("http://download.patchew.org/openbsd.img.xz";) > +img_tmp_xz = img + ".tmp.xz" > +img_tmp = img + ".tmp" > +subprocess.check_call(["cp", "-f", cimg, img_tmp_xz]) > +subprocess.check_call(["xz", "-df", img_tmp_xz]) > +subprocess.check_call(["mv", img_tmp, img]) > + > +if __name__ == "__main__": > +sys.exit(basevm.main(OpenBSDVM)) >
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
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 >> --- >> 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 00..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 >> +# >> +# 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.XX); >> +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? >> +""" >> + >> +def build_image(self, img, rebuild=False): >> +if os.path.exists(img) and not rebuild: >> +return >> +cimg = >> self._download_with_cache("http://download.patchew.org/openbsd.img.xz";) >> +img_tmp_xz = img + ".tmp.xz" >> +img_tmp = img + ".tmp" >> +subprocess.check_call(["cp", "-f", cimg, img_tmp_xz]) >> +subprocess.check_call(["xz", "-df", img_tmp_xz]) >> +subprocess.check_call(["mv", img_tmp, img]) >> + >> +if __name__ == "__main__": >> +sys.exit(basevm.main(OpenBSDVM)) >> > signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
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 >>> --- >>> 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 00..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 >>> +# >>> +# 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.XX); >>> +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: (gdb) bt #0 0x17e3c156c50a in _thread_sys___syscall () at {standard input}:5 #1 0x17e3c15e5d7a in *_libc_mmap (addr=Variable "addr" is not available. ) at /usr/local/lib/libc/sys/mmap.c:47 #2 0x17e17d9abc8b in alloc_code_gen_buffer () at /usr/local/qemu/accel/tcg/translate-all.c:1064 #3 0x17e17d9abd04 in code_gen_alloc (tb_size=0) at /usr/local/qemu/accel/tcg/translate-all.c:1112 #4 0x17e17d9abe81 in tcg_exec_init (tb_size=0) at /usr/local/qemu/accel/tcg/translate-all.c:1149 #5 0x17e17d9897e9 in tcg_init (ms=0x17e45e456800) at /usr/local/qemu/accel/tcg/tcg-all.c:66 #6 0x17e17d9891b8 in accel_init_machine (acc=0x17e3c3f50800, ms=0x17e45e456800) at /usr/local/qemu/accel/accel.c:63 #7 0x17e17d989312 in configure_accelerator (ms=0x17e45e456800, progname=0x7f7f07b0 "lm32-softmmu/qemu-system-lm32") at /usr/local/qemu/accel/accel.c:111 #8 0x17e17d9d8616 in main (argc=1, argv=0x7f7f06b8, envp=0x7f7f06c8) at vl.c:4325 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. > >>> +""" >>> + >>> +def build_image(self, img, rebuild=False): >>> +if os.path.exists(img) and not rebuild: >>> +return >>> +cimg = >>> self._download_with_cache("http://download.patchew.org/openbsd.img.xz";) >>> +img_tmp_xz = img + ".tmp.xz" >>> +img_tmp = img + ".tmp" >>> +subprocess.check_call(["cp", "-f", cimg, img_tmp_xz]) >>> +subprocess.check_call(["xz", "-df", img_tmp_xz]) >>> +subprocess.check_call(["mv", img_tmp, img]) >>> + >>> +if __name__ == "__main__": >>> +sys.exit(basevm.main(OpenBSDVM)) >>> >> > > signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
On Thu, 24 Jan 2019 at 15:52, Philippe Mathieu-Daudé wrote: > After spending various hours trying to fix various issues on OpenBSD, I > notice that we never ran tests on this OS. When I was running tests on a custom OpenBSD VM rather than using the tests/vm one I'm pretty sure I used to run "make check" on it, so I was a bit surprised to see that tests weren't run for the tests/vm setup, but I never cared enough to try to find out why... thanks -- PMM
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
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 > >>> --- > >>> 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 00..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 > >>> +# > >>> +# 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.XX); > >>> +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 :|
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
On 1/24/2019 11:52 AM, Daniel P. Berrangé wrote: 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 --- 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 00..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 +# +# 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.XX); +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." Yes, this policy change was introduced with 6.0. Our ports tree has an option which results in the QEMU binaries being linked with "-z wxneeded".
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
On 2019-01-25 01:48, Brad Smith wrote: > On 1/24/2019 11:52 AM, Daniel P. Berrangé wrote: > >> 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 >> --- >> 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 00..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 >> +# >> +# 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.XX); >> + 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." > > Yes, this policy change was introduced with 6.0. > > Our ports tree has an option which results in the QEMU binaries being > linked with "-z wxneeded". Then it's maybe high time to send such changes upstream now ;-) Thomas
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
On 1/25/19 1:48 AM, Brad Smith wrote: > On 1/24/2019 11:52 AM, Daniel P. Berrangé wrote: > >> 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 >> --- >> 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 00..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 >> +# >> +# 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.XX); >> + 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." > > Yes, this policy change was introduced with 6.0. > > Our ports tree has an option which results in the QEMU binaries being > linked with "-z wxneeded". I was preparing a draft about deprecating/removing OpenBSD support because it is broken/untested... For sure it is untested. /me feeling he lost 2 days...
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
On 1/25/2019 1:24 AM, Thomas Huth wrote: On 2019-01-25 01:48, Brad Smith wrote: On 1/24/2019 11:52 AM, Daniel P. Berrangé wrote: 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 --- 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 00..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 +# +# 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.XX); + 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." Yes, this policy change was introduced with 6.0. Our ports tree has an option which results in the QEMU binaries being linked with "-z wxneeded". Then it's maybe high time to send such changes upstream now ;-) I have not considered submitting such a patch as it's just a workaround for an issue within QEMU. Everything else that we had as local patches or local build fiddling to build things properly has been integrated in some manner.
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
On Fri, 25 Jan 2019 at 18:36, Brad Smith wrote: > > On 1/25/2019 1:24 AM, Thomas Huth wrote: > > > On 2019-01-25 01:48, Brad Smith wrote: > >> Our ports tree has an option which results in the QEMU binaries being > >> linked with "-z wxneeded". > > Then it's maybe high time to send such changes upstream now ;-) > > > I have not considered submitting such a patch as it's just a workaround > for an > issue within QEMU. Everything else that we had as local patches or local > build > fiddling to build things properly has been integrated in some manner. We'll happily take a patch that fixes the underlying issue properly if you'd prefer... thanks -- PMM
Re: [Qemu-devel] [PATCH RFC 8/9] tests: Add OpenBSD image
On 1/25/19 7:38 PM, Peter Maydell wrote: > On Fri, 25 Jan 2019 at 18:36, Brad Smith wrote: >> >> On 1/25/2019 1:24 AM, Thomas Huth wrote: >> >>> On 2019-01-25 01:48, Brad Smith wrote: Our ports tree has an option which results in the QEMU binaries being linked with "-z wxneeded". >>> Then it's maybe high time to send such changes upstream now ;-) >> >> >> I have not considered submitting such a patch as it's just a workaround >> for an >> issue within QEMU. Everything else that we had as local patches or local >> build >> fiddling to build things properly has been integrated in some manner. > > We'll happily take a patch that fixes the underlying issue properly > if you'd prefer... I sent "configure: Disable W^X on OpenBSD" to help upstream developers to test their patches on OpenBSD here: https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg06674.html Regards, Phil.