diff options
author | WANG Xuerui <xen0n@gentoo.org> | 2022-10-09 14:08:13 +0800 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2022-10-21 17:46:19 +0200 |
commit | 35a2c85f7d691db7aa2c47181902ac87478eef7a (patch) | |
tree | 8cf02bc95d6d1b5cbc01f1701fe33bd275e739e3 /linux-user/strace.list | |
parent | ed98cdecf8dabce137f693641777503112d884b3 (diff) |
linux-user: Implement faccessat2
User space has been preferring this syscall for a while, due to its
closer match with C semantics, and newer platforms such as LoongArch
apparently have libc implementations that don't fallback to faccessat
so normal access checks are failing without the emulation in place.
Tested by successfully emerging several packages within a Gentoo loong
stage3 chroot, emulated on amd64 with help of static qemu-loongarch64.
Reported-by: Andreas K. Hüttel <dilfridge@gentoo.org>
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
Message-Id: <20221009060813.2289077-1-xen0n@gentoo.org>
[lv: removing defined(__NR_faccessat2) in syscall.c,
adding defined(TARGET_NR_faccessat2) on print_faccessat()]
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'linux-user/strace.list')
-rw-r--r-- | linux-user/strace.list | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/linux-user/strace.list b/linux-user/strace.list index a87415bf3d..3df2184580 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -178,6 +178,9 @@ #ifdef TARGET_NR_faccessat { TARGET_NR_faccessat, "faccessat" , NULL, print_faccessat, NULL }, #endif +#ifdef TARGET_NR_faccessat2 +{ TARGET_NR_faccessat2, "faccessat2" , NULL, print_faccessat, NULL }, +#endif #ifdef TARGET_NR_fadvise64 { TARGET_NR_fadvise64, "fadvise64" , NULL, NULL, NULL }, #endif |