[LTP] [PATCH 0/4] Automatically generate syscalls.h

Jan Stancek jstancek@redhat.com
Wed Sep 25 22:01:21 CEST 2024


On Tue, Sep 24, 2024 at 3:24 PM Andrea Cervesato
<andrea.cervesato@suse.com> wrote:
>
>
> On 9/24/24 15:16, Jan Stancek wrote:
> > On Tue, Sep 24, 2024 at 10:46 AM Andrea Cervesato via ltp
> > <ltp@lists.linux.it> wrote:
> >> Hi!
> >>
> >> Please consider this patchset as a draft open for discussion.
> > Have you compared old and new defines? Are there any differences
> > (other than additions)?
> >
> Only additions, but this is a draft work and I'm searching for
> alternative ideas as well.
> For example, the limitation of this approach is that syscalls.h has to
> be generated anyway.

I guess it wouldn't be too difficult to change script to generate .in
files instead, right?

>
> At the same time, we have projects like
> https://github.com/hrw/syscalls-table (that inspired my script)
> providing python bindings and *maybe* it could be used to create a
> python script which generate .in files when they need to be updated.

python feels like an extra step, since we could do it in existing shell script.
Maybe store a copy of update-tables.sh in LTP repo, and add some wrapper
to provide create_tables_for_LTP() function and a check to print warning if
original github project changes update-tables.sh.

create_tables_for_LTP() would generate .in files and rest can stay as it is.

>
> Etc..
>
> >> Andrea
> >>
> >> On 9/24/24 10:06, 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 is done by the generate_syscalls.sh script that can be used as
> >>> following:
> >>>
> >>> ./generate_syscalls.sh path/to/kernel/source path/to/syscalls.h
> >>>
> >>> This approach requires a certain type of attention, due to the fact that
> >>> we need to generate syscalls.h at each kernel version, or when new
> >>> syscalls have been added in the kernel.
> >>>
> >>> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
> >>> ---
> >>> Andrea Cervesato (4):
> >>>         Rename syscalls order file to supported-arch.txt
> >>>         Add script to generate syscalls.h
> >>>         Deprecate old syscalls input files
> >>>         Save syscalls.h inside repo
> >>>
> >>>    include/lapi/.gitignore                            |     1 -
> >>>    include/lapi/syscalls.h                            | 34272 +++++++++++++++++++
> >>>    include/lapi/syscalls/aarch64.in                   |   306 -
> >>>    include/lapi/syscalls/arc.in                       |   325 -
> >>>    include/lapi/syscalls/arm.in                       |   404 -
> >>>    include/lapi/syscalls/blacklist-syscalls.txt       |     6 +
> >>>    include/lapi/syscalls/generate_syscalls.sh         |   292 +
> >>>    include/lapi/syscalls/hppa.in                      |    52 -
> >>>    include/lapi/syscalls/i386.in                      |   439 -
> >>>    include/lapi/syscalls/ia64.in                      |   956 +-
> >>>    include/lapi/syscalls/loongarch.in                 |   310 -
> >>>    include/lapi/syscalls/mips_n32.in                  |   379 -
> >>>    include/lapi/syscalls/mips_n64.in                  |   355 -
> >>>    include/lapi/syscalls/mips_o32.in                  |   425 -
> >>>    include/lapi/syscalls/powerpc.in                   |   432 -
> >>>    include/lapi/syscalls/powerpc64.in                 |   432 -
> >>>    include/lapi/syscalls/regen.sh                     |   129 -
> >>>    include/lapi/syscalls/s390.in                      |   419 -
> >>>    include/lapi/syscalls/s390x.in                     |   367 -
> >>>    include/lapi/syscalls/sh.in                        |   413 -
> >>>    include/lapi/syscalls/sparc.in                     |   418 -
> >>>    include/lapi/syscalls/sparc64.in                   |   383 -
> >>>    include/lapi/syscalls/strip_syscall.awk            |    19 -
> >>>    .../lapi/syscalls/{order => supported-arch.txt}    |     1 -
> >>>    include/lapi/syscalls/x86_64.in                    |   396 -
> >>>    25 files changed, 35174 insertions(+), 6757 deletions(-)
> >>> ---
> >>> base-commit: 968e6245d93bc91723e72086a71e6bc50f495d0b
> >>> change-id: 20240923-generate_syscalls-780dc2227bdb
> >>>
> >>> Best regards,
> >> --
> >> Mailing list info: https://lists.linux.it/listinfo/ltp
> >>
>



More information about the ltp mailing list