diff mbox

[v7,03/10] linux-user: Add support for syncfs() syscall

Message ID 20160922165712.79809-4-aleksandar.markovic@rt-rk.com (mailing list archive)
State New, archived
Headers show

Commit Message

Aleksandar Markovic Sept. 22, 2016, 4:56 p.m. UTC
From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>

This patch implements syncfs() syscall support. The implementation
consists of a straightforward invocation of host's syncfs() only.

Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
---
 linux-user/syscall.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Riku Voipio Oct. 7, 2016, 1:06 p.m. UTC | #1
On Thu, Sep 22, 2016 at 06:56:52PM +0200, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
> 
> This patch implements syncfs() syscall support. The implementation
> consists of a straightforward invocation of host's syncfs() only.
> 
> Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
> ---
>  linux-user/syscall.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 9f11ca2..1af3e10 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -8069,6 +8069,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
>          sync();
>          ret = 0;
>          break;
> +#if defined(TARGET_NR_syncfs)
> +    case TARGET_NR_syncfs:
> +        ret = get_errno(syncfs(arg1));
> +        break;
> +#endif

When compiling on Suse11:

linux-user/syscall.o: In function `do_syscall':
/work/linux-user/syscall.c:8090: undefined reference to `syncfs'

library support was added to glibc in version 2.14, which newer than
the glibc in the oldest distros qemu building is still supported (2.11
in Sles11).

CONFIG_SYNCFS checki and guard needed.

Riku

>      case TARGET_NR_kill:
>          ret = get_errno(safe_kill(arg1, target_to_host_signal(arg2)));
>          break;
> -- 
> 2.9.3
>
Aleksandar Markovic Oct. 7, 2016, 2:48 p.m. UTC | #2
Hello, Riku,

Thanks a lot for following up. I'm glad I now know the lowest version among supported glibcs. Would you like me to make a new version of two patches that you mentioned using detection in configure as you described, or perhaps you had something else in mind?

Thanks,
Aleksandar
diff mbox

Patch

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 9f11ca2..1af3e10 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8069,6 +8069,11 @@  abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
         sync();
         ret = 0;
         break;
+#if defined(TARGET_NR_syncfs)
+    case TARGET_NR_syncfs:
+        ret = get_errno(syncfs(arg1));
+        break;
+#endif
     case TARGET_NR_kill:
         ret = get_errno(safe_kill(arg1, target_to_host_signal(arg2)));
         break;