All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH v9 0/5] Automatically generate syscalls.h
@ 2024-11-01 10:48 Andrea Cervesato
  2024-11-01 10:48 ` [LTP] [PATCH v9 1/5] Refactor regen.sh script to generate syscalls Andrea Cervesato
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Andrea Cervesato @ 2024-11-01 10:48 UTC (permalink / raw)
  To: ltp

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,
-- 
Andrea Cervesato <andrea.cervesato@suse.com>


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-11-05  8:56 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-01 10:48 [LTP] [PATCH v9 0/5] Automatically generate syscalls.h Andrea Cervesato
2024-11-01 10:48 ` [LTP] [PATCH v9 1/5] Refactor regen.sh script to generate syscalls Andrea Cervesato
2024-11-01 10:48 ` [LTP] [PATCH v9 2/5] Add script to generate arch(s) dependant syscalls Andrea Cervesato
2024-11-01 11:30   ` Petr Vorel
2024-11-01 13:23     ` Andrea Cervesato via ltp
2024-11-01 17:02       ` Petr Vorel
2024-11-01 10:48 ` [LTP] [PATCH v9 3/5] Update arch(s) syscalls files Andrea Cervesato
2024-11-04  8:05   ` Petr Vorel
2024-11-04 11:12   ` Cyril Hrubis
2024-11-01 10:48 ` [LTP] [PATCH v9 4/5] Delete obsolete strip_syscall.awk file Andrea Cervesato
2024-11-01 10:48 ` [LTP] [PATCH v9 5/5] Add documentation about syscalls.h generator Andrea Cervesato
2024-11-04  8:17   ` Petr Vorel
2024-11-04 12:25   ` Cyril Hrubis
2024-11-05  8:55 ` [LTP] [PATCH v9 0/5] Automatically generate syscalls.h Andrea Cervesato via ltp

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.