All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Kim Phillips <kim.phillips@arm.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>,
	Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Hendrik Brueckner <brueckner@linux.vnet.ibm.com>,
	Jiri Olsa <jolsa@redhat.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Namhyung Kim <namhyung@kernel.org>,
	Thomas Richter <tmricht@linux.vnet.ibm.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] perf arm64: Fix include path for asm-generic/unistd.h
Date: Tue, 7 Aug 2018 10:20:57 -0300	[thread overview]
Message-ID: <20180807132057.GC4173@kernel.org> (raw)
In-Reply-To: <20180806172800.bbcec3cfcc51e2facc978bf2@arm.com>

Em Mon, Aug 06, 2018 at 05:28:00PM -0500, Kim Phillips escreveu:
> The new syscall table support for arm64 mistakenly used the system's
> asm-generic/unistd.h file when processing the
> tools/arch/arm64/include/uapi/asm/unistd.h file's include directive:
> 
> 	#include <asm-generic/unistd.h>
> 
> See "Committer notes" section of commit 2b5882435606 "perf arm64:
> Generate system call table from asm/unistd.h" for more details.
> 
> This patch removes the committer's temporary workaround, and instructs
> the host compiler to search the build tree's include path for the right
> copy of the unistd.h file, instead of the one on the system's
> /usr/include path.
> 
> It thus fixes the committer's test that cross-builds an arm64 perf
> on an x86 platform running Ubuntu 14.04.5 LTS with an old toolchain:
> 
> $ tools/perf/arch/arm64/entry/syscalls/mksyscalltbl /gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc gcc `pwd`/tools tools/arch/arm64/include/uapi/asm/unistd.h | grep bpf
> 	[280] = "bpf",
> 
> Cc: Hendrik Brueckner <brueckner@linux.ibm.com>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
> Cc: Thomas Richter <tmricht@linux.vnet.ibm.com>
> Fixes: 2b5882435606 ("perf arm64: Generate system call table from asm/unistd.h")
> Signed-off-by: Kim Phillips <kim.phillips@arm.com>
> ---
> Hi, sorry for late response - was on vacation.  I was able to reproduce
> and fix by adding this -I to the $hostcc line.  Please test, and let me
> know if this is an acceptable fix.

Looks better than what I did, that indeed was a stopgap solution till
something better came along.

There are newer toolchains in my container collection to cross build
arm64/arm:

  17 debian:experimental-x-arm64   : Ok   aarch64-linux-gnu-gcc (Debian 7.3.0-15) 7.3.0
  46 ubuntu:16.04-x-arm            : Ok   arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  47 ubuntu:16.04-x-arm64          : Ok   aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609


I think its time to add ubuntu:18.04-x- variants, to get a more recent
toolchain on ubuntu, will do.

Anyway, I'll repeat the tests after applying your patch,

- Arnaldo
 
>  tools/perf/arch/arm64/Makefile                    | 5 +++--
>  tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 6 +++---
>  2 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
> index f013b115dc86..dbef716a1913 100644
> --- a/tools/perf/arch/arm64/Makefile
> +++ b/tools/perf/arch/arm64/Makefile
> @@ -11,7 +11,8 @@ PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1
>  
>  out    := $(OUTPUT)arch/arm64/include/generated/asm
>  header := $(out)/syscalls.c
> -sysdef := $(srctree)/tools/include/uapi/asm-generic/unistd.h
> +incpath := $(srctree)/tools
> +sysdef := $(srctree)/tools/arch/arm64/include/uapi/asm/unistd.h
>  sysprf := $(srctree)/tools/perf/arch/arm64/entry/syscalls/
>  systbl := $(sysprf)/mksyscalltbl
>  
> @@ -19,7 +20,7 @@ systbl := $(sysprf)/mksyscalltbl
>  _dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
>  
>  $(header): $(sysdef) $(systbl)
> -	$(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(sysdef) > $@
> +	$(Q)$(SHELL) '$(systbl)' '$(CC)' '$(HOSTCC)' $(incpath) $(sysdef) > $@
>  
>  clean::
>  	$(call QUIET_CLEAN, arm64) $(RM) $(header)
> diff --git a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> index 52e197317d3e..2dbb8cade048 100755
> --- a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> +++ b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
> @@ -11,7 +11,8 @@
>  
>  gcc=$1
>  hostcc=$2
> -input=$3
> +incpath=$3
> +input=$4
>  
>  if ! test -r $input; then
>  	echo "Could not read input file" >&2
> @@ -28,7 +29,6 @@ create_table_from_c()
>  
>  	cat <<-_EoHEADER
>  		#include <stdio.h>
> -		#define __ARCH_WANT_RENAMEAT
>  		#include "$input"
>  		int main(int argc, char *argv[])
>  		{
> @@ -42,7 +42,7 @@ create_table_from_c()
>  	printf "%s\n" "	printf(\"#define SYSCALLTBL_ARM64_MAX_ID %d\\n\", __NR_$last_sc);"
>  	printf "}\n"
>  
> -	} | $hostcc -o $create_table_exe -x c -
> +	} | $hostcc -I $incpath/include/uapi -o $create_table_exe -x c -
>  
>  	$create_table_exe
>  
> -- 
> 2.17.1

  reply	other threads:[~2018-08-07 13:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-06 21:34 [PATCH v3 2/3] perf arm64: Generate system call table from asm/unistd.h Kim Phillips
2018-07-18 15:57 ` Arnaldo Carvalho de Melo
2018-07-20 15:06   ` Arnaldo Carvalho de Melo
2018-07-23 18:59     ` Arnaldo Carvalho de Melo
2018-07-23 19:01       ` Arnaldo Carvalho de Melo
2018-08-06 22:28         ` [PATCH] perf arm64: Fix include path for asm-generic/unistd.h Kim Phillips
2018-08-07 13:20           ` Arnaldo Carvalho de Melo [this message]
2018-09-06 13:04           ` [tip:perf/core] " tip-bot for Kim Phillips
2018-07-25 20:48 ` [tip:perf/core] perf arm64: Generate system call table from asm/unistd.h tip-bot for Kim Phillips

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180807132057.GC4173@kernel.org \
    --to=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=brueckner@linux.vnet.ibm.com \
    --cc=jolsa@redhat.com \
    --cc=kim.phillips@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@linux.vnet.ibm.com \
    --cc=tmricht@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.