Re: 2.6.9-rc1-mm4

From: Andrew Morton
Date: Wed Sep 08 2004 - 03:52:38 EST


Simon Derr <simon.derr@xxxxxxxx> wrote:
>
> Build fails without CONFIG_KEYS:
>
> kernel/sys.c:283:29: macro "sys_request_key" requires 5 arguments, but only 1 given
> kernel/sys.c:283: error: `sys_request_key' defined both normally and as an alias
> kernel/sys.c:283: warning: `syscall_linkage' attribute only applies to function types
> kernel/sys.c:284:24: macro "sys_keyctl" requires 5 arguments, but only 1 given
> kernel/sys.c:284: error: `sys_keyctl' defined both normally and as an alias
> kernel/sys.c:284: warning: `syscall_linkage' attribute only applies to function types
>
> In include/linux/key.h, sys_request_key and sys_keyctl are defined as
> macros :
>
> #define sys_request_key(a,b,c,d,e) (-ENOSYS)
> #define sys_keyctl(a,b,c,d,e) (-ENOSYS)
>
> But in kernel/sys.c, we find:
>
> cond_syscall(sys_request_key)
> cond_syscall(sys_keyctl)
>
> Which expects these symbols to be real functions, it seems.

Works OK here. What compiler version are you using? And what architecture?



With these #defines in scope:

#define sys_request_key(a,b,c,d,e) (-ENOSYS)
#define sys_keyctl(a,b,c,d,e) (-ENOSYS)

the preprocessor should allow

cond_syscall(sys_request_key)
cond_syscall(sys_keyctl)

to pass through unscathed. It's a bit unpleasant though. I guess we can
just remove those defines from key.h.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/