From: Mark Hatle <mark.hatle@kernel.crashing.org>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: openembedded-core@lists.openembedded.org, mark.hatle@amd.com
Subject: Re: [OE-core] [PATCH 1/1] qemu: Allow native and nativesdk versions on Linux older then 4.17
Date: Thu, 25 Jan 2024 16:20:37 -0600 [thread overview]
Message-ID: <4b6eca03-cc54-4a38-8aa0-73eb73efb6d5@kernel.crashing.org> (raw)
In-Reply-To: <CA+chaQekfBh8sXYmNE7zVABKVVhU9Z_W5iD0k7tvNJ-DhPed=Q@mail.gmail.com>
On 1/25/24 3:42 PM, Martin Jansa wrote:
> I did something similar for LGE when we were using 18.04 ubuntu, but IIRC it's
> not about the kernel version, but glibc being older than 2.27.
>
> 18.04 is already unsupported for a while, I don't think oe-core should support
> unsupported host OS versions (that's why I've never send my version).
>
> To make this change smaller you can just
> revert c42e77a90d9244c8caf76fe0e54f84200430a4e1 from qemu.
>
> If oe-core really needs to support this I can share my version as in:
> https://github.com/shr-project/meta-webosose/commit/7528c20bf3ba7576d4611f71f987a408ac8845c2 <https://github.com/shr-project/meta-webosose/commit/7528c20bf3ba7576d4611f71f987a408ac8845c2>
This version includes an actual check that the mmap returned a proper value.
The version here just sets the flags to avoid the compilation issue.
Using the buildtools-tarball in your build will accomplish the same end result,
hides the problem but doesn't verify the mmap will actually work (or error) as
needed.
--Mark
> Regards,
>
> On Thu, Jan 25, 2024 at 10:04 PM Mark Hatle <mark.hatle@kernel.crashing.org
> <mailto:mark.hatle@kernel.crashing.org>> wrote:
>
> From: Mark Hatle <mark.hatle@amd.com <mailto:mark.hatle@amd.com>>
>
> Linux kernel 4.17 introduced two new mmap flags, MAP_FIXED_NOREPLACE and
> MAP_SHARED_VALIDATE. Starting with QEMU 8.1, these flags are now used
> and required for proper system operation. In order to build and run on a
> system older then 4.17, we need to emulate this new behavior.
>
> Not having a newer kernel could result in the mmap memory being allocated
> in a way that will cause failures without QEMU checking for these
> conditions. Note, memory allocation issues are rare in my experience so
> this is more of a 'just-in-case' behavior.
>
> SDK_OLDEST_KERNEL is currently set to 3.2.0, the only way this can claim
> that qemu works in an SDK is by checking the return values to emulate
> the expected behavior.
>
> Signed-off-by: Mark Hatle <mark.hatle@amd.com <mailto:mark.hatle@amd.com>>
> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org
> <mailto:mark.hatle@kernel.crashing.org>>
> ---
> meta/recipes-devtools/qemu/qemu.inc | 12 +
> ...round-for-missing-MAP_FIXED_NOREPLAC.patch | 286 ++++++++++++++++++
> ...round-for-missing-MAP_SHARED_VALIDAT.patch | 51 ++++
> 3 files changed, 349 insertions(+)
> create mode 100644
> meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
> create mode 100644
> meta/recipes-devtools/qemu/qemu/0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch
>
> diff --git a/meta/recipes-devtools/qemu/qemu.inc
> b/meta/recipes-devtools/qemu/qemu.inc
> index ccb2880402..7c31a5aa83 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -39,6 +39,18 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz
> <https://download.qemu.org/$%7BBPN%7D-$%7BPV%7D.tar.xz> \
> "
> UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
>
> +# SDK_OLDEST_KERNEL is set below 4.17, which is the minimum version
> required by QEMU >= 8.1
> +# This is due to two MMAP flags being used at certain points
> +SRC_URI:append:class-nativesdk = " \
> + file://0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch \
> + file://0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch \
> + "
> +
> +# Support building and using native version on pre 4.17 kernels
> +SRC_URI:append:class-native = " \
> + file://0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch \
> + file://0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch \
> + "
>
> SRC_URI[sha256sum] =
> "bf00d2fa12010df8b0ade93371def58e632cb32a6bfdc5f5a0ff8e6a1fb1bf32"
>
> diff --git
> a/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch b/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
> new file mode 100644
> index 0000000000..8941911fb3
> --- /dev/null
> +++
> b/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
> @@ -0,0 +1,286 @@
> +From fa9bcabe2387bb230ef82d62827ad6f93b8a1e61 Mon Sep 17 00:00:00 2001
> +From: Frederic Konrad <fkonrad@amd.com <mailto:fkonrad@amd.com>>
> +Date: Wed, 17 Jan 2024 18:15:06 +0000
> +Subject: [PATCH 1/2] linux-user/*: workaround for missing MAP_FIXED_NOREPLACE
> +
> +QEMU v8.1.0 recently requires MAP_FIXED_NOREPLACE flags implementation for
> mmap.
> +
> +This is missing from ubuntu 18.04, thus this patch catches the mmap calls which
> +could use that new flag and forwards them to mmap when MAP_FIXED_NOREPLACE
> +flag isn't set or emulates them by checking the returned address w.r.t the
> +requested address.
> +
> +Signed-off-by: Frederic Konrad <fkonrad@amd.com <mailto:fkonrad@amd.com>>
> +Signed-off-by: Francisco Iglesias <francisco.iglesias@amd.com
> <mailto:francisco.iglesias@amd.com>>
> +
> +Upstream-Status: Inappropriate [OE specific]
> +
> +The upstream only supports the last two major releases of an OS. The ones
> +they have declared all have kernel 4.17 or newer.
> +
> +See:
> +https://xilinx.slack.com/archives/D04G2647CTV/p1705074697942019
> <https://xilinx.slack.com/archives/D04G2647CTV/p1705074697942019>
> +
> +https://www.qemu.org/docs/master/about/build-platforms.html
> <https://www.qemu.org/docs/master/about/build-platforms.html>
> +
> + The project aims to support the most recent major version at all times for up
> + to five years after its initial release. Support for the previous major
> + version will be dropped 2 years after the new major version is released or
> + when the vendor itself drops support, whichever comes first.
> +
> +Signed-off-by: Mark Hatle <mark.hatle@amd.com <mailto:mark.hatle@amd.com>>
> +---
> + linux-user/elfload.c | 7 +++--
> + linux-user/meson.build | 1 +
> + linux-user/mmap-fixed.c | 63 +++++++++++++++++++++++++++++++++++++++++
> + linux-user/mmap-fixed.h | 39 +++++++++++++++++++++++++
> + linux-user/mmap.c | 31 +++++++++++---------
> + linux-user/syscall.c | 1 +
> + 6 files changed, 125 insertions(+), 17 deletions(-)
> + create mode 100644 linux-user/mmap-fixed.c
> + create mode 100644 linux-user/mmap-fixed.h
> +
> +Index: qemu-8.2.0/linux-user/elfload.c
> +===================================================================
> +--- qemu-8.2.0.orig/linux-user/elfload.c
> ++++ qemu-8.2.0/linux-user/elfload.c
> +@@ -22,6 +22,7 @@
> + #include "qemu/error-report.h"
> + #include "target_signal.h"
> + #include "accel/tcg/debuginfo.h"
> ++#include "mmap-fixed.h"
> +
> + #ifdef TARGET_ARM
> + #include "target/arm/cpu-features.h"
> +@@ -2765,9 +2766,9 @@ static abi_ulong create_elf_tables(abi_u
> + static int pgb_try_mmap(uintptr_t addr, uintptr_t addr_last, bool keep)
> + {
> + size_t size = addr_last - addr + 1;
> +- void *p = mmap((void *)addr, size, PROT_NONE,
> +- MAP_ANONYMOUS | MAP_PRIVATE |
> +- MAP_NORESERVE | MAP_FIXED_NOREPLACE, -1, 0);
> ++ void *p = mmap_fixed_noreplace((void *)addr, size, PROT_NONE,
> ++ MAP_ANONYMOUS | MAP_PRIVATE |
> ++ MAP_NORESERVE | MAP_FIXED_NOREPLACE,
> -1, 0);
> + int ret;
> +
> + if (p == MAP_FAILED) {
> +Index: qemu-8.2.0/linux-user/meson.build
> +===================================================================
> +--- qemu-8.2.0.orig/linux-user/meson.build
> ++++ qemu-8.2.0/linux-user/meson.build
> +@@ -14,6 +14,7 @@ linux_user_ss.add(files(
> + 'linuxload.c',
> + 'main.c',
> + 'mmap.c',
> ++ 'mmap-fixed.c',
> + 'signal.c',
> + 'strace.c',
> + 'syscall.c',
> +Index: qemu-8.2.0/linux-user/mmap-fixed.c
> +===================================================================
> +--- /dev/null
> ++++ qemu-8.2.0/linux-user/mmap-fixed.c
> +@@ -0,0 +1,63 @@
> ++/*
> ++ * Workaround for MAP_FIXED_NOREPLACE
> ++ *
> ++ * Copyright (c) 2024, Advanced Micro Devices, Inc.
> ++ * Developed by Fred Konrad <fkonrad@amd.com <mailto:fkonrad@amd.com>>
> ++ *
> ++ * Permission is hereby granted, free of charge, to any person obtaining a
> copy
> ++ * of this software and associated documentation files (the "Software"),
> to deal
> ++ * in the Software without restriction, including without limitation the
> rights
> ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> ++ * copies of the Software, and to permit persons to whom the Software is
> ++ * furnished to do so, subject to the following conditions:
> ++ *
> ++ * The above copyright notice and this permission notice shall be included in
> ++ * all copies or substantial portions of the Software.
> ++ *
> ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> FROM,
> ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
> ++ * THE SOFTWARE.
> ++ */
> ++
> ++#include <sys/mman.h>
> ++#include <errno.h>
> ++
> ++#ifndef MAP_FIXED_NOREPLACE
> ++#include "mmap-fixed.h"
> ++
> ++void *mmap_fixed_noreplace(void *addr, size_t len, int prot, int flags,
> ++ int fd, off_t offset)
> ++{
> ++ void *retaddr;
> ++
> ++ if (!(flags & MAP_FIXED_NOREPLACE)) {
> ++ /* General case, use the regular mmap. */
> ++ return mmap(addr, len, prot, flags, fd, offset);
> ++ }
> ++
> ++ /* Since MAP_FIXED_NOREPLACE is not implemented, try to emulate it. */
> ++ flags = flags & ~(MAP_FIXED_NOREPLACE | MAP_FIXED);
> ++ retaddr = mmap(addr, len, prot, flags, fd, offset);
> ++ if ((retaddr == addr) || (retaddr == MAP_FAILED)) {
> ++ /*
> ++ * Either the map worked and we get the good address so it can be
> ++ * returned, or it failed and would have failed the same with
> ++ * MAP_FIXED*, in which case return MAP_FAILED.
> ++ */
> ++ return retaddr;
> ++ } else {
> ++ /*
> ++ * Page has been mapped but not at the requested address.. unmap
> it and
> ++ * return EEXIST.
> ++ */
> ++ munmap(retaddr, len);
> ++ errno = EEXIST;
> ++ return MAP_FAILED;
> ++ }
> ++}
> ++
> ++#endif
> +Index: qemu-8.2.0/linux-user/mmap-fixed.h
> +===================================================================
> +--- /dev/null
> ++++ qemu-8.2.0/linux-user/mmap-fixed.h
> +@@ -0,0 +1,39 @@
> ++/*
> ++ * Workaround for MAP_FIXED_NOREPLACE
> ++ *
> ++ * Copyright (c) 2024, Advanced Micro Devices, Inc.
> ++ * Developed by Fred Konrad <fkonrad@amd.com <mailto:fkonrad@amd.com>>
> ++ *
> ++ * Permission is hereby granted, free of charge, to any person obtaining a
> copy
> ++ * of this software and associated documentation files (the "Software"),
> to deal
> ++ * in the Software without restriction, including without limitation the
> rights
> ++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> ++ * copies of the Software, and to permit persons to whom the Software is
> ++ * furnished to do so, subject to the following conditions:
> ++ *
> ++ * The above copyright notice and this permission notice shall be included in
> ++ * all copies or substantial portions of the Software.
> ++ *
> ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> FROM,
> ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
> ++ * THE SOFTWARE.
> ++ */
> ++
> ++#ifndef MMAP_FIXED_H
> ++#define MMAP_FIXED_H
> ++
> ++#ifndef MAP_FIXED_NOREPLACE
> ++#define MAP_FIXED_NOREPLACE 0x100000
> ++
> ++void *mmap_fixed_noreplace(void *addr, size_t len, int prot, int flags,
> ++ int fd, off_t offset);
> ++
> ++#else /* MAP_FIXED_NOREPLACE */
> ++#define mmap_fixed_noreplace mmap
> ++#endif /* MAP_FIXED_NOREPLACE */
> ++
> ++#endif /* MMAP_FIXED_H */
> +Index: qemu-8.2.0/linux-user/mmap.c
> +===================================================================
> +--- qemu-8.2.0.orig/linux-user/mmap.c
> ++++ qemu-8.2.0/linux-user/mmap.c
> +@@ -25,6 +25,7 @@
> + #include "user-mmap.h"
> + #include "target_mman.h"
> + #include "qemu/interval-tree.h"
> ++#include "mmap-fixed.h"
> +
> + #ifdef TARGET_ARM
> + #include "target/arm/cpu-features.h"
> +@@ -304,9 +305,9 @@ static bool mmap_frag(abi_ulong real_sta
> + * outside of the fragment we need to map. Allocate a new host
> + * page to cover, discarding whatever else may have been present.
> + */
> +- void *p = mmap(host_start, qemu_host_page_size,
> +- target_to_host_prot(prot),
> +- flags | MAP_ANONYMOUS, -1, 0);
> ++ void *p = mmap_fixed_noreplace(host_start, qemu_host_page_size,
> ++ target_to_host_prot(prot),
> ++ flags | MAP_ANONYMOUS, -1, 0);
> + if (p != host_start) {
> + if (p != MAP_FAILED) {
> + munmap(p, qemu_host_page_size);
> +@@ -405,8 +406,9 @@ abi_ulong mmap_find_vma(abi_ulong start,
> + * - mremap() with MREMAP_FIXED flag
> + * - shmat() with SHM_REMAP flag
> + */
> +- ptr = mmap(g2h_untagged(addr), size, PROT_NONE,
> +- MAP_ANONYMOUS | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
> ++ ptr = mmap_fixed_noreplace(g2h_untagged(addr), size, PROT_NONE,
> ++ MAP_ANONYMOUS | MAP_PRIVATE |
> MAP_NORESERVE,
> ++ -1, 0);
> +
> + /* ENOMEM, if host address space has no memory */
> + if (ptr == MAP_FAILED) {
> +@@ -600,16 +602,16 @@ abi_long target_mmap(abi_ulong start, ab
> + * especially important if qemu_host_page_size >
> + * qemu_real_host_page_size.
> + */
> +- p = mmap(g2h_untagged(start), host_len, host_prot,
> +- flags | MAP_FIXED | MAP_ANONYMOUS, -1, 0);
> ++ p = mmap_fixed_noreplace(g2h_untagged(start), host_len, host_prot,
> ++ flags | MAP_FIXED | MAP_ANONYMOUS, -1, 0);
> + if (p == MAP_FAILED) {
> + goto fail;
> + }
> + /* update start so that it points to the file position at 'offset' */
> + host_start = (uintptr_t)p;
> + if (!(flags & MAP_ANONYMOUS)) {
> +- p = mmap(g2h_untagged(start), len, host_prot,
> +- flags | MAP_FIXED, fd, host_offset);
> ++ p = mmap_fixed_noreplace(g2h_untagged(start), len, host_prot,
> ++ flags | MAP_FIXED, fd, host_offset);
> + if (p == MAP_FAILED) {
> + munmap(g2h_untagged(start), host_len);
> + goto fail;
> +@@ -734,8 +736,9 @@ abi_long target_mmap(abi_ulong start, ab
> + len1 = real_last - real_start + 1;
> + want_p = g2h_untagged(real_start);
> +
> +- p = mmap(want_p, len1, target_to_host_prot(target_prot),
> +- flags, fd, offset1);
> ++ p = mmap_fixed_noreplace(want_p, len1,
> ++ target_to_host_prot(target_prot),
> ++ flags, fd, offset1);
> + if (p != want_p) {
> + if (p != MAP_FAILED) {
> + munmap(p, len1);
> +@@ -837,9 +840,9 @@ static int mmap_reserve_or_unmap(abi_ulo
> + host_start = g2h_untagged(real_start);
> +
> + if (reserved_va) {
> +- void *ptr = mmap(host_start, real_len, PROT_NONE,
> +- MAP_FIXED | MAP_ANONYMOUS
> +- | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
> ++ void *ptr = mmap_fixed_noreplace(host_start, real_len, PROT_NONE,
> ++ MAP_FIXED | MAP_ANONYMOUS
> ++ | MAP_PRIVATE | MAP_NORESERVE,
> -1, 0);
> + return ptr == host_start ? 0 : -1;
> + }
> + return munmap(host_start, real_len);
> +Index: qemu-8.2.0/linux-user/syscall.c
> +===================================================================
> +--- qemu-8.2.0.orig/linux-user/syscall.c
> ++++ qemu-8.2.0/linux-user/syscall.c
> +@@ -145,6 +145,7 @@
> + #include "qapi/error.h"
> + #include "fd-trans.h"
> + #include "cpu_loop-common.h"
> ++#include "mmap-fixed.h"
> +
> + #ifndef CLONE_IO
> + #define CLONE_IO 0x80000000 /* Clone io context */
> diff --git
> a/meta/recipes-devtools/qemu/qemu/0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch b/meta/recipes-devtools/qemu/qemu/0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch
> new file mode 100644
> index 0000000000..081409f355
> --- /dev/null
> +++
> b/meta/recipes-devtools/qemu/qemu/0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch
> @@ -0,0 +1,51 @@
> +From 5c73e53997df800a742f9cd7355f3045861984bb Mon Sep 17 00:00:00 2001
> +From: Frederic Konrad <fkonrad@amd.com <mailto:fkonrad@amd.com>>
> +Date: Thu, 18 Jan 2024 10:43:44 +0000
> +Subject: [PATCH 2/2] linux-user/*: workaround for missing MAP_SHARED_VALIDATE
> +
> +QEMU v8.1.0 recently requires MAP_SHARED_VALIDATE flags implementation for
> mmap.
> +
> +This is missing from the Ubuntu 18.04 compiler but looks like to be in the
> +kernel source.
> +
> +Signed-off-by: Frederic Konrad <fkonrad@amd.com <mailto:fkonrad@amd.com>>
> +Signed-off-by: Francisco Iglesias <francisco.iglesias@amd.com
> <mailto:francisco.iglesias@amd.com>>
> +
> +Upstream-Status: Inappropriate [OE specific]
> +
> +The upstream only supports the last two major releases of an OS. The ones
> +they have declared all have kernel 4.17 or newer.
> +
> +See:
> +https://xilinx.slack.com/archives/D04G2647CTV/p1705074697942019
> <https://xilinx.slack.com/archives/D04G2647CTV/p1705074697942019>
> +
> +https://www.qemu.org/docs/master/about/build-platforms.html
> <https://www.qemu.org/docs/master/about/build-platforms.html>
> +
> + The project aims to support the most recent major version at all times for up
> + to five years after its initial release. Support for the previous major
> + version will be dropped 2 years after the new major version is released or
> + when the vendor itself drops support, whichever comes first.
> +
> +Signed-off-by: Mark Hatle <mark.hatle@amd.com <mailto:mark.hatle@amd.com>>
> +---
> + linux-user/mmap-fixed.h | 4 ++++
> + 1 file changed, 4 insertions(+)
> +
> +diff --git a/linux-user/mmap-fixed.h b/linux-user/mmap-fixed.h
> +index ef6eef5114..ec86586c1f 100644
> +--- a/linux-user/mmap-fixed.h
> ++++ b/linux-user/mmap-fixed.h
> +@@ -26,6 +26,10 @@
> + #ifndef MMAP_FIXED_H
> + #define MMAP_FIXED_H
> +
> ++#ifndef MAP_SHARED_VALIDATE
> ++#define MAP_SHARED_VALIDATE 0x03
> ++#endif
> ++
> + #ifndef MAP_FIXED_NOREPLACE
> + #define MAP_FIXED_NOREPLACE 0x100000
> +
> +--
> +2.34.1
> +
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#194331):
> https://lists.openembedded.org/g/openembedded-core/message/194331
> <https://lists.openembedded.org/g/openembedded-core/message/194331>
> Mute This Topic: https://lists.openembedded.org/mt/103962276/3617156
> <https://lists.openembedded.org/mt/103962276/3617156>
> Group Owner: openembedded-core+owner@lists.openembedded.org
> <mailto:openembedded-core%2Bowner@lists.openembedded.org>
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
> <https://lists.openembedded.org/g/openembedded-core/unsub>
> [martin.jansa@gmail.com <mailto:martin.jansa@gmail.com>]
> -=-=-=-=-=-=-=-=-=-=-=-
>
prev parent reply other threads:[~2024-01-25 22:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-25 21:03 [PATCH 0/1] Support running qemu on kernel older then 4.17 Mark Hatle
2024-01-25 21:03 ` [PATCH 1/1] qemu: Allow native and nativesdk versions on Linux " Mark Hatle
2024-01-25 21:41 ` [OE-core] " Alexander Kanavin
2024-01-25 22:23 ` Mark Hatle
2024-01-25 22:38 ` Richard Purdie
2024-01-25 21:42 ` Martin Jansa
2024-01-25 22:20 ` Mark Hatle [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4b6eca03-cc54-4a38-8aa0-73eb73efb6d5@kernel.crashing.org \
--to=mark.hatle@kernel.crashing.org \
--cc=mark.hatle@amd.com \
--cc=martin.jansa@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox