Message ID | 20241101-generate_syscalls-v9-0-d2c3820b0323@suse.com |
---|---|
Headers | show |
Series | Automatically generate syscalls.h | expand |
Pushed! Thanks Andrea On 11/1/24 11:48, Andrea Cervesato wrote: > The problem we have at the moment is that all syscalls input files must > be changed by hand each time we need to test a new syscall. The idea is > to simplify this process, providing a script that is able to read from > kernel sources and to generate all syscalls files we need. > > This patch set adds a new command inside the syscalls folder and > it refactors the previous regen.sh code. > The new way we have to generate the syscalls.h file is the following: > > include/lapi/syscalls/generate_arch.sh path/to/kernel/source > include/lapi/syscalls/generate_syscalls.sh path/to/syscalls.h > > Scripts are independent and they can be run separately. > generate_syscalls.sh is the equivalent of regen.sh, but its code has > been cleaned up. > > Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> > --- > Changes in v9: > - use of printf when printing "\n" string, in order to support both dash > and bash. BEWARE: ugliness triggered. > - rename *.in files with supported-arch.txt file naming convention > - update *.in files in a separated commit > - update documentation to be more readable > - aesthetic code changes > - Link to v8: https://lore.kernel.org/r/20241031-generate_syscalls-v8-0-8e35a9d6783b@suse.com > > Changes in v8: > - use /bin/sh -eu > - support for dash and removed all bashism madness > - validation: https://github.com/acerv/ltp/actions/runs/11615377438 > - Link to v7: https://lore.kernel.org/r/20241031-generate_syscalls-v7-0-f3e26c06814e@suse.com > > Changes in v7: > - check for errors in generate_syscalls.sh > - add documentation > - validation: https://github.com/acerv/ltp/actions/runs/11611080151 > - Link to v6: https://lore.kernel.org/r/20241031-generate_syscalls-v6-0-1ad86a33ce2d@suse.com > > Changes in v6: > - aesthetic changes in the syscall generator > - fix fallback definitions in the syscalls.h file generator > - Link to v5: https://lore.kernel.org/r/20241030-generate_syscalls-v5-0-eed6a87dc787@suse.com > > Changes in v5: > - license SPDX inside scripts files > - quote shell variables inside scripts > - some generic code cleanup > - Link to v4: https://lore.kernel.org/r/20241009-generate_syscalls-v4-0-5328a785bbad@suse.com > > Changes in v4: > - remove blacklist file > - update syscalls files > - Link to v3: https://lore.kernel.org/r/20240930-generate_syscalls-v3-0-e56ede4bc7f5@suse.com > > Changes in v3: > - fix generate_arch.sh to work properly for all architectures > - rename some arch .in files and handle renaming inside > generate_syscalls.sh using the right gcc directives > - Link to v2: https://lore.kernel.org/r/20240927-generate_syscalls-v2-0-108f5f2ad318@suse.com > > Changes in v2: > - refactor regen.sh > - split syscalls.h and syscalls .in files creation > - updated syscalls .in files > - Link to v1: https://lore.kernel.org/r/20240924-generate_syscalls-v1-0-941507a9cdac@suse.com > > --- > Andrea Cervesato (5): > Refactor regen.sh script to generate syscalls > Add script to generate arch(s) dependant syscalls > Update arch(s) syscalls files > Delete obsolete strip_syscall.awk file > Add documentation about syscalls.h generator > > configure.ac | 2 +- > doc/developers/test_case_tutorial.rst | 29 +- > include/lapi/syscalls/arc.in | 41 +- > include/lapi/syscalls/arm.in | 821 +++++++++++---------- > include/lapi/syscalls/{loongarch.in => arm64.in} | 12 +- > include/lapi/syscalls/generate_arch.sh | 213 ++++++ > include/lapi/syscalls/generate_syscalls.sh | 109 +++ > include/lapi/syscalls/hppa.in | 54 -- > include/lapi/syscalls/i386.in | 18 +- > .../lapi/syscalls/{aarch64.in => loongarch64.in} | 20 +- > include/lapi/syscalls/{mips_n64.in => mips64.in} | 13 +- > .../lapi/syscalls/{mips_n32.in => mips64n32.in} | 13 +- > include/lapi/syscalls/{mips_o32.in => mipso32.in} | 19 +- > include/lapi/syscalls/parisc.in | 397 ++++++++++ > include/lapi/syscalls/powerpc.in | 19 +- > include/lapi/syscalls/powerpc64.in | 47 +- > include/lapi/syscalls/regen.sh | 129 ---- > include/lapi/syscalls/s390.in | 15 +- > include/lapi/syscalls/s390x.in | 15 +- > include/lapi/syscalls/sh.in | 15 +- > include/lapi/syscalls/sparc.in | 14 +- > include/lapi/syscalls/sparc64.in | 16 +- > include/lapi/syscalls/strip_syscall.awk | 19 - > .../lapi/syscalls/{order => supported-arch.txt} | 12 +- > include/lapi/syscalls/x86_64.in | 51 +- > 25 files changed, 1351 insertions(+), 762 deletions(-) > --- > base-commit: 84e77afb3acc4bc69c434c430cc1c1d000427921 > change-id: 20240923-generate_syscalls-780dc2227bdb > > Best regards,
The problem we have at the moment is that all syscalls input files must be changed by hand each time we need to test a new syscall. The idea is to simplify this process, providing a script that is able to read from kernel sources and to generate all syscalls files we need. This patch set adds a new command inside the syscalls folder and it refactors the previous regen.sh code. The new way we have to generate the syscalls.h file is the following: include/lapi/syscalls/generate_arch.sh path/to/kernel/source include/lapi/syscalls/generate_syscalls.sh path/to/syscalls.h Scripts are independent and they can be run separately. generate_syscalls.sh is the equivalent of regen.sh, but its code has been cleaned up. Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> --- Changes in v9: - use of printf when printing "\n" string, in order to support both dash and bash. BEWARE: ugliness triggered. - rename *.in files with supported-arch.txt file naming convention - update *.in files in a separated commit - update documentation to be more readable - aesthetic code changes - Link to v8: https://lore.kernel.org/r/20241031-generate_syscalls-v8-0-8e35a9d6783b@suse.com Changes in v8: - use /bin/sh -eu - support for dash and removed all bashism madness - validation: https://github.com/acerv/ltp/actions/runs/11615377438 - Link to v7: https://lore.kernel.org/r/20241031-generate_syscalls-v7-0-f3e26c06814e@suse.com Changes in v7: - check for errors in generate_syscalls.sh - add documentation - validation: https://github.com/acerv/ltp/actions/runs/11611080151 - Link to v6: https://lore.kernel.org/r/20241031-generate_syscalls-v6-0-1ad86a33ce2d@suse.com Changes in v6: - aesthetic changes in the syscall generator - fix fallback definitions in the syscalls.h file generator - Link to v5: https://lore.kernel.org/r/20241030-generate_syscalls-v5-0-eed6a87dc787@suse.com Changes in v5: - license SPDX inside scripts files - quote shell variables inside scripts - some generic code cleanup - Link to v4: https://lore.kernel.org/r/20241009-generate_syscalls-v4-0-5328a785bbad@suse.com Changes in v4: - remove blacklist file - update syscalls files - Link to v3: https://lore.kernel.org/r/20240930-generate_syscalls-v3-0-e56ede4bc7f5@suse.com Changes in v3: - fix generate_arch.sh to work properly for all architectures - rename some arch .in files and handle renaming inside generate_syscalls.sh using the right gcc directives - Link to v2: https://lore.kernel.org/r/20240927-generate_syscalls-v2-0-108f5f2ad318@suse.com Changes in v2: - refactor regen.sh - split syscalls.h and syscalls .in files creation - updated syscalls .in files - Link to v1: https://lore.kernel.org/r/20240924-generate_syscalls-v1-0-941507a9cdac@suse.com --- Andrea Cervesato (5): Refactor regen.sh script to generate syscalls Add script to generate arch(s) dependant syscalls Update arch(s) syscalls files Delete obsolete strip_syscall.awk file Add documentation about syscalls.h generator configure.ac | 2 +- doc/developers/test_case_tutorial.rst | 29 +- include/lapi/syscalls/arc.in | 41 +- include/lapi/syscalls/arm.in | 821 +++++++++++---------- include/lapi/syscalls/{loongarch.in => arm64.in} | 12 +- include/lapi/syscalls/generate_arch.sh | 213 ++++++ include/lapi/syscalls/generate_syscalls.sh | 109 +++ include/lapi/syscalls/hppa.in | 54 -- include/lapi/syscalls/i386.in | 18 +- .../lapi/syscalls/{aarch64.in => loongarch64.in} | 20 +- include/lapi/syscalls/{mips_n64.in => mips64.in} | 13 +- .../lapi/syscalls/{mips_n32.in => mips64n32.in} | 13 +- include/lapi/syscalls/{mips_o32.in => mipso32.in} | 19 +- include/lapi/syscalls/parisc.in | 397 ++++++++++ include/lapi/syscalls/powerpc.in | 19 +- include/lapi/syscalls/powerpc64.in | 47 +- include/lapi/syscalls/regen.sh | 129 ---- include/lapi/syscalls/s390.in | 15 +- include/lapi/syscalls/s390x.in | 15 +- include/lapi/syscalls/sh.in | 15 +- include/lapi/syscalls/sparc.in | 14 +- include/lapi/syscalls/sparc64.in | 16 +- include/lapi/syscalls/strip_syscall.awk | 19 - .../lapi/syscalls/{order => supported-arch.txt} | 12 +- include/lapi/syscalls/x86_64.in | 51 +- 25 files changed, 1351 insertions(+), 762 deletions(-) --- base-commit: 84e77afb3acc4bc69c434c430cc1c1d000427921 change-id: 20240923-generate_syscalls-780dc2227bdb Best regards,