Message ID | 20250110203401.178532-1-pierrick.bouvier@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | Enable clang build on Windows | expand |
On 1/10/25 12:33, Pierrick Bouvier wrote: > For now, it was only possible to build plugins using GCC on Windows. However, > windows-aarch64 only supports Clang. > This biggest roadblock was to get rid of gcc_struct attribute, which is not > supported by Clang. After investigation, we proved it was safe to drop it. > > Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and aarch64 > hosts. > > v1 contained warning fixes and various bits that have been upstreamed already. > The only bits left in this series are the gcc_struct removal, and fixing the > plugins build with clang. > > This series is for 10.0, as we decided to not include the gcc_struct removal is > 9.2 release. > > All patches are now reviewed, so this series can be pulled. I'll report that to > MSYS2 too, so we can enable clang environments for QEMU. > > v1: https://patchew.org/QEMU/20241031040426.772604-1-pierrick.bouvier@linaro.org/ > > v2: > - drop attribute gcc_struct instead of using -mno-ms-bitfields option > - add a section about bitfields in documentation > > v3: > - explain why gcc_struct attribute matters in packed structs in commit message > - reword the bitfields documentation with suggestions given > > v4: > - edit for bitfields doc requested by Philippe > > Pierrick Bouvier (3): > win32: remove usage of attribute gcc_struct > docs/devel/style: add a section about bitfield, and disallow them for > packed structures > plugins: enable linking with clang/lld > > docs/devel/style.rst | 20 +++++++++++++++++++ > meson.build | 6 +++--- > include/qemu/compiler.h | 7 +------ > scripts/cocci-macro-file.h | 6 +----- > subprojects/libvhost-user/libvhost-user.h | 6 +----- > contrib/plugins/meson.build | 2 +- > plugins/meson.build | 24 +++++++++++++++++++---- > tests/tcg/plugins/meson.build | 3 +-- > 8 files changed, 48 insertions(+), 26 deletions(-) > It would be nice if a maintainer could pull this, so we can get this merged upstream. Thanks, Pierrick
On 10/1/25 21:37, Pierrick Bouvier wrote: > On 1/10/25 12:33, Pierrick Bouvier wrote: >> For now, it was only possible to build plugins using GCC on Windows. >> However, >> windows-aarch64 only supports Clang. >> This biggest roadblock was to get rid of gcc_struct attribute, which >> is not >> supported by Clang. After investigation, we proved it was safe to drop >> it. >> >> Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and >> aarch64 >> hosts. >> >> v1 contained warning fixes and various bits that have been upstreamed >> already. >> The only bits left in this series are the gcc_struct removal, and >> fixing the >> plugins build with clang. >> >> This series is for 10.0, as we decided to not include the gcc_struct >> removal is >> 9.2 release. >> >> All patches are now reviewed, so this series can be pulled. I'll >> report that to >> MSYS2 too, so we can enable clang environments for QEMU. >> >> v1: https://patchew.org/QEMU/20241031040426.772604-1- >> pierrick.bouvier@linaro.org/ >> >> v2: >> - drop attribute gcc_struct instead of using -mno-ms-bitfields option >> - add a section about bitfields in documentation >> >> v3: >> - explain why gcc_struct attribute matters in packed structs in commit >> message >> - reword the bitfields documentation with suggestions given >> >> v4: >> - edit for bitfields doc requested by Philippe >> >> Pierrick Bouvier (3): >> win32: remove usage of attribute gcc_struct >> docs/devel/style: add a section about bitfield, and disallow them for >> packed structures >> plugins: enable linking with clang/lld >> >> docs/devel/style.rst | 20 +++++++++++++++++++ >> meson.build | 6 +++--- >> include/qemu/compiler.h | 7 +------ >> scripts/cocci-macro-file.h | 6 +----- >> subprojects/libvhost-user/libvhost-user.h | 6 +----- >> contrib/plugins/meson.build | 2 +- >> plugins/meson.build | 24 +++++++++++++++++++---- >> tests/tcg/plugins/meson.build | 3 +-- >> 8 files changed, 48 insertions(+), 26 deletions(-) >> > > It would be nice if a maintainer could pull this, so we can get this > merged upstream. That'd be Thomas or Alex I suppose.
Am 10.01.25 um 21:33 schrieb Pierrick Bouvier: > For now, it was only possible to build plugins using GCC on Windows. However, > windows-aarch64 only supports Clang. > This biggest roadblock was to get rid of gcc_struct attribute, which is not > supported by Clang. After investigation, we proved it was safe to drop it. > > Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and aarch64 > hosts. > > v1 contained warning fixes and various bits that have been upstreamed already. > The only bits left in this series are the gcc_struct removal, and fixing the > plugins build with clang. > > This series is for 10.0, as we decided to not include the gcc_struct removal is > 9.2 release. > > All patches are now reviewed, so this series can be pulled. I'll report that to > MSYS2 too, so we can enable clang environments for QEMU. > > v1: https://patchew.org/QEMU/20241031040426.772604-1-pierrick.bouvier@linaro.org/ > > v2: > - drop attribute gcc_struct instead of using -mno-ms-bitfields option > - add a section about bitfields in documentation > > v3: > - explain why gcc_struct attribute matters in packed structs in commit message > - reword the bitfields documentation with suggestions given > > v4: > - edit for bitfields doc requested by Philippe > > Pierrick Bouvier (3): > win32: remove usage of attribute gcc_struct > docs/devel/style: add a section about bitfield, and disallow them for > packed structures > plugins: enable linking with clang/lld > > docs/devel/style.rst | 20 +++++++++++++++++++ > meson.build | 6 +++--- > include/qemu/compiler.h | 7 +------ > scripts/cocci-macro-file.h | 6 +----- > subprojects/libvhost-user/libvhost-user.h | 6 +----- > contrib/plugins/meson.build | 2 +- > plugins/meson.build | 24 +++++++++++++++++++---- > tests/tcg/plugins/meson.build | 3 +-- > 8 files changed, 48 insertions(+), 26 deletions(-) This nice series allows building QEMU for Windows with the LLVM cross compiler on my ARM64 machine, so you can add Tested-by: Stefan Weil <sw@weilnetz.de> I only needed a trivial additional fix in scripts/nsis.py for `make installer` because the usual GNU objdump and the LLVM objdump (or the cross x86_64-w64-mingw32-objdump in my test) produce slightly different output (indentation with \t, indentation with four spaces). I'll prepare a patch which eliminates the need for objdump, so no intermediate fix is needed for this. Stefan W.
On 1/11/25 14:08, Stefan Weil wrote: > Am 10.01.25 um 21:33 schrieb Pierrick Bouvier: >> For now, it was only possible to build plugins using GCC on Windows. However, >> windows-aarch64 only supports Clang. >> This biggest roadblock was to get rid of gcc_struct attribute, which is not >> supported by Clang. After investigation, we proved it was safe to drop it. >> >> Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and aarch64 >> hosts. >> >> v1 contained warning fixes and various bits that have been upstreamed already. >> The only bits left in this series are the gcc_struct removal, and fixing the >> plugins build with clang. >> >> This series is for 10.0, as we decided to not include the gcc_struct removal is >> 9.2 release. >> >> All patches are now reviewed, so this series can be pulled. I'll report that to >> MSYS2 too, so we can enable clang environments for QEMU. >> >> v1: https://patchew.org/QEMU/20241031040426.772604-1-pierrick.bouvier@linaro.org/ >> >> v2: >> - drop attribute gcc_struct instead of using -mno-ms-bitfields option >> - add a section about bitfields in documentation >> >> v3: >> - explain why gcc_struct attribute matters in packed structs in commit message >> - reword the bitfields documentation with suggestions given >> >> v4: >> - edit for bitfields doc requested by Philippe >> >> Pierrick Bouvier (3): >> win32: remove usage of attribute gcc_struct >> docs/devel/style: add a section about bitfield, and disallow them for >> packed structures >> plugins: enable linking with clang/lld >> >> docs/devel/style.rst | 20 +++++++++++++++++++ >> meson.build | 6 +++--- >> include/qemu/compiler.h | 7 +------ >> scripts/cocci-macro-file.h | 6 +----- >> subprojects/libvhost-user/libvhost-user.h | 6 +----- >> contrib/plugins/meson.build | 2 +- >> plugins/meson.build | 24 +++++++++++++++++++---- >> tests/tcg/plugins/meson.build | 3 +-- >> 8 files changed, 48 insertions(+), 26 deletions(-) > > This nice series allows building QEMU for Windows with the LLVM cross > compiler on my ARM64 machine, so you can add > > Tested-by: Stefan Weil <sw@weilnetz.de> > > I only needed a trivial additional fix in scripts/nsis.py for `make > installer` because the usual GNU objdump and the LLVM objdump (or the > cross x86_64-w64-mingw32-objdump in my test) produce slightly different > output (indentation with \t, indentation with four spaces). I'll prepare > a patch which eliminates the need for objdump, so no intermediate fix is > needed for this. > > Stefan W. > Thanks for testing it Stefan. Once merged, I'll share this with MSYS2 folks, so they can backport this series to 9.2, and enable clang based environments (including for windows-arm64). Regards, Pierrick
On 11/1/25 16:47, Philippe Mathieu-Daudé wrote: > On 10/1/25 21:37, Pierrick Bouvier wrote: >> On 1/10/25 12:33, Pierrick Bouvier wrote: >>> For now, it was only possible to build plugins using GCC on Windows. >>> However, >>> windows-aarch64 only supports Clang. >>> This biggest roadblock was to get rid of gcc_struct attribute, which >>> is not >>> supported by Clang. After investigation, we proved it was safe to >>> drop it. >>> >>> Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and >>> aarch64 >>> hosts. >>> >>> v1 contained warning fixes and various bits that have been upstreamed >>> already. >>> The only bits left in this series are the gcc_struct removal, and >>> fixing the >>> plugins build with clang. >>> >>> This series is for 10.0, as we decided to not include the gcc_struct >>> removal is >>> 9.2 release. >>> >>> All patches are now reviewed, so this series can be pulled. I'll >>> report that to >>> MSYS2 too, so we can enable clang environments for QEMU. >>> >>> v1: https://patchew.org/QEMU/20241031040426.772604-1- >>> pierrick.bouvier@linaro.org/ >>> >>> v2: >>> - drop attribute gcc_struct instead of using -mno-ms-bitfields option >>> - add a section about bitfields in documentation >>> >>> v3: >>> - explain why gcc_struct attribute matters in packed structs in >>> commit message >>> - reword the bitfields documentation with suggestions given >>> >>> v4: >>> - edit for bitfields doc requested by Philippe >>> >>> Pierrick Bouvier (3): >>> win32: remove usage of attribute gcc_struct >>> docs/devel/style: add a section about bitfield, and disallow them for >>> packed structures >>> plugins: enable linking with clang/lld >>> >>> docs/devel/style.rst | 20 +++++++++++++++++++ >>> meson.build | 6 +++--- >>> include/qemu/compiler.h | 7 +------ >>> scripts/cocci-macro-file.h | 6 +----- >>> subprojects/libvhost-user/libvhost-user.h | 6 +----- >>> contrib/plugins/meson.build | 2 +- >>> plugins/meson.build | 24 +++++++++++++++++++---- >>> tests/tcg/plugins/meson.build | 3 +-- >>> 8 files changed, 48 insertions(+), 26 deletions(-) >>> >> >> It would be nice if a maintainer could pull this, so we can get this >> merged upstream. > > That'd be Thomas or Alex I suppose. (That said, I don't mind to merge if they are busy). Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On 11/01/2025 16.47, Philippe Mathieu-Daudé wrote: > On 10/1/25 21:37, Pierrick Bouvier wrote: >> On 1/10/25 12:33, Pierrick Bouvier wrote: >>> For now, it was only possible to build plugins using GCC on Windows. >>> However, >>> windows-aarch64 only supports Clang. >>> This biggest roadblock was to get rid of gcc_struct attribute, which is not >>> supported by Clang. After investigation, we proved it was safe to drop it. >>> >>> Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and >>> aarch64 >>> hosts. >>> >>> v1 contained warning fixes and various bits that have been upstreamed >>> already. >>> The only bits left in this series are the gcc_struct removal, and fixing the >>> plugins build with clang. >>> >>> This series is for 10.0, as we decided to not include the gcc_struct >>> removal is >>> 9.2 release. >>> >>> All patches are now reviewed, so this series can be pulled. I'll report >>> that to >>> MSYS2 too, so we can enable clang environments for QEMU. >>> >>> v1: https://patchew.org/QEMU/20241031040426.772604-1- >>> pierrick.bouvier@linaro.org/ >>> >>> v2: >>> - drop attribute gcc_struct instead of using -mno-ms-bitfields option >>> - add a section about bitfields in documentation >>> >>> v3: >>> - explain why gcc_struct attribute matters in packed structs in commit >>> message >>> - reword the bitfields documentation with suggestions given >>> >>> v4: >>> - edit for bitfields doc requested by Philippe >>> >>> Pierrick Bouvier (3): >>> win32: remove usage of attribute gcc_struct >>> docs/devel/style: add a section about bitfield, and disallow them for >>> packed structures >>> plugins: enable linking with clang/lld >>> >>> docs/devel/style.rst | 20 +++++++++++++++++++ >>> meson.build | 6 +++--- >>> include/qemu/compiler.h | 7 +------ >>> scripts/cocci-macro-file.h | 6 +----- >>> subprojects/libvhost-user/libvhost-user.h | 6 +----- >>> contrib/plugins/meson.build | 2 +- >>> plugins/meson.build | 24 +++++++++++++++++++---- >>> tests/tcg/plugins/meson.build | 3 +-- >>> 8 files changed, 48 insertions(+), 26 deletions(-) >>> >> >> It would be nice if a maintainer could pull this, so we can get this >> merged upstream. > > That'd be Thomas or Alex I suppose. This touches plugins, so I think it should go through Alex' tree? Thomas
On 1/12/25 22:26, Thomas Huth wrote: > On 11/01/2025 16.47, Philippe Mathieu-Daudé wrote: >> On 10/1/25 21:37, Pierrick Bouvier wrote: >>> On 1/10/25 12:33, Pierrick Bouvier wrote: >>>> For now, it was only possible to build plugins using GCC on Windows. >>>> However, >>>> windows-aarch64 only supports Clang. >>>> This biggest roadblock was to get rid of gcc_struct attribute, which is not >>>> supported by Clang. After investigation, we proved it was safe to drop it. >>>> >>>> Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and >>>> aarch64 >>>> hosts. >>>> >>>> v1 contained warning fixes and various bits that have been upstreamed >>>> already. >>>> The only bits left in this series are the gcc_struct removal, and fixing the >>>> plugins build with clang. >>>> >>>> This series is for 10.0, as we decided to not include the gcc_struct >>>> removal is >>>> 9.2 release. >>>> >>>> All patches are now reviewed, so this series can be pulled. I'll report >>>> that to >>>> MSYS2 too, so we can enable clang environments for QEMU. >>>> >>>> v1: https://patchew.org/QEMU/20241031040426.772604-1- >>>> pierrick.bouvier@linaro.org/ >>>> >>>> v2: >>>> - drop attribute gcc_struct instead of using -mno-ms-bitfields option >>>> - add a section about bitfields in documentation >>>> >>>> v3: >>>> - explain why gcc_struct attribute matters in packed structs in commit >>>> message >>>> - reword the bitfields documentation with suggestions given >>>> >>>> v4: >>>> - edit for bitfields doc requested by Philippe >>>> >>>> Pierrick Bouvier (3): >>>> win32: remove usage of attribute gcc_struct >>>> docs/devel/style: add a section about bitfield, and disallow them for >>>> packed structures >>>> plugins: enable linking with clang/lld >>>> >>>> docs/devel/style.rst | 20 +++++++++++++++++++ >>>> meson.build | 6 +++--- >>>> include/qemu/compiler.h | 7 +------ >>>> scripts/cocci-macro-file.h | 6 +----- >>>> subprojects/libvhost-user/libvhost-user.h | 6 +----- >>>> contrib/plugins/meson.build | 2 +- >>>> plugins/meson.build | 24 +++++++++++++++++++---- >>>> tests/tcg/plugins/meson.build | 3 +-- >>>> 8 files changed, 48 insertions(+), 26 deletions(-) >>>> >>> >>> It would be nice if a maintainer could pull this, so we can get this >>> merged upstream. >> >> That'd be Thomas or Alex I suppose. > > This touches plugins, so I think it should go through Alex' tree? > > Thomas > > It's touching plugins, but it does a system wide change as well (which is the most important part). It's not really important who merges this, but it would be better if the series could be pulled as a whole, instead of breaking it into multiple subsystems. Thanks, Pierrick
Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > On 1/12/25 22:26, Thomas Huth wrote: >> On 11/01/2025 16.47, Philippe Mathieu-Daudé wrote: >>> On 10/1/25 21:37, Pierrick Bouvier wrote: >>>> On 1/10/25 12:33, Pierrick Bouvier wrote: >>>>> For now, it was only possible to build plugins using GCC on Windows. >>>>> However, >>>>> windows-aarch64 only supports Clang. >>>>> This biggest roadblock was to get rid of gcc_struct attribute, which is not >>>>> supported by Clang. After investigation, we proved it was safe to drop it. >>>>> >>>>> Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and >>>>> aarch64 >>>>> hosts. >>>>> >>>>> v1 contained warning fixes and various bits that have been upstreamed >>>>> already. >>>>> The only bits left in this series are the gcc_struct removal, and fixing the >>>>> plugins build with clang. >>>>> >>>>> This series is for 10.0, as we decided to not include the gcc_struct >>>>> removal is >>>>> 9.2 release. >>>>> >>>>> All patches are now reviewed, so this series can be pulled. I'll report >>>>> that to >>>>> MSYS2 too, so we can enable clang environments for QEMU. >>>>> >>>>> v1: https://patchew.org/QEMU/20241031040426.772604-1- >>>>> pierrick.bouvier@linaro.org/ >>>>> >>>>> v2: >>>>> - drop attribute gcc_struct instead of using -mno-ms-bitfields option >>>>> - add a section about bitfields in documentation >>>>> >>>>> v3: >>>>> - explain why gcc_struct attribute matters in packed structs in commit >>>>> message >>>>> - reword the bitfields documentation with suggestions given >>>>> >>>>> v4: >>>>> - edit for bitfields doc requested by Philippe >>>>> >>>>> Pierrick Bouvier (3): >>>>> win32: remove usage of attribute gcc_struct >>>>> docs/devel/style: add a section about bitfield, and disallow them for >>>>> packed structures >>>>> plugins: enable linking with clang/lld >>>>> >>>>> docs/devel/style.rst | 20 +++++++++++++++++++ >>>>> meson.build | 6 +++--- >>>>> include/qemu/compiler.h | 7 +------ >>>>> scripts/cocci-macro-file.h | 6 +----- >>>>> subprojects/libvhost-user/libvhost-user.h | 6 +----- >>>>> contrib/plugins/meson.build | 2 +- >>>>> plugins/meson.build | 24 +++++++++++++++++++---- >>>>> tests/tcg/plugins/meson.build | 3 +-- >>>>> 8 files changed, 48 insertions(+), 26 deletions(-) >>>>> >>>> >>>> It would be nice if a maintainer could pull this, so we can get this >>>> merged upstream. >>> >>> That'd be Thomas or Alex I suppose. >> This touches plugins, so I think it should go through Alex' tree? >> Thomas >> > > It's touching plugins, but it does a system wide change as well (which > is the most important part). > > It's not really important who merges this, but it would be better if > the series could be pulled as a whole, instead of breaking it into > multiple subsystems. I'll look at it tomorrow when going through my maintainer queue. > > Thanks, > Pierrick
On 1/13/25 13:19, Alex Bennée wrote: > Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > >> On 1/12/25 22:26, Thomas Huth wrote: >>> On 11/01/2025 16.47, Philippe Mathieu-Daudé wrote: >>>> On 10/1/25 21:37, Pierrick Bouvier wrote: >>>>> On 1/10/25 12:33, Pierrick Bouvier wrote: >>>>>> For now, it was only possible to build plugins using GCC on Windows. >>>>>> However, >>>>>> windows-aarch64 only supports Clang. >>>>>> This biggest roadblock was to get rid of gcc_struct attribute, which is not >>>>>> supported by Clang. After investigation, we proved it was safe to drop it. >>>>>> >>>>>> Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and >>>>>> aarch64 >>>>>> hosts. >>>>>> >>>>>> v1 contained warning fixes and various bits that have been upstreamed >>>>>> already. >>>>>> The only bits left in this series are the gcc_struct removal, and fixing the >>>>>> plugins build with clang. >>>>>> >>>>>> This series is for 10.0, as we decided to not include the gcc_struct >>>>>> removal is >>>>>> 9.2 release. >>>>>> >>>>>> All patches are now reviewed, so this series can be pulled. I'll report >>>>>> that to >>>>>> MSYS2 too, so we can enable clang environments for QEMU. >>>>>> >>>>>> v1: https://patchew.org/QEMU/20241031040426.772604-1- >>>>>> pierrick.bouvier@linaro.org/ >>>>>> >>>>>> v2: >>>>>> - drop attribute gcc_struct instead of using -mno-ms-bitfields option >>>>>> - add a section about bitfields in documentation >>>>>> >>>>>> v3: >>>>>> - explain why gcc_struct attribute matters in packed structs in commit >>>>>> message >>>>>> - reword the bitfields documentation with suggestions given >>>>>> >>>>>> v4: >>>>>> - edit for bitfields doc requested by Philippe >>>>>> >>>>>> Pierrick Bouvier (3): >>>>>> win32: remove usage of attribute gcc_struct >>>>>> docs/devel/style: add a section about bitfield, and disallow them for >>>>>> packed structures >>>>>> plugins: enable linking with clang/lld >>>>>> >>>>>> docs/devel/style.rst | 20 +++++++++++++++++++ >>>>>> meson.build | 6 +++--- >>>>>> include/qemu/compiler.h | 7 +------ >>>>>> scripts/cocci-macro-file.h | 6 +----- >>>>>> subprojects/libvhost-user/libvhost-user.h | 6 +----- >>>>>> contrib/plugins/meson.build | 2 +- >>>>>> plugins/meson.build | 24 +++++++++++++++++++---- >>>>>> tests/tcg/plugins/meson.build | 3 +-- >>>>>> 8 files changed, 48 insertions(+), 26 deletions(-) >>>>>> >>>>> >>>>> It would be nice if a maintainer could pull this, so we can get this >>>>> merged upstream. >>>> >>>> That'd be Thomas or Alex I suppose. >>> This touches plugins, so I think it should go through Alex' tree? >>> Thomas >>> >> >> It's touching plugins, but it does a system wide change as well (which >> is the most important part). >> >> It's not really important who merges this, but it would be better if >> the series could be pulled as a whole, instead of breaking it into >> multiple subsystems. > > I'll look at it tomorrow when going through my maintainer queue. > Thanks Alex :). >> >> Thanks, >> Pierrick >
Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > For now, it was only possible to build plugins using GCC on Windows. However, > windows-aarch64 only supports Clang. > This biggest roadblock was to get rid of gcc_struct attribute, which is not > supported by Clang. After investigation, we proved it was safe to drop it. > > Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and aarch64 > hosts. <snip> Queued to maintainer/jan-2025 and testing/next, thanks.
On 14/1/25 09:20, Alex Bennée wrote: > Pierrick Bouvier <pierrick.bouvier@linaro.org> writes: > >> For now, it was only possible to build plugins using GCC on Windows. However, >> windows-aarch64 only supports Clang. >> This biggest roadblock was to get rid of gcc_struct attribute, which is not >> supported by Clang. After investigation, we proved it was safe to drop it. >> >> Built and tested on Windows (all msys env)/Linux/MacOS for x86_64 and aarch64 >> hosts. > <snip> > > Queued to maintainer/jan-2025 and testing/next, thanks. Please also take this one on top: https://lore.kernel.org/qemu-devel/20250111215244.1680931-1-sw@weilnetz.de/ Thanks!