Re: [PATCH] perf tool: Build jitdump only on supported archs

From: Jiri Olsa
Date: Thu Mar 10 2016 - 11:04:55 EST


On Thu, Mar 10, 2016 at 12:57:00PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Mar 10, 2016 at 10:32:29AM +0100, Jiri Olsa escreveu:
> > On Mon, Mar 07, 2016 at 04:44:36PM -0300, Arnaldo Carvalho de Melo wrote:
> >
> > SNIP
> >
> > > ----------------------------------------------------------------
> > > Adrian Hunter (5):
> > > perf inject: Hit all DSOs for AUX data in JIT and other cases
> > > perf session: Simplify tool stubs
> > > perf jit: Let jit_process() return errors
> > > perf jit: Move clockid validation
> > > perf tools: Use 64-bit shifts with (TSC) time conversion
> >
> > hi,
> > perf build failed for me on s390x because of jitdump feature.
> >
> > Attached patch tries to enable the build only on supported archs.
> >
> > I haven't followed this feature too much, so I might have missed
> > something.. anyway it builds on s390x now ;-) I took the list of
> > archs from util/genelf.h
>
> Hi Jiri,
>
> This may be related to this cset, still not in tip/perf/core:
>
> commit 46dad054a19297af65c417c97cb920aa5bdf7e8c
> Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Date: Mon Mar 7 18:48:45 2016 -0300
>
> perf jitdump: DWARF is also needed
>
> Can you check if without this one perf builds on s390?
>
> This patch is to make it build on ubuntu without libdw, i.e. it requires
> both libdw and libelf, the way I fixed it may not be the best and
> probably we need to fold these two patches before sending to Ingo, since
> your patch essentially rewrites my previous patch :-)
>
> Can you please check that?

well there's following line in util/genelf.h:

#else
#error "unsupported architecture"
#endif

which makes the build fail on unssuported arch,
even without your patch:

CC util/jitdump.o
In file included from util/jitdump.c:23:
util/genelf.h:41:2: error: #error "unsupported architecture"
util/genelf.h:44:5: error: "GEN_ELF_CLASS" is not defined
mv: cannot stat `util/.jitdump.o.tmp': No such file or directory
make[3]: *** [util/jitdump.o] Error 1


jirka