Re: [PATCH v5 09/13] mips: Use the common syscall table

[email protected]
Newsgroups org.kernel.vger.linux-s390
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Build failure for MIPS N32 and N64 ABIs due to missing prerequisites and incorrect script arguments in Makefile, as well as broken incremental builds.
--

--- Patch [9]: [PATCH v5 09/13] mips: Use the common syscall table ---
commit 42dc635e6909962793a0c1f2315995398f780f3d
Author: André Almeida <[email protected]>

mips: Use the common syscall table

This commit merges the n32 and n64 syscall tables into a single table and
updates the toolchain to use this common table. It also drops duplicated
code and modifies the MIPS build Makefile to adapt to these changes.

> diff --git a/arch/mips/kernel/syscalls/Makefile b/arch/mips/kernel/syscalls/Makefile
> index 1bfc2346d1009..f6a41ee9e38ad 100644
> --- a/arch/mips/kernel/syscalls/Makefile
> +++ b/arch/mips/kernel/syscalls/Makefile
> @@ -7,16 +7,21 @@ $(shell mkdir -p $(uapi) $(kapi))
>  syshdr := $(srctree)/scripts/syscallhdr.sh
>  sysnr := $(srctree)/scripts/syscallnr.sh
>  systbl := $(srctree)/scripts/syscalltbl.sh
> +systbl_common := $(srctree)/scripts/syscall_common.tbl
>  
>  quiet_cmd_syshdr = SYSHDR  $@
> -      cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --offset __NR_Linux $< $@
> +      cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --offset __NR_Linux \
> +		   --common-tbl $(systbl_common) \
> +		   --abis $(abis_$*) $< $@

[Severity: Low]
Does this cause the build script to fail for n32 and n64? The cmd_syshdr
command still references $<. In the $(uapi)/unistd_%.h rule below, this
evaluates to $(src)/syscall_%.tbl, which no longer exists for those ABIs.

>  quiet_cmd_sysnr = SYSNR   $@
>        cmd_sysnr = $(CONFIG_SHELL) $(sysnr) \
>  		  --prefix $(sysnr_pfx_$(basetarget))_Linux_ $< $@
>  
>  quiet_cmd_systbl = SYSTBL  $@
> -      cmd_systbl = $(CONFIG_SHELL) $(systbl) $< $@
> +      cmd_systbl = $(CONFIG_SHELL) $(systbl) \
> +		   --common-tbl $(systbl_common) \
> +		   --abis $(abis_$*) $(src_$*) $@
>  
>  $(uapi)/unistd_%.h: $(src)/syscall_%.tbl $(syshdr) FORCE
>  	$(call if_changed,syshdr)

[Severity: Low]
Will this rule break since it still relies on $(src)/syscall_%.tbl? Since
syscall_n32.tbl and syscall_n64.tbl were deleted, this might cause make
to fail when attempting to build the uapi headers.

> @@ -25,10 +30,20 @@ sysnr_pfx_unistd_nr_n32 := N32
>  sysnr_pfx_unistd_nr_n64 := 64
>  sysnr_pfx_unistd_nr_o32 := O32
>  
> -$(kapi)/unistd_nr_%.h: $(src)/syscall_%.tbl $(sysnr) FORCE
> +abis := common,__clone3
> +
> +abis_n32 := $(abis),32
> +abis_o32 := $(abis),32
> +abis_n64 := $(abis),64
> +
> +src_n32 := $(src)/syscall_n.tbl
> +src_n64 := $(src)/syscall_n.tbl
> +src_o32 := $(src)/syscall_o32.tbl
> +
> +$(kapi)/unistd_nr_%.h: $(systbl_common) $(sysnr) FORCE
>  	$(call if_changed,sysnr)
>  
> -$(kapi)/syscall_table_%.h: $(src)/syscall_%.tbl $(systbl) FORCE
> +$(kapi)/syscall_table_%.h: $(systbl) FORCE
>  	$(call if_changed,systbl)

[Severity: Low]
Can removing the $(src)/syscall_%.tbl dependency break incremental builds?
It appears that if the source table is modified, this rule will no longer
trigger a rebuild of the syscall_table_%.h header.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=9
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.