diff mbox series

[2/2] m68k: generate uapi header and syscall table header files

Message ID 1546442319-20461-3-git-send-email-firoz.khan@linaro.org
State Superseded
Headers show
Series m68k: Unify the system call scripts | expand

Commit Message

Firoz Khan Jan. 2, 2019, 3:18 p.m. UTC
Unified system call table generation script must be run to
generate unistd_32.h and syscall_table.h files. This patch
will have changes which will invokes the script.

This patch will generate unistd_32.h and syscall_table.h
files by the syscall table generation script invoked by
m68k/Makefile and the generated files against the removed
files must be identical.

The generated uapi header file will be included in uapi/-
asm/unistd.h and generated system call table header file
will be included by kernel/syscalltable.S file.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>

---
 arch/m68k/kernel/syscalls/Makefile      | 11 ++++++++--
 arch/m68k/kernel/syscalls/syscallhdr.sh | 36 ---------------------------------
 arch/m68k/kernel/syscalls/syscalltbl.sh | 32 -----------------------------
 3 files changed, 9 insertions(+), 70 deletions(-)
 delete mode 100644 arch/m68k/kernel/syscalls/syscallhdr.sh
 delete mode 100644 arch/m68k/kernel/syscalls/syscalltbl.sh

-- 
1.9.1

Comments

kernel test robot Jan. 3, 2019, 12:59 a.m. UTC | #1
Hi Firoz,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on m68k/for-next]
[also build test ERROR on next-20190102]
[cannot apply to v4.20]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Firoz-Khan/m68k-remove-nargs-from-__SYSCALL/20190103-001423
base:   https://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git for-next
config: m68k-multi_defconfig (attached as .config)
compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=m68k 

All errors (new ones prefixed by >>):

>> make[2]: *** No rule to make target 'scripts/syscalltbl.sh', needed by 'arch/m68k/include/generated/asm/syscall_table.h'.

>> make[2]: *** No rule to make target 'scripts/syscallhdr.sh', needed by 'arch/m68k/include/generated/uapi/asm/unistd_32.h'.

   make[2]: Target 'all' not remade because of errors.
   make[1]: *** [archheaders] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [sub-make] Error 2

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Geert Uytterhoeven Jan. 3, 2019, 11:43 a.m. UTC | #2
Hi Firoz,

Thanks for your patch!

On Wed, Jan 2, 2019 at 4:19 PM Firoz Khan <firoz.khan@linaro.org> wrote:
> Subject: m68k: generate uapi header and syscall table header files

>

> Unified system call table generation script must be run to

> generate unistd_32.h and syscall_table.h files. This patch

> will have changes which will invokes the script.

>

> This patch will generate unistd_32.h and syscall_table.h

> files by the syscall table generation script invoked by

> m68k/Makefile and the generated files against the removed

> files must be identical.

>

> The generated uapi header file will be included in uapi/-

> asm/unistd.h and generated system call table header file

> will be included by kernel/syscalltable.S file.


This doesn't really describe what this patch is doing.
This patch switches m68k over to use the common scripts for
system call header file generation.

> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>

> ---

>  arch/m68k/kernel/syscalls/Makefile      | 11 ++++++++--

>  arch/m68k/kernel/syscalls/syscallhdr.sh | 36 ---------------------------------

>  arch/m68k/kernel/syscalls/syscalltbl.sh | 32 -----------------------------

>  3 files changed, 9 insertions(+), 70 deletions(-)

>  delete mode 100644 arch/m68k/kernel/syscalls/syscallhdr.sh

>  delete mode 100644 arch/m68k/kernel/syscalls/syscalltbl.sh

>

> diff --git a/arch/m68k/kernel/syscalls/Makefile b/arch/m68k/kernel/syscalls/Makefile

> index 659faef..75c7421 100644

> --- a/arch/m68k/kernel/syscalls/Makefile

> +++ b/arch/m68k/kernel/syscalls/Makefile

> @@ -6,8 +6,9 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)')       \

>           $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')

>

>  syscall := $(srctree)/$(src)/syscall.tbl

> -syshdr := $(srctree)/$(src)/syscallhdr.sh

> -systbl := $(srctree)/$(src)/syscalltbl.sh

> +syshdr := $(srctree)/scripts/syscallhdr.sh

> +sysnr := $(srctree)/scripts/syscallnr.sh


What's the purpose of adding sysnr?

> +systbl := $(srctree)/scripts/syscalltbl.sh

>

>  quiet_cmd_syshdr = SYSHDR  $@

>        cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'       \

> @@ -15,6 +16,12 @@ quiet_cmd_syshdr = SYSHDR  $@

>                    '$(syshdr_pfx_$(basetarget))'                \

>                    '$(syshdr_offset_$(basetarget))'

>

> +quiet_cmd_sysnr = SYSNR  $@

> +      cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@'         \

> +                 '$(sysnr_abis_$(basetarget))'                 \

> +                 '$(sysnr_pfx_$(basetarget))'                  \

> +                 '$(sysnr_offset_$(basetarget))'

> +


What's the purpose of adding this build rule, which is unused?

The patch works fine though.

I assume the common build rules will be moved to a common place later?

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Firoz Khan Jan. 3, 2019, noon UTC | #3
Hi Geert,

Thanks for your feedback!

