Re: [PATCH 1/3] kbuild: complain about missing system calls.

From: Sam Ravnborg
Date: Tue May 08 2007 - 14:23:41 EST


On Mon, May 07, 2007 at 03:51:49PM -0700, Luck, Tony wrote:
> > You could add them to scripts/checksyscalls.sh itself -- I think it's
> > fairly unlikely that those are syscalls which a new arch port is going
> > to 'forget' :)
>
> Like this?
>
> diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh
> index f98171f..4d49056 100755
> --- a/scripts/checksyscalls.sh
> +++ b/scripts/checksyscalls.sh
> @@ -98,6 +98,14 @@ cat << EOF
> #define __IGNORE_setgid32
> #define __IGNORE_setfsuid32
> #define __IGNORE_setfsgid32
> +/* ... some legacy names not used by ia64 */
> +#define __IGNORE_fork
> +#define __IGNORE_time
> +#define __IGNORE_alarm
> +#define __IGNORE_pause
> +#define __IGNORE_utime
> +#define __IGNORE_getpgrp
> +#define __IGNORE_vfork
>
> /* Unmerged syscalls for AFS, STREAMS, etc. */
> #define __IGNORE_afs_syscall

I would prefer to introduce something in checksyscalls.sh that allows us
to do something arch specific.
I recall that x86_64 had one syscall implemented using VDSO or similar
and therefore got listed.
This is just a quick hack - can be done better by someone that is more
fluent in shell scripting...


diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh
index f98171f..715ed62 100755
--- a/scripts/checksyscalls.sh
+++ b/scripts/checksyscalls.sh
@@ -107,6 +107,13 @@ cat << EOF
EOF
}

+ignore_arch_list() {
+ f=include/asm/ignore_syscalls
+ if [ -f $f ]; then
+ source $f
+ fi
+}
+
syscall_list() {
sed -n -e '/^\#define/ { s/[^_]*__NR_\([^[:space:]]*\).*/\
\#if !defined \(__NR_\1\) \&\& !defined \(__IGNORE_\1\)\
@@ -114,5 +121,5 @@ sed -n -e '/^\#define/ { s/[^_]*__NR_\([^[:space:]]*\).*/\
\#endif/p }' $1
}

-(ignore_list && syscall_list ${srctree}/include/asm-i386/unistd.h) | \
+(ignore_list && ignore_arch_list && syscall_list ${srctree}/include/asm-i386/unistd.h) | \
$* -E -x c - > /dev/null

Then adding a fie like this to include/asm-x86_64 will allow us to ignore getcpu
for x86_64 only.

# syscalls that are ignored for x86_64
# on top of generic ones specified in scripts/checksyscalls.sh

cat << EOF
#define __IGNORE_getcpu
EOF



Comments?

Sam
-
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/