Date   

Re: [PATCH] podman: do not build or install docs

Bruce Ashfield
 

On Thu, May 19, 2022 at 3:39 PM <sakib.sajal@...> wrote:

When using oe-core, podman do_compile fails with the error:
.../podman/4.0.1+gitAUTOINC+717edd7b84-r0/recipe-sysroot-native/usr/bin/go-md2man:
No such file or directory
make: *** [Makefile:482: docs/source/markdown/podman-attach.1] Error 127
Whereas when using poky, the build passes without issues.

Investigating the native go-md2man binaries from both oe-core and poky
builds using ldd, it appears that the issue lies with how go-md2man is linked.
On oe-core it is linked to the loader in recipe sysroot:
tmp-glibc/work/x86_64-linux/go-md2man-native/1.0.10+gitAUTOINC+f79a8a8ca6-r0/recipe-sysroot-native/usr/lib/ld-linux-x86-64.so.2
=> /lib64/ld-linux-x86-64.so.2 (0x00007f4da90f0000)

whereas on poky its linked to sysroot-uninative:
tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2
=> /lib64/ld-linux-x86-64.so.2 (0x00007f9c82c71000)

I have confirmed that this issue exists on both Ubuntu 18.04 and
Fedora 35.

Rather have this fail for people using only oe-core, skip generating the
documentation for podman until the problem can be resolved.
I'm building podman nightly without seeing this error.

So your message about "people using only oe-core" doesn't make sense,
can you clarify ?

Bruce



Signed-off-by: Sakib Sajal <sakib.sajal@...>
---
...efile-do-not-compile-or-install-docs.patch | 35 +++++++++++++++++++
recipes-containers/podman/podman_git.bb | 1 +
2 files changed, 36 insertions(+)
create mode 100644 recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch

diff --git a/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch b/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch
new file mode 100644
index 0000000..1363ee8
--- /dev/null
+++ b/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch
@@ -0,0 +1,35 @@
+From 7913cac21842f56ae9752fb0c253f838bab04ae8 Mon Sep 17 00:00:00 2001
+From: Sakib Sajal <sakib.sajal@...>
+Date: Fri, 13 May 2022 13:06:29 -0400
+Subject: [PATCH] Makefile: do not compile or install docs
+
+Signed-off-by: Sakib Sajal <sakib.sajal@...>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/import/Makefile b/src/import/Makefile
+index cb230d8e9..7e07ab61a 100644
+--- a/src/import/Makefile
++++ b/src/import/Makefile
+@@ -202,7 +202,7 @@ GV_SHA=e943b1806d94d387c4c38d96719432d50a84bbd0
+ default: all
+
+ .PHONY: all
+-all: binaries docs
++all: binaries
+
+ .PHONY: binaries
+ binaries: podman podman-remote rootlessport ## Build podman, podman-remote and rootlessport binaries
+@@ -754,7 +754,7 @@ package-install: package ## Install rpm packages
+ /usr/bin/podman info # will catch a broken conmon
+
+ .PHONY: install
+-install: .gopathok install.bin install.remote install.man install.systemd ## Install binaries to system locations
++install: .gopathok install.bin install.remote install.systemd ## Install binaries to system locations
+
+ .PHONY: install.catatonit
+ install.catatonit:
+--
+2.33.0
+
diff --git a/recipes-containers/podman/podman_git.bb b/recipes-containers/podman/podman_git.bb
index f805cb6..8339a16 100644
--- a/recipes-containers/podman/podman_git.bb
+++ b/recipes-containers/podman/podman_git.bb
@@ -20,6 +20,7 @@ DEPENDS = " \
SRCREV = "717edd7b844dcd66468f5d991991d87e9fc14c12"
SRC_URI = " \
git://github.com/containers/libpod.git;branch=v4.0;protocol=https \
+ file://0001-Makefile-do-not-compile-or-install-docs.patch \
"

LICENSE = "Apache-2.0"
--
2.33.0




--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


[PATCH] buildah: add recipe for buildah v1.26

sakib.sajal@...
 

buildah is a tool that facilitates building OCI container images.

Signed-off-by: Sakib Sajal <sakib.sajal@...>
---
recipes-containers/buildah/buildah_git.bb | 57 +++++++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 recipes-containers/buildah/buildah_git.bb

diff --git a/recipes-containers/buildah/buildah_git.bb b/recipes-containers/buildah/buildah_git.bb
new file mode 100644
index 0000000..024e82c
--- /dev/null
+++ b/recipes-containers/buildah/buildah_git.bb
@@ -0,0 +1,57 @@
+HOMEPAGE = "https://buildah.io"
+SUMMARY = "A tool that facilitates building OCI container images."
+DESCRIPTION = "A tool that facilitates building OCI container images."
+
+# Apache-2.0 for containerd
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/github.com/containers/buildah/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+S = "${WORKDIR}/git"
+
+BUILDAH_VERSION = "1.26"
+SRCREV_buildah = "0a9d6e6eaef2e2e7936313d449a4e226022eb865"
+
+PV = "${BUILDAH_VERSION}"
+
+inherit go
+inherit goarch
+inherit pkgconfig
+
+GO_IMPORT = "github.com/containers/buildah"
+GO_INSTALL = "${GO_IMPORT}"
+GO_WORKDIR = "${GO_INSTALL}"
+GOBUILDFLAGS += "-mod vendor"
+
+SRC_URI = " \
+ git://github.com/containers/buildah;branch=release-${BUILDAH_VERSION};name=buildah;protocol=https \
+ "
+
+DEPENDS = "libdevmapper btrfs-tools gpgme"
+RDEPENDS:${PN} = "cgroup-lite fuse-overlayfs libdevmapper podman"
+RDEPENDS:${PN}-dev = "bash perl"
+
+do_compile:prepend() {
+ cd ${S}/src/github.com/containers/buildah
+}
+
+go_do_compile() {
+ export TMPDIR="${GOTMPDIR}"
+ if [ -n "${GO_INSTALL}" ]; then
+ if [ -n "${GO_LINKSHARED}" ]; then
+ ${GO} install ${GOBUILDFLAGS} ./cmd/buildah
+ ${GO} install ${GOBUILDFLAGS} ./tests/imgtype/imgtype.go
+ ${GO} install ${GOBUILDFLAGS} ./tests/copy/copy.go
+ rm -rf ${B}/bin
+ fi
+ ${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} ./cmd/buildah
+ ${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} ./tests/imgtype/imgtype.go
+ ${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} ./tests/copy/copy.go
+ fi
+}
+
+do_install:append() {
+ dest_dir=${D}/${sysconfdir}/containers
+ mkdir -p ${dest_dir}
+ install -m 666 ${S}/src/github.com/containers/buildah/docs/samples/registries.conf ${dest_dir}/buildah.registries.conf.sample
+ install -m 666 ${S}/src/github.com/containers/buildah/tests/policy.json ${dest_dir}/buildah.policy.json.sample
+}
--
2.33.0


Re: [PATCH] podman: do not build or install docs

sakib.sajal@...
 

I would love to resolve the issue, but I am trying to make progress as I am going to submit a recipe for buildah which depends on podman.

Sakib

On 2022-05-19 15:39, sakib.sajal@... wrote:
When using oe-core, podman do_compile fails with the error:
.../podman/4.0.1+gitAUTOINC+717edd7b84-r0/recipe-sysroot-native/usr/bin/go-md2man:
No such file or directory
make: *** [Makefile:482: docs/source/markdown/podman-attach.1] Error 127
Whereas when using poky, the build passes without issues.

Investigating the native go-md2man binaries from both oe-core and poky
builds using ldd, it appears that the issue lies with how go-md2man is linked.
On oe-core it is linked to the loader in recipe sysroot:
tmp-glibc/work/x86_64-linux/go-md2man-native/1.0.10+gitAUTOINC+f79a8a8ca6-r0/recipe-sysroot-native/usr/lib/ld-linux-x86-64.so.2
=> /lib64/ld-linux-x86-64.so.2 (0x00007f4da90f0000)

whereas on poky its linked to sysroot-uninative:
tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2
=> /lib64/ld-linux-x86-64.so.2 (0x00007f9c82c71000)

I have confirmed that this issue exists on both Ubuntu 18.04 and
Fedora 35.

Rather have this fail for people using only oe-core, skip generating the
documentation for podman until the problem can be resolved.

Signed-off-by: Sakib Sajal <sakib.sajal@...>
---
...efile-do-not-compile-or-install-docs.patch | 35 +++++++++++++++++++
recipes-containers/podman/podman_git.bb | 1 +
2 files changed, 36 insertions(+)
create mode 100644 recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch

diff --git a/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch b/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch
new file mode 100644
index 0000000..1363ee8
--- /dev/null
+++ b/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch
@@ -0,0 +1,35 @@
+From 7913cac21842f56ae9752fb0c253f838bab04ae8 Mon Sep 17 00:00:00 2001
+From: Sakib Sajal <sakib.sajal@...>
+Date: Fri, 13 May 2022 13:06:29 -0400
+Subject: [PATCH] Makefile: do not compile or install docs
+
+Signed-off-by: Sakib Sajal <sakib.sajal@...>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/import/Makefile b/src/import/Makefile
+index cb230d8e9..7e07ab61a 100644
+--- a/src/import/Makefile
++++ b/src/import/Makefile
+@@ -202,7 +202,7 @@ GV_SHA=e943b1806d94d387c4c38d96719432d50a84bbd0
+ default: all
+
+ .PHONY: all
+-all: binaries docs
++all: binaries
+
+ .PHONY: binaries
+ binaries: podman podman-remote rootlessport ## Build podman, podman-remote and rootlessport binaries
+@@ -754,7 +754,7 @@ package-install: package ## Install rpm packages
+ /usr/bin/podman info # will catch a broken conmon
+
+ .PHONY: install
+-install: .gopathok install.bin install.remote install.man install.systemd ## Install binaries to system locations
++install: .gopathok install.bin install.remote install.systemd ## Install binaries to system locations
+
+ .PHONY: install.catatonit
+ install.catatonit:
+--
+2.33.0
+
diff --git a/recipes-containers/podman/podman_git.bb b/recipes-containers/podman/podman_git.bb
index f805cb6..8339a16 100644
--- a/recipes-containers/podman/podman_git.bb
+++ b/recipes-containers/podman/podman_git.bb
@@ -20,6 +20,7 @@ DEPENDS = " \
SRCREV = "717edd7b844dcd66468f5d991991d87e9fc14c12"
SRC_URI = " \
git://github.com/containers/libpod.git;branch=v4.0;protocol=https \
+ file://0001-Makefile-do-not-compile-or-install-docs.patch \
"
LICENSE = "Apache-2.0"


[PATCH] podman: do not build or install docs

sakib.sajal@...
 

When using oe-core, podman do_compile fails with the error:
.../podman/4.0.1+gitAUTOINC+717edd7b84-r0/recipe-sysroot-native/usr/bin/go-md2man:
No such file or directory
make: *** [Makefile:482: docs/source/markdown/podman-attach.1] Error 127
Whereas when using poky, the build passes without issues.

Investigating the native go-md2man binaries from both oe-core and poky
builds using ldd, it appears that the issue lies with how go-md2man is linked.
On oe-core it is linked to the loader in recipe sysroot:
tmp-glibc/work/x86_64-linux/go-md2man-native/1.0.10+gitAUTOINC+f79a8a8ca6-r0/recipe-sysroot-native/usr/lib/ld-linux-x86-64.so.2
=> /lib64/ld-linux-x86-64.so.2 (0x00007f4da90f0000)

whereas on poky its linked to sysroot-uninative:
tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2
=> /lib64/ld-linux-x86-64.so.2 (0x00007f9c82c71000)

I have confirmed that this issue exists on both Ubuntu 18.04 and
Fedora 35.

Rather have this fail for people using only oe-core, skip generating the
documentation for podman until the problem can be resolved.

Signed-off-by: Sakib Sajal <sakib.sajal@...>
---
...efile-do-not-compile-or-install-docs.patch | 35 +++++++++++++++++++
recipes-containers/podman/podman_git.bb | 1 +
2 files changed, 36 insertions(+)
create mode 100644 recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch

diff --git a/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch b/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch
new file mode 100644
index 0000000..1363ee8
--- /dev/null
+++ b/recipes-containers/podman/files/0001-Makefile-do-not-compile-or-install-docs.patch
@@ -0,0 +1,35 @@
+From 7913cac21842f56ae9752fb0c253f838bab04ae8 Mon Sep 17 00:00:00 2001
+From: Sakib Sajal <sakib.sajal@...>
+Date: Fri, 13 May 2022 13:06:29 -0400
+Subject: [PATCH] Makefile: do not compile or install docs
+
+Signed-off-by: Sakib Sajal <sakib.sajal@...>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/import/Makefile b/src/import/Makefile
+index cb230d8e9..7e07ab61a 100644
+--- a/src/import/Makefile
++++ b/src/import/Makefile
+@@ -202,7 +202,7 @@ GV_SHA=e943b1806d94d387c4c38d96719432d50a84bbd0
+ default: all
+
+ .PHONY: all
+-all: binaries docs
++all: binaries
+
+ .PHONY: binaries
+ binaries: podman podman-remote rootlessport ## Build podman, podman-remote and rootlessport binaries
+@@ -754,7 +754,7 @@ package-install: package ## Install rpm packages
+ /usr/bin/podman info # will catch a broken conmon
+
+ .PHONY: install
+-install: .gopathok install.bin install.remote install.man install.systemd ## Install binaries to system locations
++install: .gopathok install.bin install.remote install.systemd ## Install binaries to system locations
+
+ .PHONY: install.catatonit
+ install.catatonit:
+--
+2.33.0
+
diff --git a/recipes-containers/podman/podman_git.bb b/recipes-containers/podman/podman_git.bb
index f805cb6..8339a16 100644
--- a/recipes-containers/podman/podman_git.bb
+++ b/recipes-containers/podman/podman_git.bb
@@ -20,6 +20,7 @@ DEPENDS = " \
SRCREV = "717edd7b844dcd66468f5d991991d87e9fc14c12"
SRC_URI = " \
git://github.com/containers/libpod.git;branch=v4.0;protocol=https \
+ file://0001-Makefile-do-not-compile-or-install-docs.patch \
"

LICENSE = "Apache-2.0"
--
2.33.0


Re: [PATCH v2 4/4] xen: Disable PCI on qemuarm with Xen

Bertrand Marquis
 

Hi Bruce,

On 18 May 2022, at 18:59, Bruce Ashfield <bruce.ashfield@...> wrote:

On Tue, May 17, 2022 at 8:14 PM Christopher Clark
<christopher.w.clark@...> wrote:

On Tue, May 10, 2022 at 8:35 AM Bertrand Marquis
<bertrand.marquis@...> wrote:

Remove the pci node from the qemu device tree when runqemu is used with
xen-qemuboot.

Linux is ending up in an infinite loop when trying to access PCI
configuration space when running on top of Xen on arm32.
As we do not need or support any of the devices on PCI on arm32 at the
moment, just remove the node from the device tree generated by qemu.

The problem does not appear at the moment without Xen and it is unclear
why it is with Xen.
This will be investigated but in the meantime provide a working
configuration for users.

Signed-off-by: Bertrand Marquis <bertrand.marquis@...>
Thanks for this - my review is from inspecting the patch applied; I
have yet to test it but there's no need to hold this back with
positive reports now from Bruce and Bertrand.

Reviewed-by: Christopher Clark <christopher.w.clark@...>

thanks,
Everything is merged to master and kirkstone.
Great, thanks a lot :-)

Cheers
Bertrand


Bruce

Christopher

---
classes/qemuboot-xen-dtb.bbclass | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

diff --git a/classes/qemuboot-xen-dtb.bbclass b/classes/qemuboot-xen-dtb.bbclass
index d43d23a..1f17a86 100644
--- a/classes/qemuboot-xen-dtb.bbclass
+++ b/classes/qemuboot-xen-dtb.bbclass
@@ -63,6 +63,21 @@ write_lops_xen_section() {
EOF
}

