Re: [PATCH V2] perf arm64: Fix generate system call table failed with /tmp mounted with noexec

From: Arnaldo Carvalho de Melo
Date: Fri Oct 19 2018 - 11:30:02 EST


Em Fri, Oct 19, 2018 at 11:22:38AM -0400, Sébastien Boisvert escreveu:
>
>
> On 2018-10-18 10:16 p.m., Hongxu Jia wrote:
> > When /tmp is mounted with noexec, mksyscalltbl fails.
> > [snip]
> > |perf-1.0/tools/perf/arch/arm64/entry/syscalls//mksyscalltbl:
> > /tmp/create-table-6VGPSt: Permission denied
> > [snip]
> >
> > Add variable TMPDIR as prefix dir of the temporary file, if it is set,
> > replace default /tmp
> >
> > Remove extra slash from `syscalls//mksyscalltbl'
> >
> > Fixes: 2b5882435606 ("perf arm64: Generate system call table from asm/unistd.h")
> >
> > Signed-off-by: Hongxu Jia <hongxu.jia@xxxxxxxxxxxxx>
> > ---
> > tools/perf/arch/arm64/Makefile | 2 +-
> > tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
> > index dbef716..bc2a284 100644
> > --- a/tools/perf/arch/arm64/Makefile
> > +++ b/tools/perf/arch/arm64/Makefile
> > @@ -13,7 +13,7 @@ out := $(OUTPUT)arch/arm64/include/generated/asm
> > header := $(out)/syscalls.c
> > incpath := $(srctree)/tools
> > sysdef := $(srctree)/tools/arch/arm64/include/uapi/asm/unistd.h
> > -sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
> > +sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls
>
> Should this appear in different patch, since it is unrelated to adding TMPDIR support ?

Exactly.

So, to move forward, just send a new patch specifically for this part,
i.e. the removal of the harmless but unneeded extra slash, the other
part I already took care of.

- Arnaldo

> Thanks
>
> > systbl := $(sysprf)/mksyscalltbl
> >
> > # Create output directory if not already present
> > diff --git a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> > index 2dbb8cad..c88fd32 100755
> > --- a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> > +++ b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> > @@ -23,7 +23,7 @@ create_table_from_c()
> > {
> > local sc nr last_sc
> >
> > - create_table_exe=`mktemp /tmp/create-table-XXXXXX`
> > + create_table_exe=`mktemp ${TMPDIR:-/tmp}/create-table-XXXXXX`
> >
> > {
> >
> >