* xen bits broke x32 build @ 2023-04-01 8:40 Michael Tokarev 2023-04-01 11:45 ` Joao Martins 2023-04-11 11:56 ` Michael Tokarev 0 siblings, 2 replies; 11+ messages in thread From: Michael Tokarev @ 2023-04-01 8:40 UTC (permalink / raw) To: Joao Martins, QEMU Developers After bringing in xen guest support, qemu fails to build on x32: target/i386/kvm/xen-emu.c:876:5: note: in expansion of macro ‘qemu_build_assert’ 876 | qemu_build_assert(sizeof(struct vcpu_info) == 64); | ^~~~~~~~~~~~~~~~~ This one should be easy to fix, but I wonder if there are other issues with x32 exists.. Thanks, /mjt ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-01 8:40 xen bits broke x32 build Michael Tokarev @ 2023-04-01 11:45 ` Joao Martins 2023-04-01 11:57 ` Michael Tokarev 2023-04-01 12:07 ` Michael Tokarev 2023-04-11 11:56 ` Michael Tokarev 1 sibling, 2 replies; 11+ messages in thread From: Joao Martins @ 2023-04-01 11:45 UTC (permalink / raw) To: Michael Tokarev, QEMU Developers; +Cc: David Woodhouse, Paul Durrant On 01/04/2023 09:40, Michael Tokarev wrote: > After bringing in xen guest support, qemu fails to build on x32: > Adding the folks who added the feature too > target/i386/kvm/xen-emu.c:876:5: note: in expansion of macro ‘qemu_build_assert’ > 876 | qemu_build_assert(sizeof(struct vcpu_info) == 64); > | ^~~~~~~~~~~~~~~~~ > > This one should be easy to fix, but I wonder if there are other issues > with x32 exists.. > Not sure. struct vcpu_info is supposed to be 64bytes on both 32-bit and 64-bit builds. If anything maybe arch_vcpu_info struct is different on 32-bit and 64-bit... David, Paul, any ideas? ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-01 11:45 ` Joao Martins @ 2023-04-01 11:57 ` Michael Tokarev 2023-04-01 12:10 ` David Woodhouse 2023-04-01 12:07 ` Michael Tokarev 1 sibling, 1 reply; 11+ messages in thread From: Michael Tokarev @ 2023-04-01 11:57 UTC (permalink / raw) To: Joao Martins, QEMU Developers; +Cc: David Woodhouse, Paul Durrant 01.04.2023 14:45, Joao Martins пишет: > On 01/04/2023 09:40, Michael Tokarev wrote: >> After bringing in xen guest support, qemu fails to build on x32: >> Adding the folks who added the feature too > >> target/i386/kvm/xen-emu.c:876:5: note: in expansion of macro ‘qemu_build_assert’ >> 876 | qemu_build_assert(sizeof(struct vcpu_info) == 64); >> | ^~~~~~~~~~~~~~~~~ >> >> This one should be easy to fix, but I wonder if there are other issues >> with x32 exists.. >> > Not sure. > > struct vcpu_info is supposed to be 64bytes on both 32-bit and 64-bit builds. > > If anything maybe arch_vcpu_info struct is different on 32-bit and 64-bit... > David, Paul, any ideas? Yes, it is arch_vcpu_info. I assumed it is a trivial thing, but let me explain if it's not the case. include/hw/xen/interface/arch-x86/xen.h : #if defined(__i386__) #include "xen-x86_32.h" #elif defined(__x86_64__) #include "xen-x86_64.h" #endif (I wonder if it ever possible to have none of the two defined). Now, xen-x86_32.h has: struct arch_vcpu_info { unsigned long cr2; unsigned long pad[5]; /* sizeof(vcpu_info_t) == 64 */ }; Assuming sizeof(long)==32bits. But actually it is 64bits on x32. While xen-x86_64.h has: struct arch_vcpu_info { unsigned long cr2; unsigned long pad; /* sizeof(vcpu_info_t) == 64 */ }; It looks like for x32, the test in arch-x86/xen.h should be: #if defined(__x86_64__) #include "xen-x86_64.h" #else #include "xen-x86_32.h" #endif since x32 is almost like x86_64. The only difference from x86_64 is sizeof(pointer), which is 32bits. Well. Maybe xen support should be disabled entirely on x32. Or maybe x32 should be declared as unsupported entirely. I dunno. /mjt ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-01 11:57 ` Michael Tokarev @ 2023-04-01 12:10 ` David Woodhouse 2023-04-03 6:46 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 11+ messages in thread From: David Woodhouse @ 2023-04-01 12:10 UTC (permalink / raw) To: Michael Tokarev, Joao Martins, QEMU Developers; +Cc: Paul Durrant On 1 April 2023 12:57:33 BST, Michael Tokarev <mjt@tls.msk.ru> wrote: >01.04.2023 14:45, Joao Martins пишет: >> On 01/04/2023 09:40, Michael Tokarev wrote: >>> After bringing in xen guest support, qemu fails to build on x32: >>> Adding the folks who added the feature too >> >>> target/i386/kvm/xen-emu.c:876:5: note: in expansion of macro ‘qemu_build_assert’ >>> 876 | qemu_build_assert(sizeof(struct vcpu_info) == 64); >>> | ^~~~~~~~~~~~~~~~~ >>> >>> This one should be easy to fix, but I wonder if there are other issues >>> with x32 exists.. >>> >> Not sure. >> >> struct vcpu_info is supposed to be 64bytes on both 32-bit and 64-bit builds. >> >> If anything maybe arch_vcpu_info struct is different on 32-bit and 64-bit... >> David, Paul, any ideas? > >Yes, it is arch_vcpu_info. I assumed it is a trivial thing, but let me explain >if it's not the case. > >include/hw/xen/interface/arch-x86/xen.h : > >#if defined(__i386__) >#include "xen-x86_32.h" >#elif defined(__x86_64__) >#include "xen-x86_64.h" >#endif > >(I wonder if it ever possible to have none of the two defined). > >Now, xen-x86_32.h has: > >struct arch_vcpu_info { > unsigned long cr2; > unsigned long pad[5]; /* sizeof(vcpu_info_t) == 64 */ >}; > >Assuming sizeof(long)==32bits. But actually it is 64bits on x32. > >While xen-x86_64.h has: > >struct arch_vcpu_info { > unsigned long cr2; > unsigned long pad; /* sizeof(vcpu_info_t) == 64 */ >}; > > >It looks like for x32, the test in arch-x86/xen.h should be: > >#if defined(__x86_64__) >#include "xen-x86_64.h" >#else >#include "xen-x86_32.h" >#endif > >since x32 is almost like x86_64. The only difference from x86_64 >is sizeof(pointer), which is 32bits. Hm, doesn't x32 also align uint64_t to 64 bits (unlike i386 which only aligns it to 32 bits)? >Well. Maybe xen support should be disabled entirely on x32. >Or maybe x32 should be declared as unsupported entirely. >I dunno. We rely heavily on the struct layouts being precisely the same, since these are ABI for the Xen guests. Wherever there was some 32/64 compatibility issue — and often where there wasn't — that's why I littered it with those build assertions. But while there are enough in there to sanity check the i386 vs. x86_64 ABI differences, I wouldn't swear that I've put in enough checks for x32. So "it builds without hitting an assertion" does not necessarily mean it'll be *correct*. Let's disable it on x32. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-01 12:10 ` David Woodhouse @ 2023-04-03 6:46 ` Philippe Mathieu-Daudé 2023-04-03 8:46 ` David Woodhouse 0 siblings, 1 reply; 11+ messages in thread From: Philippe Mathieu-Daudé @ 2023-04-03 6:46 UTC (permalink / raw) To: David Woodhouse, Michael Tokarev, Joao Martins, QEMU Developers Cc: Paul Durrant On 1/4/23 14:10, David Woodhouse wrote: > On 1 April 2023 12:57:33 BST, Michael Tokarev <mjt@tls.msk.ru> wrote: >> 01.04.2023 14:45, Joao Martins пишет: >>> On 01/04/2023 09:40, Michael Tokarev wrote: >>>> After bringing in xen guest support, qemu fails to build on x32: >>>> Adding the folks who added the feature too >>> >>>> target/i386/kvm/xen-emu.c:876:5: note: in expansion of macro ‘qemu_build_assert’ >>>> 876 | qemu_build_assert(sizeof(struct vcpu_info) == 64); >>>> | ^~~~~~~~~~~~~~~~~ >>>> >>>> This one should be easy to fix, but I wonder if there are other issues >>>> with x32 exists.. >>>> >>> Not sure. >>> >>> struct vcpu_info is supposed to be 64bytes on both 32-bit and 64-bit builds. >>> >>> If anything maybe arch_vcpu_info struct is different on 32-bit and 64-bit... >>> David, Paul, any ideas? >> >> Yes, it is arch_vcpu_info. I assumed it is a trivial thing, but let me explain >> if it's not the case. >> >> include/hw/xen/interface/arch-x86/xen.h : >> >> #if defined(__i386__) >> #include "xen-x86_32.h" >> #elif defined(__x86_64__) >> #include "xen-x86_64.h" >> #endif >> >> (I wonder if it ever possible to have none of the two defined). >> >> Now, xen-x86_32.h has: >> >> struct arch_vcpu_info { >> unsigned long cr2; >> unsigned long pad[5]; /* sizeof(vcpu_info_t) == 64 */ >> }; >> >> Assuming sizeof(long)==32bits. But actually it is 64bits on x32. >> >> While xen-x86_64.h has: >> >> struct arch_vcpu_info { >> unsigned long cr2; >> unsigned long pad; /* sizeof(vcpu_info_t) == 64 */ >> }; >> >> >> It looks like for x32, the test in arch-x86/xen.h should be: >> >> #if defined(__x86_64__) >> #include "xen-x86_64.h" >> #else >> #include "xen-x86_32.h" >> #endif >> >> since x32 is almost like x86_64. The only difference from x86_64 >> is sizeof(pointer), which is 32bits. > > Hm, doesn't x32 also align uint64_t to 64 bits (unlike i386 which only aligns it to 32 bits)? > >> Well. Maybe xen support should be disabled entirely on x32. >> Or maybe x32 should be declared as unsupported entirely. >> I dunno. > > We rely heavily on the struct layouts being precisely the same, since these are ABI for the Xen guests. Wherever there was some 32/64 compatibility issue — and often where there wasn't — that's why I littered it with those build assertions. > > But while there are enough in there to sanity check the i386 vs. x86_64 ABI differences, I wouldn't swear that I've put in enough checks for x32. So "it builds without hitting an assertion" does not necessarily mean it'll be *correct*. Let's disable it on x32. Does "(unsigned) long" type mix well with "ABI"? ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-03 6:46 ` Philippe Mathieu-Daudé @ 2023-04-03 8:46 ` David Woodhouse 0 siblings, 0 replies; 11+ messages in thread From: David Woodhouse @ 2023-04-03 8:46 UTC (permalink / raw) To: Philippe Mathieu-Daudé, Michael Tokarev, Joao Martins, QEMU Developers Cc: Paul Durrant [-- Attachment #1: Type: text/plain, Size: 1687 bytes --] On Mon, 2023-04-03 at 08:46 +0200, Philippe Mathieu-Daudé wrote: > > > Well. Maybe xen support should be disabled entirely on x32. > > > Or maybe x32 should be declared as unsupported entirely. > > > I dunno. > > > > We rely heavily on the struct layouts being precisely the same, > > since these are ABI for the Xen guests. Wherever there was some > > 32/64 compatibility issue — and often where there wasn't — that's > > why I littered it with those build assertions. > > > > But while there are enough in there to sanity check the i386 vs. > > x86_64 ABI differences, I wouldn't swear that I've put in enough > > checks for x32. So "it builds without hitting an assertion" does > > not necessarily mean it'll be *correct*. Let's disable it on x32. > > Does "(unsigned) long" type mix well with "ABI"? No, but this is Xen. The i386 and x86_64 ABIs are different. My favourite Xen ABI for this is the vcpu_runstate_info: struct vcpu_runstate_info { int state; uint64_t state_entry_time; uint64_t time[4]; }; That's different between i386 and x86_64 not because of any of the sizes, but because of the *alignment* differences. Giving us four bytes of padding between 'state' and 'state_entry_time' in the x86_64 (and x32) version, and this for i386 compatibility mode: struct compat_vcpu_runstate_info { int state; uint64_t state_entry_time; uint64_t time[4]; } __attribute__((packed)); I suspect that an x32 build could probably get away with supporting a 32-bit guest, but 64-bit guest support would be entirely hosed. And it's the *compat* structures I've put the sanity checks on, not the native ones. [-- Attachment #2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 5965 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-01 11:45 ` Joao Martins 2023-04-01 11:57 ` Michael Tokarev @ 2023-04-01 12:07 ` Michael Tokarev 1 sibling, 0 replies; 11+ messages in thread From: Michael Tokarev @ 2023-04-01 12:07 UTC (permalink / raw) To: Joao Martins, QEMU Developers; +Cc: David Woodhouse, Paul Durrant To clarify: I don't think this needs fixing for 8.0. Yes, it's a regression on x32. Xen has never worked on x32, this just looks like forgotten case when it needs to be disabled in qemu for x86. It's trivial to work around by adding a --disable argument to configure. And generally I don't know anyone actually running qemu on x32. It's some exotic thing which apparently is going away by its own. Thanks, /mjt ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-01 8:40 xen bits broke x32 build Michael Tokarev 2023-04-01 11:45 ` Joao Martins @ 2023-04-11 11:56 ` Michael Tokarev 2023-04-11 12:09 ` Peter Maydell 1 sibling, 1 reply; 11+ messages in thread From: Michael Tokarev @ 2023-04-11 11:56 UTC (permalink / raw) To: Joao Martins, QEMU Developers, David Woodhouse 01.04.2023 11:40, Michael Tokarev wrote: > After bringing in xen guest support, qemu fails to build on x32: > > target/i386/kvm/xen-emu.c:876:5: note: in expansion of macro ‘qemu_build_assert’ > 876 | qemu_build_assert(sizeof(struct vcpu_info) == 64); > | ^~~~~~~~~~~~~~~~~ > > This one should be easy to fix, but I wonder if there are other issues > with x32 exists.. Ok, I took a look at how to disable this new XEN stuff on x32. It is the commit 820c1aba519bd072ac71c754733f6c86d8b4309 "xen: add CONFIG_XEN_BUS and CONFIG_XEN_EMU options for Xen emulation" adding this construct to hw/i386/Kconfig: config XEN_EMU bool default y depends on KVM && (I386 || X86_64) Since meson does not know about x32, and while ./conifgure does, it is not propagated to meson, and sure not propagated to Kconfig too, there's some more work needed to disable XEN_EMU on x32. Something like this? diff --git a/target/i386/Kconfig b/target/i386/Kconfig index ce6968906e..75a91f497a 100644 --- a/target/i386/Kconfig +++ b/target/i386/Kconfig @@ -3,3 +3,6 @@ config I386 config X86_64 bool + +config X32 + bool diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index d40802d83f..3ad6b44984 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -140,4 +140,4 @@ config VMMOUSE config XEN_EMU bool default y - depends on KVM && (I386 || X86_64) + depends on KVM && (I386 || X86_64) && !X32 diff --git a/meson.build b/meson.build index c44d05a13f..9e7c83fc6a 100644 --- a/meson.build +++ b/meson.build @@ -70,6 +70,11 @@ if cpu in ['riscv32', 'riscv64'] cpu = 'riscv' endif +x32 = false +if cpu == 'x86_64' + x32 = cc.sizeof('long') == 4 +endif + target_dirs = config_host['TARGET_DIRS'].split() have_linux_user = false have_bsd_user = false @@ -2554,7 +2559,8 @@ host_kconfig = \ ('CONFIG_LINUX' in config_host ? ['CONFIG_LINUX=y'] : []) + \ (have_pvrdma ? ['CONFIG_PVRDMA=y'] : []) + \ (multiprocess_allowed ? ['CONFIG_MULTIPROCESS_ALLOWED=y'] : []) + \ - (vfio_user_server_allowed ? ['CONFIG_VFIO_USER_SERVER_ALLOWED=y'] : []) + (vfio_user_server_allowed ? ['CONFIG_VFIO_USER_SERVER_ALLOWED=y'] : []) + \ + (x32 ? ['CONFIG_X32=y'] : []) ignored = [ 'TARGET_XML_FILES', 'TARGET_ABI_DIR', 'TARGET_ARCH' ] ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-11 11:56 ` Michael Tokarev @ 2023-04-11 12:09 ` Peter Maydell 2023-04-11 17:30 ` Michael Tokarev 0 siblings, 1 reply; 11+ messages in thread From: Peter Maydell @ 2023-04-11 12:09 UTC (permalink / raw) To: Michael Tokarev; +Cc: Joao Martins, QEMU Developers, David Woodhouse On Tue, 11 Apr 2023 at 12:57, Michael Tokarev <mjt@tls.msk.ru> wrote: > > 01.04.2023 11:40, Michael Tokarev wrote: > > After bringing in xen guest support, qemu fails to build on x32: > > > > target/i386/kvm/xen-emu.c:876:5: note: in expansion of macro ‘qemu_build_assert’ > > 876 | qemu_build_assert(sizeof(struct vcpu_info) == 64); > > | ^~~~~~~~~~~~~~~~~ > > > > This one should be easy to fix, but I wonder if there are other issues > > with x32 exists.. > > Ok, I took a look at how to disable this new XEN stuff on x32. > > It is the commit 820c1aba519bd072ac71c754733f6c86d8b4309 "xen: add > CONFIG_XEN_BUS and CONFIG_XEN_EMU options for Xen emulation" adding > this construct to hw/i386/Kconfig: > > config XEN_EMU > bool > default y > depends on KVM && (I386 || X86_64) > > Since meson does not know about x32, and while ./conifgure does, it > is not propagated to meson, and sure not propagated to Kconfig too, > there's some more work needed to disable XEN_EMU on x32. Frankly I would prefer to just say "we don't support x32". It's a weird non-standard configuration that as far as I'm aware is very little used. Its stats in the debian popularity-contest graphs peaked at 18 users in 2017, and have mostly been fluctuating between 1 and 3 for the last couple of years: https://popcon.debian.org/stat/sub-x32.png We're currently planning to deprecate-and-drop 32-bit x86 hosts, which are much more widely used than this. I see no reason why we should care about this oddball failed experiment of an ABI... thanks -- PMM ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-11 12:09 ` Peter Maydell @ 2023-04-11 17:30 ` Michael Tokarev 2023-04-12 10:19 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 11+ messages in thread From: Michael Tokarev @ 2023-04-11 17:30 UTC (permalink / raw) To: Peter Maydell; +Cc: Joao Martins, QEMU Developers, David Woodhouse 11.04.2023 15:09, Peter Maydell wrote: .. > Frankly I would prefer to just say "we don't support x32". > It's a weird non-standard configuration that as far as I'm > aware is very little used. Its stats in the debian > popularity-contest graphs peaked at 18 users in 2017, and > have mostly been fluctuating between 1 and 3 for the last > couple of years: > https://popcon.debian.org/stat/sub-x32.png x32 was a nice idea but it lacked some final steps for it to fly. In my opinion anyway. Its compactness and speed are fantastic, - qemu build is about 10..15% faster with x32 gcc than it is with x86_64 gcc. At the time debian picked it up, it was not very usable b/c too many things didn't work and needed care. Today, much more software actually works on x32. It is more, today with debian multiarch setup, it is possible to install some *parts* of the system to be x32 while the rest being x86_64, either for parts which benefits from x32 the most, or the other way around, main x32 and some parts x86_64. But it *still* lacks some infrastructure in debian, so it is possible to do with stable or testing distribution, - right now it is possible with unstable only. Maybe we can change that for bookworm+. The thing is that now, it is much more complete than it was in 2017, and it'd be really sad if it goes away. x32 reveals some interesting problems in the code such as type misuse, it already helped to find and fix some bugs in some software, - for example in samba, where a pointer was misused to store a time_t (which would break with past-2038 time_t). qemu never said it supports x32, and no one demanded such support from it. It's interesting to have it working there still, I *think*, as long as it does not require extra efforts. I'm fine to maintain the change required to keep it at least buildable on x32 in debian - again as long as it does not require huge efforts. > We're currently planning to deprecate-and-drop 32-bit x86 > hosts, which are much more widely used than this. I see > no reason why we should care about this oddball failed > experiment of an ABI... Thanks, /mjt ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: xen bits broke x32 build 2023-04-11 17:30 ` Michael Tokarev @ 2023-04-12 10:19 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 11+ messages in thread From: Philippe Mathieu-Daudé @ 2023-04-12 10:19 UTC (permalink / raw) To: Michael Tokarev, Peter Maydell Cc: Joao Martins, QEMU Developers, David Woodhouse On 11/4/23 19:30, Michael Tokarev wrote: > 11.04.2023 15:09, Peter Maydell wrote: > .. >> Frankly I would prefer to just say "we don't support x32". >> It's a weird non-standard configuration that as far as I'm >> aware is very little used. Its stats in the debian >> popularity-contest graphs peaked at 18 users in 2017, and >> have mostly been fluctuating between 1 and 3 for the last >> couple of years: >> https://popcon.debian.org/stat/sub-x32.png > > x32 was a nice idea but it lacked some final steps for it > to fly. I used to use a FreeRTOS POSIX/ucontext port compiled in x32. This was useful to mimic FreeRTOS baremetal ARM32 memory footprint. I see having a x32 QEMU binary as a masochist experiment =) > In my opinion anyway. Its compactness and speed > are fantastic, - qemu build is about 10..15% faster with > x32 gcc than it is with x86_64 gcc. > > At the time debian picked it up, it was not very usable > b/c too many things didn't work and needed care. Today, > much more software actually works on x32. It is more, > today with debian multiarch setup, it is possible to install > some *parts* of the system to be x32 while the rest being > x86_64, either for parts which benefits from x32 the most, > or the other way around, main x32 and some parts x86_64. > But it *still* lacks some infrastructure in debian, so it > is possible to do with stable or testing distribution, - > right now it is possible with unstable only. Maybe we > can change that for bookworm+. > > The thing is that now, it is much more complete than it > was in 2017, and it'd be really sad if it goes away. > > x32 reveals some interesting problems in the code such > as type misuse, it already helped to find and fix some > bugs in some software, - for example in samba, where > a pointer was misused to store a time_t (which would > break with past-2038 time_t). Why wasn't this caught by other 32-bit target? > qemu never said it supports x32, and no one demanded > such support from it. It's interesting to have it working > there still, I *think*, as long as it does not require > extra efforts. > > I'm fine to maintain the change required to keep it at > least buildable on x32 in debian - again as long as it > does not require huge efforts. > >> We're currently planning to deprecate-and-drop 32-bit x86 >> hosts, which are much more widely used than this. I see >> no reason why we should care about this oddball failed >> experiment of an ABI... > > Thanks, > > /mjt > ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-04-12 10:20 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-04-01 8:40 xen bits broke x32 build Michael Tokarev 2023-04-01 11:45 ` Joao Martins 2023-04-01 11:57 ` Michael Tokarev 2023-04-01 12:10 ` David Woodhouse 2023-04-03 6:46 ` Philippe Mathieu-Daudé 2023-04-03 8:46 ` David Woodhouse 2023-04-01 12:07 ` Michael Tokarev 2023-04-11 11:56 ` Michael Tokarev 2023-04-11 12:09 ` Peter Maydell 2023-04-11 17:30 ` Michael Tokarev 2023-04-12 10:19 ` Philippe Mathieu-Daudé
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).