qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] linux-user: fix problems with inotify syscalls
@ 2009-03-28 20:49 Nathan Froyd
  2009-03-30 21:15 ` Riku Voipio
  2009-04-08 21:30 ` Aurelien Jarno
  0 siblings, 2 replies; 3+ messages in thread
From: Nathan Froyd @ 2009-03-28 20:49 UTC (permalink / raw)
  To: qemu-devel

The sys_inotify* calls are defined if the target supports them and the
host supports the necessary syscalls.  But the syscalls are handled if
the target supports them.  This situation leads to compilation failures
when the host doesn't support the necessary syscalls, as the linker will
complain about undefined functions.

Fix this state of affairs by making the handling conditions the same as
the call definition conditions.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
---
 linux-user/syscall.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 226ee6c..8608171 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6109,19 +6109,19 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
         ret = do_futex(arg1, arg2, arg3, arg4, arg5, arg6);
         break;
 #endif
-#ifdef TARGET_NR_inotify_init
+#if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init)
     case TARGET_NR_inotify_init:
         ret = get_errno(sys_inotify_init());
         break;
 #endif
-#ifdef TARGET_NR_inotify_add_watch
+#if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
     case TARGET_NR_inotify_add_watch:
         p = lock_user_string(arg2);
         ret = get_errno(sys_inotify_add_watch(arg1, path(p), arg3));
         unlock_user(p, arg2, 0);
         break;
 #endif
-#ifdef TARGET_NR_inotify_rm_watch
+#if defined(TARGET_NR_inotify_rm_watch) && defined(__NR_inotify_rm_watch)
     case TARGET_NR_inotify_rm_watch:
         ret = get_errno(sys_inotify_rm_watch(arg1, arg2));
         break;
-- 
1.6.0.5

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] linux-user: fix problems with inotify syscalls
  2009-03-28 20:49 [Qemu-devel] [PATCH] linux-user: fix problems with inotify syscalls Nathan Froyd
@ 2009-03-30 21:15 ` Riku Voipio
  2009-04-08 21:30 ` Aurelien Jarno
  1 sibling, 0 replies; 3+ messages in thread
From: Riku Voipio @ 2009-03-30 21:15 UTC (permalink / raw)
  To: qemu-devel

On Sat, Mar 28, 2009 at 01:49:46PM -0700, Nathan Froyd wrote:
> The sys_inotify* calls are defined if the target supports them and the
> host supports the necessary syscalls.  But the syscalls are handled if
> the target supports them.  This situation leads to compilation failures
> when the host doesn't support the necessary syscalls, as the linker will
> complain about undefined functions.

Looks ok to me, this is how the *at syscalls are #ifdeffed as well.

Acked-By: Riku Voipio <riku.voipio@iki.fi>

> Fix this state of affairs by making the handling conditions the same as
> the call definition conditions.

> Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
> ---
>  linux-user/syscall.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 226ee6c..8608171 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -6109,19 +6109,19 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
>          ret = do_futex(arg1, arg2, arg3, arg4, arg5, arg6);
>          break;
>  #endif
> -#ifdef TARGET_NR_inotify_init
> +#if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init)
>      case TARGET_NR_inotify_init:
>          ret = get_errno(sys_inotify_init());
>          break;
>  #endif
> -#ifdef TARGET_NR_inotify_add_watch
> +#if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
>      case TARGET_NR_inotify_add_watch:
>          p = lock_user_string(arg2);
>          ret = get_errno(sys_inotify_add_watch(arg1, path(p), arg3));
>          unlock_user(p, arg2, 0);
>          break;
>  #endif
> -#ifdef TARGET_NR_inotify_rm_watch
> +#if defined(TARGET_NR_inotify_rm_watch) && defined(__NR_inotify_rm_watch)
>      case TARGET_NR_inotify_rm_watch:
>          ret = get_errno(sys_inotify_rm_watch(arg1, arg2));
>          break;
> -- 
> 1.6.0.5
> 
> 

-- 
"rm -rf" only sounds scary if you don't have backups

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] linux-user: fix problems with inotify syscalls
  2009-03-28 20:49 [Qemu-devel] [PATCH] linux-user: fix problems with inotify syscalls Nathan Froyd
  2009-03-30 21:15 ` Riku Voipio
@ 2009-04-08 21:30 ` Aurelien Jarno
  1 sibling, 0 replies; 3+ messages in thread
From: Aurelien Jarno @ 2009-04-08 21:30 UTC (permalink / raw)
  To: Nathan Froyd; +Cc: qemu-devel

On Sat, Mar 28, 2009 at 01:49:46PM -0700, Nathan Froyd wrote:
> The sys_inotify* calls are defined if the target supports them and the
> host supports the necessary syscalls.  But the syscalls are handled if
> the target supports them.  This situation leads to compilation failures
> when the host doesn't support the necessary syscalls, as the linker will
> complain about undefined functions.
> 
> Fix this state of affairs by making the handling conditions the same as
> the call definition conditions.
> 
> Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
> ---
>  linux-user/syscall.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)

Thanks, applied.

> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 226ee6c..8608171 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -6109,19 +6109,19 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
>          ret = do_futex(arg1, arg2, arg3, arg4, arg5, arg6);
>          break;
>  #endif
> -#ifdef TARGET_NR_inotify_init
> +#if defined(TARGET_NR_inotify_init) && defined(__NR_inotify_init)
>      case TARGET_NR_inotify_init:
>          ret = get_errno(sys_inotify_init());
>          break;
>  #endif
> -#ifdef TARGET_NR_inotify_add_watch
> +#if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
>      case TARGET_NR_inotify_add_watch:
>          p = lock_user_string(arg2);
>          ret = get_errno(sys_inotify_add_watch(arg1, path(p), arg3));
>          unlock_user(p, arg2, 0);
>          break;
>  #endif
> -#ifdef TARGET_NR_inotify_rm_watch
> +#if defined(TARGET_NR_inotify_rm_watch) && defined(__NR_inotify_rm_watch)
>      case TARGET_NR_inotify_rm_watch:
>          ret = get_errno(sys_inotify_rm_watch(arg1, arg2));
>          break;
> -- 
> 1.6.0.5
> 
> 
> 
> 

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-04-08 21:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-28 20:49 [Qemu-devel] [PATCH] linux-user: fix problems with inotify syscalls Nathan Froyd
2009-03-30 21:15 ` Riku Voipio
2009-04-08 21:30 ` Aurelien Jarno

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).