[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cgit: FTBFS on riscv64: t0109-git-config test failed on riscv64



On Thu, 08 Sep 2022 08:02:04 +0800, Paul Wise <pabs@debian.org> wrote:

> On Thu, 8 Sep 2022 07:41:38 +0800 Sakura286 wrote:
> 
> > On riscv64, "strace -e access cgit-1.2.3+git2.25.1/cgit" returned 
> > "strace: invalid system call 'access'". And when "strace cgit" on 
> > riscv64, "faccessat(AT_FDCWD,xx,yy)" rather than "access(xx,yy)" is called.
> > 
> > According to the manual of "access"[2], if passed AT_FDCWD, "faccessat" 
> > behaves same as "access" [2]. So I add "-e faccessat" for riscv64. I 
> > have tested the patch on amd64 and riscv64.
> 
> It might be worth just passing both functions to -e, so that if other
> new architectures also use faccessat or if existing architectures start
> using faccessat then the tests will continue to work.
> 
> Reading the documentation, this should work, but please test it:
> 
>    strace -e access,faccessat
> 
> When creating riscv64 patches, please keep this general principle in
> mind. Try to make the package more portable in general rather than just
> making the specific change that is needed for RISC-V. Doing porting in
> an arch-specific way usually means more work for other porters later,
> while often it is possible to eliminate future work by redesigning
> suboptimal portability efforts instead of just patching them.
> 
> You will thank yourself when you start working on riscv32/riscv128 ;)

I agree with this. But, regarding the error:

    strace: invalid system call 'access'

This happens when strace parses its command-line arguments. It fails if there is a syscall name that is unavailable. It is necessary prepend "?" if you want to trace system calls that are unavailable on some platforms:

    strace -e '?access,faccessat'

That way, the strace command will work on platforms that only have "faccessat", but not "access".

-- 
Best Regards,
Samuel


Reply to: