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

From: SÃbastien Boisvert
Date: Fri Oct 19 2018 - 11:31:10 EST




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 ?

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`
>
> {
>
>