+write_lop_rm_pci() {
+ cat <<EOF >"$1"
+/dts-v1/;
+/ {
+ compatible = "system-device-tree-v1";
+ lops {
+ lop_1 {
+ compatible = "system-device-tree-v1,lop,modify";
+ modify = "/pcie@10000000::";
+ };
+ };
+};
+EOF
+}
+
write_lop_add_to_xen_cmdline() {
EXTRA_XEN_BOOTARGS="$2"
cat <<EOF >"$1"
@@ -135,6 +150,13 @@ generate_xen_qemuboot_dtb() {
write_lop_add_to_xen_cmdline "${B}/lop-xen-cmdline.dts" \
"${QB_XEN_CMDLINE_EXTRA}"

+ # On Qemu Arm32, Dom0 accessing PCI config space ends up in an
+ # infinite loop. Remove pci node from the device tree
+ if [ "${MACHINE}" = "qemuarm" ]; then
+ write_lop_rm_pci "${B}/lop-rm-pci.dts"
+ LOP_MODULE_ARGS="${LOP_MODULE_ARGS} -i ${B}/lop-rm-pci.dts"
+ fi
+
if [ -z "${QB_XEN_DOMAIN_MODULES}" ]; then
bbwarn "No domain modules: please set QB_XEN_DOMAIN_MODULES"
fi
--
2.25.1





--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Re: [PATCH v2 4/4] xen: Disable PCI on qemuarm with Xen

Bruce Ashfield
 

On Tue, May 17, 2022 at 8:14 PM Christopher Clark
<christopher.w.clark@...> wrote:

On Tue, May 10, 2022 at 8:35 AM Bertrand Marquis
<bertrand.marquis@...> wrote:

Remove the pci node from the qemu device tree when runqemu is used with
xen-qemuboot.

Linux is ending up in an infinite loop when trying to access PCI
configuration space when running on top of Xen on arm32.
As we do not need or support any of the devices on PCI on arm32 at the
moment, just remove the node from the device tree generated by qemu.

The problem does not appear at the moment without Xen and it is unclear
why it is with Xen.
This will be investigated but in the meantime provide a working
configuration for users.

Signed-off-by: Bertrand Marquis <bertrand.marquis@...>
Thanks for this - my review is from inspecting the patch applied; I
have yet to test it but there's no need to hold this back with
positive reports now from Bruce and Bertrand.

Reviewed-by: Christopher Clark <christopher.w.clark@...>

thanks,
Everything is merged to master and kirkstone.

Bruce

Christopher

---
classes/qemuboot-xen-dtb.bbclass | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

diff --git a/classes/qemuboot-xen-dtb.bbclass b/classes/qemuboot-xen-dtb.bbclass
index d43d23a..1f17a86 100644
--- a/classes/qemuboot-xen-dtb.bbclass
+++ b/classes/qemuboot-xen-dtb.bbclass
@@ -63,6 +63,21 @@ write_lops_xen_section() {
EOF
}

+write_lop_rm_pci() {
+ cat <<EOF >"$1"
+/dts-v1/;
+/ {
+ compatible = "system-device-tree-v1";
+ lops {
+ lop_1 {
+ compatible = "system-device-tree-v1,lop,modify";
+ modify = "/pcie@10000000::";
+ };
+ };
+};
+EOF
+}
+
write_lop_add_to_xen_cmdline() {
EXTRA_XEN_BOOTARGS="$2"
cat <<EOF >"$1"
@@ -135,6 +150,13 @@ generate_xen_qemuboot_dtb() {
write_lop_add_to_xen_cmdline "${B}/lop-xen-cmdline.dts" \
"${QB_XEN_CMDLINE_EXTRA}"

+ # On Qemu Arm32, Dom0 accessing PCI config space ends up in an
+ # infinite loop. Remove pci node from the device tree
+ if [ "${MACHINE}" = "qemuarm" ]; then
+ write_lop_rm_pci "${B}/lop-rm-pci.dts"
+ LOP_MODULE_ARGS="${LOP_MODULE_ARGS} -i ${B}/lop-rm-pci.dts"
+ fi
+
if [ -z "${QB_XEN_DOMAIN_MODULES}" ]; then
bbwarn "No domain modules: please set QB_XEN_DOMAIN_MODULES"
fi
--
2.25.1





--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Re: [PATCH] libvirt: Fix keeping restarting

Bruce Ashfield
 

merged

Bruce

On Tue, May 17, 2022 at 3:49 AM He Zhe <zhe.he@...> wrote:

LIBVIRTD_ARGS has been moved to libvirtd.service since v8.1.0. Move our mode
setting accordingly, otherwise libvirt would keep restarting and VMs would be
constantly stopped.

Signed-off-by: He Zhe <zhe.he@...>
---
recipes-extended/libvirt/libvirt_8.1.0.bb | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/recipes-extended/libvirt/libvirt_8.1.0.bb b/recipes-extended/libvirt/libvirt_8.1.0.bb
index f8deba45..89f82bf8 100644
--- a/recipes-extended/libvirt/libvirt_8.1.0.bb
+++ b/recipes-extended/libvirt/libvirt_8.1.0.bb
@@ -208,12 +208,11 @@ do_install:append() {
rmdir ${D}${prefix}/lib/systemd/system ${D}${prefix}/lib/systemd
fi

- # This variable is used by libvirtd.service to start libvirtd in the right mode
- sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/init.d/libvirtd
-
# We can't use 'notify' when we don't support 'sd_notify' dbus capabilities.
+ # Change default LIBVIRTD_ARGS to start libvirtd in the right mode.
sed -i -e 's/Type=notify/Type=forking/' \
-e '/Type=forking/a PIDFile=/run/libvirtd.pid' \
+ -e 's/\(Environment=LIBVIRTD_ARGS="--timeout 120"\)/#\1\nEnvironment=LIBVIRTD_ARGS="--listen --daemon"/' \
${D}/${systemd_system_unitdir}/libvirtd.service
fi

--
2.25.1
--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Re: [PATCH v2 4/4] xen: Disable PCI on qemuarm with Xen

Bertrand Marquis
 

Hi Christopher,

On 18 May 2022, at 01:14, Christopher Clark <christopher.w.clark@...> wrote:

On Tue, May 10, 2022 at 8:35 AM Bertrand Marquis
<bertrand.marquis@...> wrote:

Remove the pci node from the qemu device tree when runqemu is used with
xen-qemuboot.

Linux is ending up in an infinite loop when trying to access PCI
configuration space when running on top of Xen on arm32.
As we do not need or support any of the devices on PCI on arm32 at the
moment, just remove the node from the device tree generated by qemu.

The problem does not appear at the moment without Xen and it is unclear
why it is with Xen.
This will be investigated but in the meantime provide a working
configuration for users.

Signed-off-by: Bertrand Marquis <bertrand.marquis@...>
Thanks for this - my review is from inspecting the patch applied; I
have yet to test it but there's no need to hold this back with
positive reports now from Bruce and Bertrand.

Reviewed-by: Christopher Clark <christopher.w.clark@...>
Thanks and I agree.

This is an hack but I think it is better at the moment to have something running and I will create a task on my side to investigate this in the future.

Cheers
Bertrand


thanks,

Christopher

---
classes/qemuboot-xen-dtb.bbclass | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

diff --git a/classes/qemuboot-xen-dtb.bbclass b/classes/qemuboot-xen-dtb.bbclass
index d43d23a..1f17a86 100644
--- a/classes/qemuboot-xen-dtb.bbclass
+++ b/classes/qemuboot-xen-dtb.bbclass
@@ -63,6 +63,21 @@ write_lops_xen_section() {
EOF
}

+write_lop_rm_pci() {
+ cat <<EOF >"$1"
+/dts-v1/;
+/ {
+ compatible = "system-device-tree-v1";
+ lops {
+ lop_1 {
+ compatible = "system-device-tree-v1,lop,modify";
+ modify = "/pcie@10000000::";
+ };
+ };
+};
+EOF
+}
+
write_lop_add_to_xen_cmdline() {
EXTRA_XEN_BOOTARGS="$2"
cat <<EOF >"$1"
@@ -135,6 +150,13 @@ generate_xen_qemuboot_dtb() {
write_lop_add_to_xen_cmdline "${B}/lop-xen-cmdline.dts" \
"${QB_XEN_CMDLINE_EXTRA}"

+ # On Qemu Arm32, Dom0 accessing PCI config space ends up in an
+ # infinite loop. Remove pci node from the device tree
+ if [ "${MACHINE}" = "qemuarm" ]; then
+ write_lop_rm_pci "${B}/lop-rm-pci.dts"
+ LOP_MODULE_ARGS="${LOP_MODULE_ARGS} -i ${B}/lop-rm-pci.dts"
+ fi
+
if [ -z "${QB_XEN_DOMAIN_MODULES}" ]; then
bbwarn "No domain modules: please set QB_XEN_DOMAIN_MODULES"
fi
--
2.25.1




Re: [PATCH v2 4/4] xen: Disable PCI on qemuarm with Xen

Christopher Clark
 

On Tue, May 10, 2022 at 8:35 AM Bertrand Marquis
<bertrand.marquis@...> wrote:

Remove the pci node from the qemu device tree when runqemu is used with
xen-qemuboot.

Linux is ending up in an infinite loop when trying to access PCI
configuration space when running on top of Xen on arm32.
As we do not need or support any of the devices on PCI on arm32 at the
moment, just remove the node from the device tree generated by qemu.

The problem does not appear at the moment without Xen and it is unclear
why it is with Xen.
This will be investigated but in the meantime provide a working
configuration for users.

Signed-off-by: Bertrand Marquis <bertrand.marquis@...>
Thanks for this - my review is from inspecting the patch applied; I
have yet to test it but there's no need to hold this back with
positive reports now from Bruce and Bertrand.

Reviewed-by: Christopher Clark <christopher.w.clark@...>

thanks,

Christopher

---
classes/qemuboot-xen-dtb.bbclass | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

diff --git a/classes/qemuboot-xen-dtb.bbclass b/classes/qemuboot-xen-dtb.bbclass
index d43d23a..1f17a86 100644
--- a/classes/qemuboot-xen-dtb.bbclass
+++ b/classes/qemuboot-xen-dtb.bbclass
@@ -63,6 +63,21 @@ write_lops_xen_section() {
EOF
}

+write_lop_rm_pci() {
+ cat <<EOF >"$1"
+/dts-v1/;
+/ {
+ compatible = "system-device-tree-v1";
+ lops {
+ lop_1 {
+ compatible = "system-device-tree-v1,lop,modify";
+ modify = "/pcie@10000000::";
+ };
+ };
+};
+EOF
+}
+
write_lop_add_to_xen_cmdline() {
EXTRA_XEN_BOOTARGS="$2"
cat <<EOF >"$1"
@@ -135,6 +150,13 @@ generate_xen_qemuboot_dtb() {
write_lop_add_to_xen_cmdline "${B}/lop-xen-cmdline.dts" \
"${QB_XEN_CMDLINE_EXTRA}"

+ # On Qemu Arm32, Dom0 accessing PCI config space ends up in an
+ # infinite loop. Remove pci node from the device tree
+ if [ "${MACHINE}" = "qemuarm" ]; then
+ write_lop_rm_pci "${B}/lop-rm-pci.dts"
+ LOP_MODULE_ARGS="${LOP_MODULE_ARGS} -i ${B}/lop-rm-pci.dts"
+ fi
+
if [ -z "${QB_XEN_DOMAIN_MODULES}" ]; then
bbwarn "No domain modules: please set QB_XEN_DOMAIN_MODULES"
fi
--
2.25.1




Re: [PATCH v2 3/4] xen: enable qemuboot for arm32

Christopher Clark
 

On Tue, May 10, 2022 at 8:35 AM Bertrand Marquis
<bertrand.marquis@...> wrote:

Add required variables to generate a qemuboot devicetree for qemuarm.
With this change, Xen and dom0 can be started using runqemu.

Xen is started using qemu kernel argument and the devicetree is modified
to properly boot dom0 (which is loaded in memory).
This is using the same system as qemuarm64.

At this stage dom0 is hanging on PCI device scanning.

This patch is also using qemuarm64 as machine for arm64 bit instead of
aarch64 to allow adding support for other machine (an example a Xilinx
board that can be emulated with using an other xen machine).

Signed-off-by: Bertrand Marquis <bertrand.marquis@...>
Reviewed-by: Christopher Clark <christopher.w.clark@...>

Christopher

---
classes/qemuboot-xen-defaults.bbclass | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/classes/qemuboot-xen-defaults.bbclass b/classes/qemuboot-xen-defaults.bbclass
index c7e74c3..f1550cc 100644
--- a/classes/qemuboot-xen-defaults.bbclass
+++ b/classes/qemuboot-xen-defaults.bbclass
@@ -10,15 +10,21 @@ DOM0_KERNEL ??= "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}"
DOM0_KERNEL_LOAD_ADDR ??= "0x45000000"
QB_XEN_DOMAIN_MODULES ??= "${DOM0_KERNEL}:${DOM0_KERNEL_LOAD_ADDR}:multiboot,kernel"

-# Qemuboot for 64-bit Arm uses the QB_DEFAULT_KERNEL method to load Xen
+# Qemuboot for Arm uses the QB_DEFAULT_KERNEL method to load Xen
# and the device loader option for the dom0 kernel:
QB_OPT_APPEND:append:aarch64 = " \
-device loader,file=${DOM0_KERNEL},addr=${DOM0_KERNEL_LOAD_ADDR} \
"
-QB_DEFAULT_KERNEL:aarch64 = "xen-${MACHINE}"
+QB_OPT_APPEND:append:qemuarm = " \
+ -device loader,file=${DOM0_KERNEL},addr=${DOM0_KERNEL_LOAD_ADDR} \
+ "
+QB_DEFAULT_KERNEL:qemuarm64 = "xen-${MACHINE}"
+QB_DEFAULT_KERNEL:qemuarm = "xen-${MACHINE}"

# 64-bit Arm: gic version 3
-QB_MACHINE:aarch64 = "-machine virt,gic-version=3 -machine virtualization=true"
+QB_MACHINE:qemuarm64 = "-machine virt,gic-version=3 -machine virtualization=true"
+# 32-bit Arm
+QB_MACHINE:qemuarm = "-machine virt -machine virtualization=true"

# Increase the default qemu memory allocation to allow for the hypervisor.
# Use a weak assignment to allow for change of default and override elsewhere.
@@ -26,5 +32,9 @@ QB_MEM_VALUE ??= "512"
QB_MEM = "-m ${QB_MEM_VALUE}"

# 64-bit Arm: qemuboot with a device tree binary
-QB_DTB:aarch64 = "${IMAGE_NAME}.qemuboot.dtb"
-QB_DTB_LINK:aarch64 = "${IMAGE_LINK_NAME}.qemuboot.dtb"
+QB_DTB:qemuarm64 = "${IMAGE_NAME}.qemuboot.dtb"
+QB_DTB_LINK:qemuarm64 = "${IMAGE_LINK_NAME}.qemuboot.dtb"
+
+# 32-bit Arm: qemuboot with a device tree binary
+QB_DTB:qemuarm = "${IMAGE_NAME}.qemuboot.dtb"
+QB_DTB_LINK:qemuarm = "${IMAGE_LINK_NAME}.qemuboot.dtb"
--
2.25.1




Re: [PATCH v2 1/4] xen: Fix class inherit in xen-image

Christopher Clark
 

On Tue, May 10, 2022 at 8:35 AM Bertrand Marquis
<bertrand.marquis@...> wrote:

Remove inherit of qemuboot classes when not build for qemu in
xen-image-minimal.
When reverted the handling for only adding inherited classes for qemu
was kept but the line always inheriting them was kept to.
This patch is fixing that so that qemuboot classes are now only added
when the image is built for qemu.

This fixes commit 27e5ade0abc2660226389b8b62ef07d85f4b8758

Signed-off-by: Bertrand Marquis <bertrand.marquis@...>
Reviewed-by: Christopher Clark <christopher.w.clark@...>

thanks,

Christopher

---
recipes-extended/images/xen-image-minimal.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipes-extended/images/xen-image-minimal.bb b/recipes-extended/images/xen-image-minimal.bb
index 7f10b1d..9fd05d2 100644
--- a/recipes-extended/images/xen-image-minimal.bb
+++ b/recipes-extended/images/xen-image-minimal.bb
@@ -36,7 +36,7 @@ LICENSE = "MIT"

QB_NETWORK_XEN_BRIDGE = "1"

-inherit core-image qemuboot-xen-defaults qemuboot-xen-dtb qemuboot-testimage-network
+inherit core-image
# Only inherit the qemuboot classes when building for a qemu machine
QB_QEMU_CLASSES = ""
QB_QEMU_CLASSES:qemuall = "qemuboot-xen-defaults qemuboot-xen-dtb qemuboot-testimage-network"
--
2.25.1




Re: [PATCH v2 0/4] Vairous fixes for qemu support

Bruce Ashfield
 

On Tue, May 17, 2022 at 4:16 AM Bertrand Marquis
<Bertrand.Marquis@...> wrote:



On 17 May 2022, at 09:11, Bertrand Marquis via lists.yoctoproject.org <bertrand.marquis=arm.com@...> wrote:

Hi,

Any news not those patches ?
Sorry for the typo, this was suppose to be “on"
No worries.

They worked for me, and everything seems fine. I was just waiting to
see if Christopher was going to ack them.

Either way, they'll arrive in the kirkstone (and obviously master) branch soon.

Bruce



Cheers
Bertrand

On 10 May 2022, at 16:35, Bertrand Marquis via lists.yoctoproject.org <bertrand.marquis=arm.com@...> wrote:

This serie is a rework of the patch named "[PATCH] xen: enable qemuboot
for arm32" to fix some issues in the qemuboot support for arm and
introduce arm32 support for it.

First 2 patches are small fixes/enhancements
Patch 3 is adding qemu arm32 support
Patch 4 needs to be discuss but is a workaround to let qemu-arm32 boot
right now by disabling PCI as it cause dom0 to hang at the moment.

Bertrand Marquis (4):
xen: Fix class inherit in xen-image
qemuboot: Fix command line and enable other machines
xen: enable qemuboot for arm32
xen: Disable PCI on qemuarm with Xen

classes/qemuboot-xen-defaults.bbclass | 20 +++++++++----
classes/qemuboot-xen-dtb.bbclass | 31 +++++++++++++++++---
recipes-extended/images/xen-image-minimal.bb | 2 +-
3 files changed, 43 insertions(+), 10 deletions(-)

--
2.25.1





--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Re: [PATCH v2 0/4] Vairous fixes for qemu support

Bertrand Marquis
 

On 17 May 2022, at 09:11, Bertrand Marquis via lists.yoctoproject.org <bertrand.marquis=arm.com@...> wrote:

Hi,

Any news not those patches ?
Sorry for the typo, this was suppose to be “on"


Cheers
Bertrand

On 10 May 2022, at 16:35, Bertrand Marquis via lists.yoctoproject.org <bertrand.marquis=arm.com@...> wrote:

This serie is a rework of the patch named "[PATCH] xen: enable qemuboot
for arm32" to fix some issues in the qemuboot support for arm and
introduce arm32 support for it.

First 2 patches are small fixes/enhancements
Patch 3 is adding qemu arm32 support
Patch 4 needs to be discuss but is a workaround to let qemu-arm32 boot
right now by disabling PCI as it cause dom0 to hang at the moment.

Bertrand Marquis (4):
xen: Fix class inherit in xen-image
qemuboot: Fix command line and enable other machines
xen: enable qemuboot for arm32
xen: Disable PCI on qemuarm with Xen

classes/qemuboot-xen-defaults.bbclass | 20 +++++++++----
classes/qemuboot-xen-dtb.bbclass | 31 +++++++++++++++++---
recipes-extended/images/xen-image-minimal.bb | 2 +-
3 files changed, 43 insertions(+), 10 deletions(-)

--
2.25.1





Re: [PATCH v2 0/4] Vairous fixes for qemu support

Bertrand Marquis
 

Hi,

Any news not those patches ?

Cheers
Bertrand

On 10 May 2022, at 16:35, Bertrand Marquis via lists.yoctoproject.org <bertrand.marquis=arm.com@...> wrote:

This serie is a rework of the patch named "[PATCH] xen: enable qemuboot
for arm32" to fix some issues in the qemuboot support for arm and
introduce arm32 support for it.

First 2 patches are small fixes/enhancements
Patch 3 is adding qemu arm32 support
Patch 4 needs to be discuss but is a workaround to let qemu-arm32 boot
right now by disabling PCI as it cause dom0 to hang at the moment.

Bertrand Marquis (4):
xen: Fix class inherit in xen-image
qemuboot: Fix command line and enable other machines
xen: enable qemuboot for arm32
xen: Disable PCI on qemuarm with Xen

classes/qemuboot-xen-defaults.bbclass | 20 +++++++++----
classes/qemuboot-xen-dtb.bbclass | 31 +++++++++++++++++---
recipes-extended/images/xen-image-minimal.bb | 2 +-
3 files changed, 43 insertions(+), 10 deletions(-)

--
2.25.1




[PATCH] libvirt: Fix keeping restarting

He Zhe
 

LIBVIRTD_ARGS has been moved to libvirtd.service since v8.1.0. Move our mode
setting accordingly, otherwise libvirt would keep restarting and VMs would be
constantly stopped.

Signed-off-by: He Zhe <zhe.he@...>
---
recipes-extended/libvirt/libvirt_8.1.0.bb | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/recipes-extended/libvirt/libvirt_8.1.0.bb b/recipes-extended/libvirt/libvirt_8.1.0.bb
index f8deba45..89f82bf8 100644
--- a/recipes-extended/libvirt/libvirt_8.1.0.bb
+++ b/recipes-extended/libvirt/libvirt_8.1.0.bb
@@ -208,12 +208,11 @@ do_install:append() {
rmdir ${D}${prefix}/lib/systemd/system ${D}${prefix}/lib/systemd
fi

- # This variable is used by libvirtd.service to start libvirtd in the right mode
- sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/init.d/libvirtd
-
# We can't use 'notify' when we don't support 'sd_notify' dbus capabilities.
+ # Change default LIBVIRTD_ARGS to start libvirtd in the right mode.
sed -i -e 's/Type=notify/Type=forking/' \
-e '/Type=forking/a PIDFile=/run/libvirtd.pid' \
+ -e 's/\(Environment=LIBVIRTD_ARGS="--timeout 120"\)/#\1\nEnvironment=LIBVIRTD_ARGS="--listen --daemon"/' \
${D}/${systemd_system_unitdir}/libvirtd.service
fi

--
2.25.1


Re: [honister][PATCH] dev86: fix a build race

Bruce Ashfield
 

merged to honister.

Bruce

In message: [meta-virtualization] [honister][PATCH] dev86: fix a build race
on 11/05/2022 Anuj Mittal wrote:

From: Ross Burton <ross.burton@...>

Fix a race in cpp/ where token[12].h are written to a temporary file
with the same name.

Also update the status of cross.patch.

Signed-off-by: Ross Burton <ross.burton@...>
Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
(cherry picked from commit 36433bfef3b690ee1211f04a38022b1f3dc2b383)
---
...1-cpp-fix-race-writing-token.h-files.patch | 42 +++++++++++++++++++
recipes-extended/dev86/dev86/cross.patch | 2 +-
recipes-extended/dev86/dev86_git.bb | 3 +-
3 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch

diff --git a/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch b/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch
new file mode 100644
index 0000000..d6e7999
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch
@@ -0,0 +1,42 @@
+Upstream-Status: Submitted [https://github.com/jbruchon/dev86/pull/23]
+Signed-off-by: Ross Burton <ross.burton@...>
+
+From f507ee398ae20e4e97f01dfbd9a8709a90bc760f Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@...>
+Date: Fri, 29 Apr 2022 16:44:08 +0100
+Subject: [PATCH] cpp: fix race writing token.h files
+
+The rules for token1.h and token2.h both write to a temporary file tmp.h
+before renaming to token1.h or token2.h. However, in a parallel build
+these will execute at the same time and race.
+
+ gperf -aptTc -N is_ctok -H hash1 token1.tok > tmp.h
+ gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok > tmp.h
+ mv tmp.h token1.h
+ mv tmp.h token2.h
+ mv: cannot stat 'tmp.h': No such file or directory
+
+By using gperf --output-file, the race is avoided entirely.
+---
+ cpp/Makefile | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 0ea43cc..743694f 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -20,9 +20,7 @@ token1.o: token1.h
+ token2.o: token2.h
+
+ token1.h: token1.tok
+- gperf -aptTc -N is_ctok -H hash1 token1.tok > tmp.h
+- mv tmp.h token1.h
++ gperf -aptTc -N is_ctok -H hash1 --output-file $@ $<
+
+ token2.h: token2.tok
+- gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok > tmp.h
+- mv tmp.h token2.h
++ gperf -aptTc -k1,3 -N is_ckey -H hash2 --output-file $@ $<
+--
+2.25.1
+
diff --git a/recipes-extended/dev86/dev86/cross.patch b/recipes-extended/dev86/dev86/cross.patch
index 041a8d3..fd62c5d 100644
--- a/recipes-extended/dev86/dev86/cross.patch
+++ b/recipes-extended/dev86/dev86/cross.patch
@@ -1,6 +1,6 @@
Build ifdef using BUILD_CC, not CC.

-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/jbruchon/dev86/pull/22]
Signed-off-by: Ross Burton <ross.burton@...>

diff --git a/Makefile b/Makefile
diff --git a/recipes-extended/dev86/dev86_git.bb b/recipes-extended/dev86/dev86_git.bb
index 88e9cf3..094fcbd 100644
--- a/recipes-extended/dev86/dev86_git.bb
+++ b/recipes-extended/dev86/dev86_git.bb
@@ -11,7 +11,8 @@ SRC_URI = "git://github.com/jbruchon/${BPN}.git;protocol=https;branch=master \
file://0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch \
file://0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch \
file://0004-regen-token2.h-token1.h-with-gperf-3.1.patch \
- file://cross.patch \
+ file://cross.patch \
+ file://0001-cpp-fix-race-writing-token.h-files.patch \
"

S = "${WORKDIR}/git"
--
2.35.3



Re: [PATCH] ipxe: Pin to use gcc

Bruce Ashfield
 

merged.

Bruce

In message: [meta-virtualization][PATCH] ipxe: Pin to use gcc
on 09/05/2022 Khem Raj wrote:

Use single quote instead of double quotes to help bitabake syntax
highlighter do right job

Signed-off-by: Khem Raj <raj.khem@...>
Cc: Bruce Ashfield <bruce.ashfield@...>
---
recipes-extended/ipxe/ipxe_git.bb | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/recipes-extended/ipxe/ipxe_git.bb b/recipes-extended/ipxe/ipxe_git.bb
index ff46184..7565c21 100644
--- a/recipes-extended/ipxe/ipxe_git.bb
+++ b/recipes-extended/ipxe/ipxe_git.bb
@@ -23,13 +23,13 @@ SRC_URI = " \

FILES:${PN} = "/usr/share/firmware/*.rom"

-EXTRA_OEMAKE = " \
+EXTRA_OEMAKE = ' \
ISOLINUX_BIN="${STAGING_DIR_TARGET}/usr/share/syslinux/isolinux.bin" \
CROSS_COMPILE="${TARGET_PREFIX}" \
EXTRA_HOST_CFLAGS="${BUILD_CFLAGS}" \
EXTRA_HOST_LDFLAGS="${BUILD_LDFLAGS}" \
NO_WERROR="1" \
-"
+'

S = "${WORKDIR}/git/src"

@@ -44,3 +44,5 @@ do_install() {
install -d ${D}/usr/share/firmware
install ${S}/bin/*.rom ${D}/usr/share/firmware/
}
+
+TOOLCHAIN = "gcc"
--
2.36.1


Re: [PATCH] criu: Upgrade to 3.17 to fix restore and fix build

Bruce Ashfield
 

merged.

Bruce

In message: [meta-virtualization][PATCH] criu: Upgrade to 3.17 to fix restore and fix build
on 10/05/2022 He Zhe wrote:

- To fix restore Segmentation fault
criu restore -d -D checkpoint
8306: Error (criu/cr-restore.c:1480): 8331 killed by signal 11: Segmentation fault
Error (criu/cr-restore.c:2447): Restoring FAILED.

- Inherit pkgconfig to fix build warning
pkg-config not found

- Define PLUGINDIR when doing instll to fix build failure
mkdir: cannot create directory '/var/lib/criu': Permission denied

New commits since 3.16.1:

4f8f295e5 criu: Version 3.17
991f27c84 ci: skip new hugetlb maps09/maps10 tests for pre-dump
0c1f0256f kerndat: handle the case when hugetlb isn't supported
17a19676c zdtm: handle the case when hugetlb isn't supported
c1380c077 ci: workaround race between sit module loading and bridge test
550eafc5d ci: print kernel modules list
f635b61f4 test: install criu in /usr
2f0f12839 readme: Add badge links to workflows
d14dbb8c7 sk-unix: rework bind_on_deleted() return codes
5b872c718 proc_parse: Fix parsing bpf map_extra
d40b332ce bpf: update deprecated API
f641e0c4b ci: print mountinfo instead of mount cmd output
5c0b4fbcd ci: criu-fault: skip inotify_irmap fault-injection on btrfs
7ac85cab8 scripts/ci: fix ZDTM_OPTS variable passing
ead227994 zdtm: temporary disable rseq02 test
db9ec1361 zdtm: add rseq02 transition test with NO_RESTART CS flag
1e0bed3d6 rseq: handle rseq/rseq_cs flags properly
13338dee5 Revert "test: disable rseq also on Archlinux"
064e9925a zdtm: add transition/rseq01 test for amd64
2d3354e7b cr-dump: fixup thread IP when inside rseq cs
4c7ece0bb compel: add helpers to get/set instruction pointer
441310c26 zdtm/static/rseq00: fix rseq test when linking with a fresh Glibc
f70ddab24 pie/restorer: unregister (g)libc rseq before memory restoration
e1799e530 include: add thread_pointer.h from Glibc
267c1fdad ci: add Fedora Rawhide based test on Cirrus
03aff7e82 Revert "ci: disable glibc rseq support"
51e0d3e29 zdtm: add basic static/rseq00 test for rseq C/R
c5162cef5 rseq: fail dump if rseq is used but host doesn't support get_rseq_conf feature
f81e3062c rseq: initial support
bd9ee3255 cr-check: Add ptrace rseq conf dump feature
ca54dfcac util: move fork_and_ptrace_attach helper from cr-check
8b3a76b64 kerndat: check for rseq syscall support
de03eb435 compel: add rseq syscall into compel std plugin syscall tables
4adec8e8e cgroup: test for --manage-cgroups=ignore
2b6901707 cgroup: fix --manage-cgroups=ignore
c71d4a54a cgroup: fix "unified" path
8ddd7f483 ci: add codespell to lint target
e7b1c8579 Fix remaining codespell warnings
0194ed392 Fix some codespell warnings
3f1800477 Add .codespellrc
f16976c03 test/zdtm.py: rename a var
fab46c310 test/exhaustive/unix.py: rename a var
2a60b4974 Rename useable to usable
c4bdde213 criu/mount.c: separate \t
51837a65e criu/files.c: some renames
bd3a21e0b test/javaTests: rename ser to s
777ad1966 Nit: rename sie to se
716e56f37 Typo: mmaped -> mmapped
d9411c948 test/zdtm/static: s/NODEL/NO_DEL/
58d76cb16 test/zdtm/static/inotify_system.c: s/inot/infd/
0cb8b9c04 test/zdtm/static: use param not parm
58b120b06 criu/pie/restorer.c: use param not parm
747ec75d9 criu/arch/s390/include/asm/restorer.h: fix comments
8bb05e3bf ci: Switch to non overlaysfs tests
45e048d77 criu: generate unique socket names
75064b742 mount: fix -Wunused-but-set-variable for Clang 15
46e4773c3 style: delete some redundant code
5109fccf8 apparmor: Fix -Wfortify-source for Clang
791651f1b criu-ns: add a helper to hold a pid namespace
805559c1d scripts/ci: mount test cgroups once
ab6191ccd zdtm: use unique holder for cgroups
73a783ac1 mount: make error messages differ in different places
165d5a2cd mount-v2: make mount engine fallback messages loglevel debug
8867840c8 zdtm/mount-v2: disable pty-console test
c8121ed74 test/jenkins: test for old mount engine
3c0e99ccf ci: make others/mnt_ext_dev also run for old mount engine
642abd133 zdtm/mount-v2: disable mnt_tracefs test
f736d88c9 zdtm: add propagation group with mount flags to mount_complex_sharing
ef53df471 zdtm: add mount_complex_sharing test
486e1fd85 zdtm: add new mnt_ext_sharing test for mount-v2
3db949d82 ci: run tests for old mount engine
8d6e2d044 zdtm: enable mounts compat mode on restore with --mntns-compat-mode option
b35c842d0 mount: add new mounts-v2 engine
c29675c9a mount: export global variables for mount-v2
972a59862 mount: export several functions for mount-v2
3229e7f58 mount: export common defines for mount-v2
0723d0cd9 mount: remove double ns_id declaration
1f4a9a531 files-reg: export parent dirs helpers for mount-v2
f032741cd mount: add plain mountpoints
f2d1c7fab config/rpc: add new option --mntns-compat-mode for old mount engine
f6b52c711 crtools: move check_options after kerndat_init and log_init
6a25420d3 util: add resolve_mountpoint helper
cef8366f5 kerndat: check whether the openat2 syscall is supported
387f4652b compel: add open_tree syscall
a946b946e kerndat: Check for MOVE_MOUNT_SET_GROUP availability
0ca89b99b files-reg: teach clean_one_remap to work with mount-v2
9a0918497 files-reg: teach create_ghost to work with mount-v2
169f95c39 files-reg: split create_ghost_dentry out of create_ghost
9fb3984a7 mount: add service_mountpoint getter for ->mountpoint
65967a84b mount: use ns_mountpoint instead of mountpoint where possible
eedbc6f47 mount: use ns_mountpoint in mnt_depth
ae0b218c3 mount: use ns_mountpoint in aufs_parse
7b968ceea mount: use ns_mountpoint in collect_mntinfo
f2bf6597c path: simplify mnt_get_sibling_path via get_relative_path
abbc70adc mount: use ns_mountpoint for children-overmount check
c17695cb1 mount: use ns_mountpoint in root_path_from_parent
010295b8f mount: use ns_mountpoint in validate_children_collision
07eb01593 mount: skip root yard children from mnt_needs_remap check
e8de10a4f mount: use ns_mountpoint in mnt_is_overmounted
b954e5136 autofs: use ns_mountpoint in autofs_create_dentries
7a67949e5 mount: make general place for shared variables on mount-info on restore
0c41c1187 mount: fix broken remounted_rw check
718247045 mount: move root yard tree merge as early as possible
770cdbfb9 mount: prepare is_overmounted as early as possible
83bbf1b05 mount: add helper mnt_get_external_bind_nodev
0fd0e03a2 mount: do not override master_id to -1 for root binds
4f156f32b mount: put external slavery mounts to separate mnt_ext_slave list
ef79912c1 mount: add can_receive_master_from_root helper
b52fcb284 mount: replace CRTIME_MNT_ID with HELPER_MNT_ID
4736a7240 mount/restore: leave ns_mountpoint NULL for aux binfmt_misc mount
16085b5e6 mount/restore: create auxiliary binfmt_misc mount in the root yard
a379d4d94 zdtm: add mntns_pivot_root_ro test
2a3d2bc28 mount: apply superblock flags to nested ns roots
77f67973f zdtm: add mntns_pivot_root test
2fdb4993a mount: allow nested mount namespaces with different roots
cf6fe2d48 mount: add mnt_is_root_bind helper
e50abbd3b zdtm: add mnt_ext_collision test
a963ceb77 mount: restrict mp-external mount map to init container mntns only
007501f98 zdtm: add new mnt_ext_root test
4f9414934 mount: mount external mount before mounting it's binds
d5cb7764e mount: show more info about why we can't mount
685a53eec mount: rework skipping external mounts in dump_one_mountpoint
3b2b80812 mount: split mnt_is_external(_bind) and can_receive_master_from_external
c09bd8941 mount: add mnt_bind_pick helper to pick the desired bind
9d1f39f28 unittest: add some tests for get_relative_path helper
97bd9511c util: add get_relative_path helper
261b7a8fd mount: setup mnt_bind list before using it in mnt_is_external
30261a751 mount: skip fstype and source checks for external mounts in mounts_sb_equal
8d5300aa9 mount: mark mounts of external devices external
e17c1cc12 mount: do not detect non-fsroot mounts as device-external
eda1e5fdb mount: add mntinfo_add_list_before helper for adding to mntinfo list
9649356e3 zdtm: fix mnt_ext_master test to correspond to it's name
5a8fd343f uffd: fix __u64 print format specifier
9e7473516 sk-unix: fix e_str leak in unix_sk_id_add
87d373514 criu/plugin: Add support for criu image streamer
55370b720 criu/plugin: Store BO contents directly to file
ecdf740fa criu/plugin: Add whitepaper document
99a2380fc criu/plugin: Dockerfile for amdgpu_plugin
2095de9f0 criu/plugin: Fix for FDs not allowed to mmap
bd8333009 criu/plugin: Implement sDMA based buffer access
6d7926622 criu/plugin: Restore libhsakmt shared memory files
a218fe0ba criu/plugin: Read and write BO contents in parallel
ba9c62df2 criu/plugin: Add unit tests for GPU remapping
4856e0d4d criu/plugin: Add parameters to override mapping
72905c9c9 criu/plugin: Remap GPUs on checkpoint restore
6e99fea2f criu/plugin: Implement system topology parsing
c4e3ac7fe criu/plugin: Adding check for kernel IOCTL version
55a5993bc criu/plugin: Support AMD ROCm Checkpoint Restore with KFD
71ff9cc04 criu/plugin: Initialize AMD KFD header
91157315b criu/plugin: Skip plugin vmas during premap
63e127fc8 criu/plugin: Add dedicated flag for plugins
e04db0241 criu/files: Add function to return unused FD by pid
653eefea0 criu/plugin: Do not reopen vma fd for plugins
5b0a639a5 files: fix inh leak in inherit_fd_add
060567042 net: fix e_str leak in veth_pair_add
2856d06e3 config: fix ns leak in parse_join_ns
a8dd7d290 ci: run criu-config tests
1c54c45fc zdtm: drop redundant config_inotify_irmap test
d2073cd4d zdtm: add --criu-config option
fc38a01e5 zdtm: use long form cli options
0734fc807 zdtm: sort import lines
0b7965397 zdtm: refactor main
1b4a9df9c sk-unix: fix uint32_t id variable printf format specifier
09fa32a75 tun: fix tun_link leak in dump_tun_link
7e9a9dc34 cr-dump: fix cr_imgset leak in dump_one_task
2747bb2a7 mount: fix e_str leak in ext_mount_add
be78b853d proc_smaps: remove useless nonlinear check
97a998567 compel: set mxcsr during error injection to zero
ef98a71b1 zdtm: fix missplacement of err=True
6b842635b test: disable rseq also on Archlinux
51099d2bb test: remove test for LOCK_MAND flock
247cdc90d bpfmap: handle new field in fdinfo
56df8aeeb ci: skip MAP_HUGETLB tests in stream test
2dc6d146b zdtm: Add MAP_HUGETLB mappings test for parent-child relationship processes
87a5694b4 zdtm: Add shm hugetlb test
d22e472cf zdtm: Add memfd hugetlb test
ffa268896 zdtm: Add MAP_HUGETLB memory mapping test
a26b692c4 uffd: Skip lazy-mode restore on hugetlb mappings
456e50b59 mem: Skip premapping hugetlb mapping
8941b63a4 proc_parse, files: Add support for hugetlb memory mapping
e4fb1dd5f memfd, shmem: Add support for checkpoint/restore memfd and anon shared memory
4d77b19eb ipc: Add support for checkpoint/restore hugetlb System V shared memory
f69c36591 kerndat: Collect hugetlb device numbers
9c7bbfa69 check: Add a check for using memfd with hugetlb
e8087fcff files: generate unique transport socket names
408a7d82d util: add an unique ID of the current criu run
b13b95e52 compel: fix how PTRACE_GET_THREAD_AREA errors are handled
b2ba14a15 restorer: Fix sys_mmap's returned value check
7177938e6 criu-ns: use os.waitstatus_to_exitcode()
bb1b1681a criu-ns: fix exit code o for criu dump
fdf4fda20 pstree: when updating sid for shell job also update matching pgid
89267dbcc ci: install libbsd dependency
48d53b699 Fix formatting in criu documentation
73d6a2c0e test/autofs: fix use-after-free
4d31105c7 ci: set continue-on-error for cross-compile
0568889ee compel: fix parasite with GCC 12
db352ca48 criu: fix configuration file scanner with GCC 12
bf6975c3e compel: fix GCC 12 failure (out of bounds)
6be10a232 zdtm: fix zdtm/static/maps00 case in arm64
6cfad77f0 pagemap: tiny fix on truncating memory image
908e5dd95 lib: added tests for feature check in libcriu
b00b61f0e lib: introduce feature check in libcriu
4c4b2159d ci: added .lgtm.yml file
7f4265dc0 ci: update to latest Vagrant and Fedora images
7400d91f8 contributing: remove old badges and logo
29e221bb7 readme: add docker test badge
6f9d62eb3 ci: test criu-image-streamer with all tests
8ec214d3c mount/btrfs: make check_mountpoint_fd fallback to get_sdev_from_fd
bbf5f642d proc_parse: add helper to resolve sdev from fd
15c42696c mount: remove mnt_fd argument of __open_mountpoint
1e7c62047 mount: split check_mountpoint_fd from __open_mountpoint
1b912802d zdtm/static/uffd-events: add more log messages
ebd03383f zdtm: print tails of all logs if a test has failed
f65098746 test: log testname.out.inprogress if a test has failed
8775cf3a5 ci: reenable the lazy-thp test in the lazy-remote mode
c59abfa81 page-xfer: stop waiting for a new command after a close command
13b726ebc tls: allow to terminate connections synchronously
73d1d0769 uffd: call disconnect_from_page_server to shutdown a page-server connection
4fdf3db31 tls: add more comments
5a2250b1a tls: use ssize_t for return value
89e8e8e69 tls: fix typo
0da88b6da zdtm: Add SOCK_SEQPACKET variants to unix socket tests
530ad9c89 sk-unix: Add support for SOCK_SEQPACKET unix sockets
3d618d0f4 crtools: check that cpuinfo command has sub-command
233f1f1d0 crtools: use new opts.mode in image_dir_mode
3fa85bcdc crtools/rpc: export current criu mode to opts.mode
1b015df9b crtools: remove excess always true condition
be092e25a zdtm: remove mntns-deleted-dst test leftover from git
f92c7f1af zdtm: zdtm_ct fix compilation error with strict-prototypes on
e62e05c2d zdtm.py: clean up MAKEFLAGS env variable before running make instance
af4b26519 tests: added test for single pre-dump support
51a1adbc0 libcriu: add single pre-dump support
119a79885 ci: disable glibc rseq support
9fd000c58 ci: use unstable release for cross-compile
0e04a3c6a libcriu: add setting lsm-mount-context to libcriu
af298353d usernsd: UNS_FDOUT should not require an input descriptor
efe5d9a12 Add documentation for --timeout option
583e8ca05 ci: enable x86 xsave fault injection tests back
1ba443982 x86/compel/fault-inject: print the initial seed
fc1eb01ff x86/compel/fault-inject: bound xsave features set
6186bfa0c test: another try to correctly fix the kernel version
d79d73e3a ci: install procps in Alpine
3eba68089 ci: Enable disabled unix socket related tests
94111596f sk-unix: Fix TCP_ESTABLISHED checks in unix sockets
6930d6a32 util: make page-server IPv6 safe
d57f27bc9 files-reg: try dump_ghost_remap if link-remap failed with error ENOENT
14075baf7 test: do not use --keep-going for single zdtm tests
a52185ffe ci: disable broken tests until fixed
4ab2facb2 make: Explicitly enable FPU on ARMv7 builds
d514bacb4 ci: Run cross compile with debian testing
4c1330bb0 ci: Run cross compile on debian stable
718eb06be clang-format: disable wrong struct pointer declaration format
858002483 zdtm: add ro-mount check after c/r to mntns_ghost01
17357d67f files-reg: temporary remount writable the mount we do unlink on
bd219b69a ghost/mount: allocate remounted_rw in shmem to get info from other processes
cfed6f35e files-reg: fix error handling of rm_parent_dirs
5a0943c90 files-reg: fix error handling in open_path
64b58b514 check: cleanup child processes
156cce78c ci: switch to centos-stream-8
c2fd81903 crtools: ignore SIGPIPE in swrk mode
a491706cc ci: Use latest Fedora for lint ci runs again
eb0dee408 seize: restore cgroup freezer to right state
781676f10 clang-format/zdtm: fix clang complains about strange elseifs
d2b6faf8f tests: improve the deterministic behavior of the test suite
94092ce00 zdtm.py: make tests with --link_remap exclusive
1f9e2c420 ci: disable socket-raw test on centos8
a9d9fb8aa clang-format: make x86_ins_capability_mask human-readable
4ff252656 cr-dump: fail dumping when zombie process with sid 0
26db7adbb clang-format: do automatic comment fixups
206479322 clang-format: do several manual comment fixups
bbfd9031a clang-format: enable AlignTrailingComments
718f4cae2 zdtm: make sock_opts02 also check lock change by SO_*BUF*
3a875cc4c zdtm: add test for socket buffer size locks
e69be16db sockets: c/r bufer size locks
ce5ce285a kerndat: check for set/getsockopt SO_BUF_LOCK availability
2bd709664 sockets: don't call sk_setbufs asyncronously
37a8090d8 tests: improve the image streamer process control
dae0704b6 ci: use Fedora 34 for lint CI runs
f7bc3bdc9 ci: fix userfaultfd test failures
d17eb325c ci: replace deprecated codecov bash uploader
c1659c386 net: optimize restore_rule() to not open the CR_FD_RULE image file twice
e3a853ab9 criu-ns: make pidns init first do setsid
c750e62ca util: use nftw in rmrf helper
485a83c11 tty: fix the null pointer of get_tty_driver
7ba4d3bf1 pie/restorer: remove excess hash printf specifier
bffaa7d07 ci: enable coredump tests
bf8382a80 make: enable lint for coredump
8aa769455 test/coredump: fix shellcheck errors
0b3cf5c9e coredump: lint fix visually indented line
3a689ed9a coredump: fix comparison to true
c1eab7d06 coredump: fix too many blank lines
baad88d5e coredump: fix missing whitespace around operator
579066633 coredump: lint fix for block comments
06306c8b1 coredump: drop exec permission
1b368238b coredump: drop unused variable
a92a7887a python: replace equality with identity test
c71a81a6b coredump: convert indentation to spaces
bf8a3c9f6 coredump: sort imports
a0b738cb8 coredump: remove unused import
1c866dbb5 Add new files for running criu-coredump via python 2 or 3
3180d35fa Add support for python3 in criu-coredump
f24360658 criu(8): Add more detailed description about --tcp-close dump option
abf6b15c1 zdtm: Dumping/restoring with --tcp-close on TCP_CLOSE socket
795973055 tcp: Skip restoring TCP state when dumping with --tcp-close
74d1233b5 criu/files: Don't cache fd ids for device files
7b6239b6d criu/plugin: Implement dummy amdgpu plugin hooks
17e2a8c70 criu: Introduce new device file plugin hooks
dd46e7919 criu(8): add --external net option
be239109a github: update the stale version

Signed-off-by: He Zhe <zhe.he@...>
---
recipes-containers/criu/criu_git.bb | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/recipes-containers/criu/criu_git.bb b/recipes-containers/criu/criu_git.bb
index 7d98dd13..4b616ccf 100644
--- a/recipes-containers/criu/criu_git.bb
+++ b/recipes-containers/criu/criu_git.bb
@@ -13,8 +13,8 @@ EXCLUDE_FROM_WORLD = "1"

LIC_FILES_CHKSUM = "file://COPYING;md5=412de458544c1cb6a2b512cd399286e2"

-SRCREV = "4a1731891e91e62f15c40c361aff2a8a54d91bb3"
-PV = "3.16.1+git${SRCPV}"
+SRCREV = "4f8f295e57e68740699479d12c1ad251e6dd859f"
+PV = "3.17+git${SRCPV}"

SRC_URI = "git://github.com/checkpoint-restore/criu.git;branch=master;protocol=https \
file://0002-criu-Skip-documentation-install.patch \
@@ -55,6 +55,7 @@ export HOST_SYS
export HOSTCFLAGS = "${BUILD_CFLAGS}"

inherit setuptools3
+inherit pkgconfig

B = "${S}"

@@ -74,7 +75,7 @@ do_compile () {

do_install () {
export INSTALL_LIB="${libdir}/${PYTHON_DIR}/site-packages"
- oe_runmake PREFIX=${exec_prefix} LIBDIR=${libdir} DESTDIR="${D}" FULL_PYTHON=${PYTHON} PYTHON=python3 install
+ oe_runmake PREFIX=${exec_prefix} LIBDIR=${libdir} DESTDIR="${D}" PLUGINDIR="${localstatedir}/lib" FULL_PYTHON=${PYTHON} PYTHON=python3 install

# python3's distutils has a feature of rewriting the interpeter on setup installed
# scripts. 'crit' is one of those scripts. The "executable" or "e" option to the
--
2.32.0


[honister][PATCH] dev86: fix a build race

Anuj Mittal
 

From: Ross Burton <ross.burton@...>

Fix a race in cpp/ where token[12].h are written to a temporary file
with the same name.

Also update the status of cross.patch.

Signed-off-by: Ross Burton <ross.burton@...>
Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
(cherry picked from commit 36433bfef3b690ee1211f04a38022b1f3dc2b383)
---
...1-cpp-fix-race-writing-token.h-files.patch | 42 +++++++++++++++++++
recipes-extended/dev86/dev86/cross.patch | 2 +-
recipes-extended/dev86/dev86_git.bb | 3 +-
3 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch

diff --git a/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch b/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch
new file mode 100644
index 0000000..d6e7999
--- /dev/null
+++ b/recipes-extended/dev86/dev86/0001-cpp-fix-race-writing-token.h-files.patch
@@ -0,0 +1,42 @@
+Upstream-Status: Submitted [https://github.com/jbruchon/dev86/pull/23]
+Signed-off-by: Ross Burton <ross.burton@...>
+
+From f507ee398ae20e4e97f01dfbd9a8709a90bc760f Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@...>
+Date: Fri, 29 Apr 2022 16:44:08 +0100
+Subject: [PATCH] cpp: fix race writing token.h files
+
+The rules for token1.h and token2.h both write to a temporary file tmp.h
+before renaming to token1.h or token2.h. However, in a parallel build
+these will execute at the same time and race.
+
+ gperf -aptTc -N is_ctok -H hash1 token1.tok > tmp.h
+ gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok > tmp.h
+ mv tmp.h token1.h
+ mv tmp.h token2.h
+ mv: cannot stat 'tmp.h': No such file or directory
+
+By using gperf --output-file, the race is avoided entirely.
+---
+ cpp/Makefile | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 0ea43cc..743694f 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -20,9 +20,7 @@ token1.o: token1.h
+ token2.o: token2.h
+
+ token1.h: token1.tok
+- gperf -aptTc -N is_ctok -H hash1 token1.tok > tmp.h
+- mv tmp.h token1.h
++ gperf -aptTc -N is_ctok -H hash1 --output-file $@ $<
+
+ token2.h: token2.tok
+- gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok > tmp.h
+- mv tmp.h token2.h
++ gperf -aptTc -k1,3 -N is_ckey -H hash2 --output-file $@ $<
+--
+2.25.1
+
diff --git a/recipes-extended/dev86/dev86/cross.patch b/recipes-extended/dev86/dev86/cross.patch
index 041a8d3..fd62c5d 100644
--- a/recipes-extended/dev86/dev86/cross.patch
+++ b/recipes-extended/dev86/dev86/cross.patch
@@ -1,6 +1,6 @@
Build ifdef using BUILD_CC, not CC.

-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/jbruchon/dev86/pull/22]
Signed-off-by: Ross Burton <ross.burton@...>

diff --git a/Makefile b/Makefile
diff --git a/recipes-extended/dev86/dev86_git.bb b/recipes-extended/dev86/dev86_git.bb
index 88e9cf3..094fcbd 100644
--- a/recipes-extended/dev86/dev86_git.bb
+++ b/recipes-extended/dev86/dev86_git.bb
@@ -11,7 +11,8 @@ SRC_URI = "git://github.com/jbruchon/${BPN}.git;protocol=https;branch=master \
file://0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch \
file://0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch \
file://0004-regen-token2.h-token1.h-with-gperf-3.1.patch \
- file://cross.patch \
+ file://cross.patch \
+ file://0001-cpp-fix-race-writing-token.h-files.patch \
"

S = "${WORKDIR}/git"
--
2.35.3


[PATCH v2 3/4] xen: enable qemuboot for arm32

Bertrand Marquis
 

Add required variables to generate a qemuboot devicetree for qemuarm.
With this change, Xen and dom0 can be started using runqemu.

Xen is started using qemu kernel argument and the devicetree is modified
to properly boot dom0 (which is loaded in memory).
This is using the same system as qemuarm64.

At this stage dom0 is hanging on PCI device scanning.

This patch is also using qemuarm64 as machine for arm64 bit instead of
aarch64 to allow adding support for other machine (an example a Xilinx
board that can be emulated with using an other xen machine).

Signed-off-by: Bertrand Marquis <bertrand.marquis@...>
---
classes/qemuboot-xen-defaults.bbclass | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/classes/qemuboot-xen-defaults.bbclass b/classes/qemuboot-xen=
-defaults.bbclass
index c7e74c3..f1550cc 100644
--- a/classes/qemuboot-xen-defaults.bbclass
+++ b/classes/qemuboot-xen-defaults.bbclass
@@ -10,15 +10,21 @@ DOM0_KERNEL ??=3D "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE=
TYPE}"
DOM0_KERNEL_LOAD_ADDR ??=3D "0x45000000"
QB_XEN_DOMAIN_MODULES ??=3D "${DOM0_KERNEL}:${DOM0_KERNEL_LOAD_ADDR}:mul=
tiboot,kernel"
=20
-# Qemuboot for 64-bit Arm uses the QB_DEFAULT_KERNEL method to load Xen
+# Qemuboot for Arm uses the QB_DEFAULT_KERNEL method to load Xen
# and the device loader option for the dom0 kernel:
QB_OPT_APPEND:append:aarch64 =3D " \
-device loader,file=3D${DOM0_KERNEL},addr=3D${DOM0_KERNEL_LOAD_ADDR}=
\
"
-QB_DEFAULT_KERNEL:aarch64 =3D "xen-${MACHINE}"
+QB_OPT_APPEND:append:qemuarm =3D " \
+ -device loader,file=3D${DOM0_KERNEL},addr=3D${DOM0_KERNEL_LOAD_ADDR}=
\
+ "
+QB_DEFAULT_KERNEL:qemuarm64 =3D "xen-${MACHINE}"
+QB_DEFAULT_KERNEL:qemuarm =3D "xen-${MACHINE}"
=20
# 64-bit Arm: gic version 3
-QB_MACHINE:aarch64 =3D "-machine virt,gic-version=3D3 -machine virtualiz=
ation=3Dtrue"
+QB_MACHINE:qemuarm64 =3D "-machine virt,gic-version=3D3 -machine virtual=
ization=3Dtrue"
+# 32-bit Arm
+QB_MACHINE:qemuarm =3D "-machine virt -machine virtualization=3Dtrue"
=20
# Increase the default qemu memory allocation to allow for the hyperviso=
r.
# Use a weak assignment to allow for change of default and override else=
where.
@@ -26,5 +32,9 @@ QB_MEM_VALUE ??=3D "512"
QB_MEM =3D "-m ${QB_MEM_VALUE}"
=20
# 64-bit Arm: qemuboot with a device tree binary
-QB_DTB:aarch64 =3D "${IMAGE_NAME}.qemuboot.dtb"
-QB_DTB_LINK:aarch64 =3D "${IMAGE_LINK_NAME}.qemuboot.dtb"
+QB_DTB:qemuarm64 =3D "${IMAGE_NAME}.qemuboot.dtb"
+QB_DTB_LINK:qemuarm64 =3D "${IMAGE_LINK_NAME}.qemuboot.dtb"
+
+# 32-bit Arm: qemuboot with a device tree binary
+QB_DTB:qemuarm =3D "${IMAGE_NAME}.qemuboot.dtb"
+QB_DTB_LINK:qemuarm =3D "${IMAGE_LINK_NAME}.qemuboot.dtb"
--=20
2.25.1