On Thu, 3 Jan 2019 at 17:13, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > The generated uapi header file will be included in uapi/-

> > asm/unistd.h and generated system call table header file

> > will be included by kernel/syscalltable.S file.

>

> This doesn't really describe what this patch is doing.

> This patch switches m68k over to use the common scripts for

> system call header file generation.


Sure. I'll compose new commit message.

> >  syscall := $(srctree)/$(src)/syscall.tbl

> > -syshdr := $(srctree)/$(src)/syscallhdr.sh

> > -systbl := $(srctree)/$(src)/syscalltbl.sh

> > +syshdr := $(srctree)/scripts/syscallhdr.sh

> > +sysnr := $(srctree)/scripts/syscallnr.sh

>

> What's the purpose of adding sysnr?


Yes. This is not really required here. I planned to change the
implementation in some other way, but didn't looks perfect and
this was left here unnoticed.

> >

> > +quiet_cmd_sysnr = SYSNR  $@

> > +      cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@'         \

> > +                 '$(sysnr_abis_$(basetarget))'                 \

> > +                 '$(sysnr_pfx_$(basetarget))'                  \

> > +                 '$(sysnr_offset_$(basetarget))'

> > +

>

> What's the purpose of adding this build rule, which is unused?


Sure.

Firoz
diff mbox series

Patch

diff --git a/arch/m68k/kernel/syscalls/Makefile b/arch/m68k/kernel/syscalls/Makefile
index 659faef..75c7421 100644
--- a/arch/m68k/kernel/syscalls/Makefile
+++ b/arch/m68k/kernel/syscalls/Makefile
@@ -6,8 +6,9 @@  _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)')	\
 	  $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
 
 syscall := $(srctree)/$(src)/syscall.tbl
-syshdr := $(srctree)/$(src)/syscallhdr.sh
-systbl := $(srctree)/$(src)/syscalltbl.sh
+syshdr := $(srctree)/scripts/syscallhdr.sh
+sysnr := $(srctree)/scripts/syscallnr.sh
+systbl := $(srctree)/scripts/syscalltbl.sh
 
 quiet_cmd_syshdr = SYSHDR  $@
       cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@'	\
@@ -15,6 +16,12 @@  quiet_cmd_syshdr = SYSHDR  $@
 		   '$(syshdr_pfx_$(basetarget))'		\
 		   '$(syshdr_offset_$(basetarget))'
 
+quiet_cmd_sysnr = SYSNR  $@
+      cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@'		\
+		  '$(sysnr_abis_$(basetarget))'			\
+		  '$(sysnr_pfx_$(basetarget))'			\
+		  '$(sysnr_offset_$(basetarget))'
+
 quiet_cmd_systbl = SYSTBL  $@
       cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@'	\
 		   '$(systbl_abis_$(basetarget))'		\
diff --git a/arch/m68k/kernel/syscalls/syscallhdr.sh b/arch/m68k/kernel/syscalls/syscallhdr.sh
deleted file mode 100644
index 6f357d6..0000000
--- a/arch/m68k/kernel/syscalls/syscallhdr.sh
+++ /dev/null
@@ -1,36 +0,0 @@ 
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-in="$1"
-out="$2"
-my_abis=`echo "($3)" | tr ',' '|'`
-prefix="$4"
-offset="$5"
-
-fileguard=_UAPI_ASM_M68K_`basename "$out" | sed \
-	-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-	-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
-grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
-	printf "#ifndef %s\n" "${fileguard}"
-	printf "#define %s\n" "${fileguard}"
-	printf "\n"
-
-	nxt=0
-	while read nr abi name entry ; do
-		if [ -z "$offset" ]; then
-			printf "#define __NR_%s%s\t%s\n" \
-				"${prefix}" "${name}" "${nr}"
-		else
-			printf "#define __NR_%s%s\t(%s + %s)\n" \
-				"${prefix}" "${name}" "${offset}" "${nr}"
-		fi
-		nxt=$((nr+1))
-	done
-
-	printf "\n"
-	printf "#ifdef __KERNEL__\n"
-	printf "#define __NR_syscalls\t%s\n" "${nxt}"
-	printf "#endif\n"
-	printf "\n"
-	printf "#endif /* %s */\n" "${fileguard}"
-) > "$out"
diff --git a/arch/m68k/kernel/syscalls/syscalltbl.sh b/arch/m68k/kernel/syscalls/syscalltbl.sh
deleted file mode 100644
index 904b8e6..0000000
--- a/arch/m68k/kernel/syscalls/syscalltbl.sh
+++ /dev/null
@@ -1,32 +0,0 @@ 
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-
-in="$1"
-out="$2"
-my_abis=`echo "($3)" | tr ',' '|'`
-my_abi="$4"
-offset="$5"
-
-emit() {
-	t_nxt="$1"
-	t_nr="$2"
-	t_entry="$3"
-
-	while [ $t_nxt -lt $t_nr ]; do
-		printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}"
-		t_nxt=$((t_nxt+1))
-	done
-	printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}"
-}
-
-grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
-	nxt=0
-	if [ -z "$offset" ]; then
-		offset=0
-	fi
-
-	while read nr abi name entry ; do
-		emit $((nxt+offset)) $((nr+offset)) $entry
-		nxt=$((nr+1))
-	done
-) > "$out"