Hi Matt,
On 7/27/26 18:06, Matt Turner wrote:
The fsopen(), fsconfig(), fsmount() and fspick() implementations are
guarded by defined(NR_fsopen) rather than defined(__NR_fsopen). No such
macro exists, so the guard is never true and the entire series compiles
out. Guests calling any of the four get -ENOSYS, which for example makes
systemd's credential setup fail with EXIT_CREDENTIALS for most units.
The strace bits for fsconfig() have the same typo.
Fixes: 767c32fe6983 ("linux-user: implement fsmount(2) series of syscalls")
Fixes: 6e0aa9f6c731 ("linux-user/strace: add fsmount series of syscalls")
Signed-off-by: Matt Turner <[email protected]>
---
linux-user/strace.c | 2 +-
linux-user/strace.list | 2 +-
linux-user/syscall.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git ./linux-user/strace.c ./linux-user/strace.c
index 3a81cc95f4..af1cf9548a 100644
--- ./linux-user/strace.c
+++ ./linux-user/strace.c
@@ -4344,7 +4344,7 @@ print_statx(CPUArchState *cpu_env, const struct
syscallname *name,
}
#endif
-#if defined(TARGET_NR_fsconfig) && defined(NR_fsconfig)
+#if defined(TARGET_NR_fsconfig) && defined(__NR_fsconfig)
That's basically already what I had in my pull request, nevertheless
the build failed as Stefan reported:
https://gitlab.com/qemu-project/qemu/-/jobs/15553379213#L2358
I can try to check later today or tomorrow, unless you find the
cause earlier than me...
Helge