Patchwork Fix compilation with missing inotify_init1

login
register
mail settings
Submitter Stefan Weil
Date March 28, 2010, 9:44 a.m.
Message ID <1269769481-7438-1-git-send-email-weil@mail.berlios.de>
Download mbox | patch
Permalink /patch/48774/
State New
Headers show

Comments

Stefan Weil - March 28, 2010, 9:44 a.m.
Commit c05c7a7306a23a4b01d1606172b142c45caffc92
breaks cross compilation for mips (and other
compilations without CONFIG_INOTIFY1):

make[1]: Entering directory `/qemu/bin/mips'
  CC    i386-linux-user/syscall.o
cc1: warnings being treated as errors
/qemu/linux-user/syscall.c: In function ‘do_syscall’:
/qemu/linux-user/syscall.c:7067: error: implicit declaration of function ‘sys_inotify_init1’

Cc: Riku Voipio <riku.voipio@nokia.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 linux-user/syscall.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Stefan Weil - March 31, 2010, 7:45 p.m.
Stefan Weil schrieb:
> Commit c05c7a7306a23a4b01d1606172b142c45caffc92
> breaks cross compilation for mips (and other
> compilations without CONFIG_INOTIFY1):
>
> make[1]: Entering directory `/qemu/bin/mips'
> CC i386-linux-user/syscall.o
> cc1: warnings being treated as errors
> /qemu/linux-user/syscall.c: In function ‘do_syscall’:
> /qemu/linux-user/syscall.c:7067: error: implicit declaration of
> function ‘sys_inotify_init1’
>
> Cc: Riku Voipio <riku.voipio@nokia.com>
> Cc: Aurelien Jarno <aurelien@aurel32.net>
> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
> ---
> linux-user/syscall.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 29c9c09..aa3cbb8 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -7062,11 +7062,13 @@ abi_long do_syscall(void *cpu_env, int num,
> abi_long arg1,
> ret = get_errno(sys_inotify_init());
> break;
> #endif
> +#ifdef CONFIG_INOTIFY1
> #if defined(TARGET_NR_inotify_init1) && defined(__NR_inotify_init1)
> case TARGET_NR_inotify_init1:
> ret = get_errno(sys_inotify_init1(arg1));
> break;
> #endif
> +#endif
> #if defined(TARGET_NR_inotify_add_watch) &&
> defined(__NR_inotify_add_watch)
> case TARGET_NR_inotify_add_watch:
> p = lock_user_string(arg2);



Hi,

to reproduce this error, you can proceed like this:

Debian with
* linux-libc-dev-2.6.32-10 (/usr/include/asm/unistd_32.h defines
__NR_inotify_init1)
* libc6-dev-2.7-18lenny2 (/usr/include/sys/inotify.h does not declare
inotify_init1)

Run configure --target-list=i386-linux-user && make.

Regards,
Stefan
Aurelien Jarno - April 1, 2010, 7:52 p.m.
On Sun, Mar 28, 2010 at 11:44:41AM +0200, Stefan Weil wrote:
> Commit c05c7a7306a23a4b01d1606172b142c45caffc92
> breaks cross compilation for mips (and other
> compilations without CONFIG_INOTIFY1):
> 
> make[1]: Entering directory `/qemu/bin/mips'
>   CC    i386-linux-user/syscall.o
> cc1: warnings being treated as errors
> /qemu/linux-user/syscall.c: In function ‘do_syscall’:
> /qemu/linux-user/syscall.c:7067: error: implicit declaration of function ‘sys_inotify_init1’
> 
> Cc: Riku Voipio <riku.voipio@nokia.com>
> Cc: Aurelien Jarno <aurelien@aurel32.net>
> Signed-off-by: Stefan Weil <weil@mail.berlios.de>

Thanks, applied.

> ---
>  linux-user/syscall.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 29c9c09..aa3cbb8 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -7062,11 +7062,13 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
>          ret = get_errno(sys_inotify_init());
>          break;
>  #endif
> +#ifdef CONFIG_INOTIFY1
>  #if defined(TARGET_NR_inotify_init1) && defined(__NR_inotify_init1)
>      case TARGET_NR_inotify_init1:
>          ret = get_errno(sys_inotify_init1(arg1));
>          break;
>  #endif
> +#endif
>  #if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
>      case TARGET_NR_inotify_add_watch:
>          p = lock_user_string(arg2);
> -- 
> 1.7.0
> 
> 
> 
>

Patch

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 29c9c09..aa3cbb8 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7062,11 +7062,13 @@  abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
         ret = get_errno(sys_inotify_init());
         break;
 #endif
+#ifdef CONFIG_INOTIFY1
 #if defined(TARGET_NR_inotify_init1) && defined(__NR_inotify_init1)
     case TARGET_NR_inotify_init1:
         ret = get_errno(sys_inotify_init1(arg1));
         break;
 #endif
+#endif
 #if defined(TARGET_NR_inotify_add_watch) && defined(__NR_inotify_add_watch)
     case TARGET_NR_inotify_add_watch:
         p = lock_user_string(arg2);