* [PR PATCH] qemu{,-user-static}: fix mremap(2) errno codes
@ 2019-06-30 16:00 voidlinux-github
2019-07-01 12:31 ` [PR PATCH] [Merged]: " voidlinux-github
0 siblings, 1 reply; 2+ messages in thread
From: voidlinux-github @ 2019-06-30 16:00 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 641 bytes --]
There is a new pull request by pullmoll against master on the void-packages repository
https://github.com/pullmoll/void-packages qemu-user-static-mremap
https://github.com/void-linux/void-packages/pull/12757
qemu{,-user-static}: fix mremap(2) errno codes
This fixes issue #11426 and we can build `webkit2gtk` for all targets.
Would be nice if someone can confirm my results, i.e. build `qemu-user-static` and cross build `webkit2gtk` for `armv6l-musl` and/or `armv7l-musl`.
Note: the patches are shared between `qemu` and `qemu-user-static`.
A patch file from https://github.com/void-linux/void-packages/pull/12757.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-qemu-user-static-mremap-12757.patch --]
[-- Type: application/text/x-diff, Size: 4622 bytes --]
From c12b76a0eb9445ae36db371bd3c763c884d4869f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= <pullmoll@t-online.de>
Date: Sun, 30 Jun 2019 17:53:10 +0200
Subject: [PATCH 1/3] qemu: fix mremap(2) errno codes
[ci skip]
---
srcpkgs/qemu/patches/mmap-mremap-efault.patch | 41 +++++++++++++++++++
srcpkgs/qemu/template | 2 +-
2 files changed, 42 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/qemu/patches/mmap-mremap-efault.patch
diff --git a/srcpkgs/qemu/patches/mmap-mremap-efault.patch b/srcpkgs/qemu/patches/mmap-mremap-efault.patch
new file mode 100644
index 00000000000..a5eaa7906c8
--- /dev/null
+++ b/srcpkgs/qemu/patches/mmap-mremap-efault.patch
@@ -0,0 +1,41 @@
+Source: @pullmoll
+Upstream: no
+Reason: errno=EFAULT when the address passed to mremap(2) is not valid
+
+See Rich Felker's comment at https://www.openwall.com/lists/musl/2017/06/21/2 for
+why we need to return errno as described in man mremap(2) from qemu-user-static.
+Also speed up the loop when checking for increasing the mappings size to go
+in steps of TARGET_PAGE_SIZE and OR-in a check for the very last byte of the range.
+
+--- linux-user/mmap.c 2019-04-23 20:14:46.000000000 +0200
++++ linux-user/mmap.c 2019-06-30 16:31:26.545637450 +0200
+@@ -692,7 +692,7 @@
+ if (!guest_range_valid(old_addr, old_size) ||
+ ((flags & MREMAP_FIXED) &&
+ !guest_range_valid(new_addr, new_size))) {
+- errno = ENOMEM;
++ errno = EFAULT;
+ return -1;
+ }
+
+@@ -728,9 +728,10 @@
+ abi_ulong addr;
+ for (addr = old_addr + old_size;
+ addr < old_addr + new_size;
+- addr++) {
++ addr += TARGET_PAGE_SIZE) {
+ prot |= page_get_flags(addr);
+ }
++ prot |= page_get_flags(old_addr + new_size - 1);
+ }
+ if (prot == 0) {
+ host_addr = mremap(g2h(old_addr), old_size, new_size, flags);
+@@ -738,7 +739,7 @@
+ mmap_reserve(old_addr + old_size, new_size - old_size);
+ }
+ } else {
+- errno = ENOMEM;
++ errno = EFAULT;
+ host_addr = MAP_FAILED;
+ }
+ /* Check if address fits target address space */
diff --git a/srcpkgs/qemu/template b/srcpkgs/qemu/template
index 0b2ab2ee7da..3dc198185ad 100644
--- a/srcpkgs/qemu/template
+++ b/srcpkgs/qemu/template
@@ -1,7 +1,7 @@
# Template file for 'qemu'
pkgname=qemu
version=4.0.0
-revision=3
+revision=4
short_desc="Open Source Processor Emulator"
maintainer="Juan RP <xtraeme@voidlinux.org>"
license="GPL-2.0-or-later, LGPL-2.1-or-later"
From ccebb850319950ab5b8d8491ffa7ba56d107fa2e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= <pullmoll@t-online.de>
Date: Sun, 30 Jun 2019 17:19:18 +0200
Subject: [PATCH 2/3] qemu-user-static: fix mremap(2) errno codes
This fixes #11426
[ci skip]
---
srcpkgs/qemu-user-static/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/qemu-user-static/template b/srcpkgs/qemu-user-static/template
index 6abbb10875b..9b587f1f71e 100644
--- a/srcpkgs/qemu-user-static/template
+++ b/srcpkgs/qemu-user-static/template
@@ -1,7 +1,7 @@
# Template file for 'qemu-user-static'
pkgname=qemu-user-static
version=4.0.0
-revision=1
+revision=2
wrksrc="qemu-${version}"
hostmakedepends="pkg-config automake python"
makedepends="dtc-devel libglib-static pixman-devel libuuid-devel"
From acf65971b5c4b6005bc4925a07576253ce47de76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= <pullmoll@t-online.de>
Date: Sun, 30 Jun 2019 17:21:32 +0200
Subject: [PATCH 3/3] webkit2gtk: enable gir for all targets
[ci skip]
---
srcpkgs/webkit2gtk/template | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/srcpkgs/webkit2gtk/template b/srcpkgs/webkit2gtk/template
index eb6d61e8c29..9918fd28639 100644
--- a/srcpkgs/webkit2gtk/template
+++ b/srcpkgs/webkit2gtk/template
@@ -36,14 +36,7 @@ CXXFLAGS="-Wno-expansion-to-defined"
# Package build options
build_options="gir wayland x11 jit sampling_profiler"
-build_options_default="wayland x11"
-
-case "$XBPS_TARGET_MACHINE" in
- arm*-musl) # cross building hangs for hours in g-ir-scanner-qemuwrapper
- broken="cross compiling from x86_64 to arm*-musl stalls the builders"
- ;;
- *) build_options_default+=" gir"
-esac
+build_options_default="gir wayland x11"
desc_option_jit="Enable JustInTime JS support"
desc_option_sampling_profiler="Toggle sampling profiler support (disabled on musl)"
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PR PATCH] [Merged]: qemu{,-user-static}: fix mremap(2) errno codes
2019-06-30 16:00 [PR PATCH] qemu{,-user-static}: fix mremap(2) errno codes voidlinux-github
@ 2019-07-01 12:31 ` voidlinux-github
0 siblings, 0 replies; 2+ messages in thread
From: voidlinux-github @ 2019-07-01 12:31 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 471 bytes --]
There's a merged pull request on the void-packages repository
qemu{,-user-static}: fix mremap(2) errno codes
https://github.com/void-linux/void-packages/pull/12757
Description: This fixes issue #11426 and we can build `webkit2gtk` for all targets.
Would be nice if someone can confirm my results, i.e. build `qemu-user-static` and cross build `webkit2gtk` for `armv6l-musl` and/or `armv7l-musl`.
Note: the patches are shared between `qemu` and `qemu-user-static`.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-07-01 12:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-30 16:00 [PR PATCH] qemu{,-user-static}: fix mremap(2) errno codes voidlinux-github
2019-07-01 12:31 ` [PR PATCH] [Merged]: " voidlinux-github
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).