Re: perf jvmti: unconditionally links against -lelf
From: Jiri Olsa
Date: Wed Apr 12 2017 - 06:20:09 EST
On Wed, Apr 12, 2017 at 09:58:26AM +0000, Alexey Brodkin wrote:
> Hi Jiri,
>
> Just tried to cross-compile perf with pretty bare-minimal toolchain
> which has no libelf installed for the target (for the record I used
> SNPS ARC pre-built arc-2016.09 tools) like that:
> --------------->8------------
> make NO_LIBELF=1
> --------------->8------------
>
> And got the following build failure:
> --------------->8------------
> LINK libperf-jvmti.so
> .../2016.09-uclibc-archs/bin/../lib/gcc/arc-snps-linux-uclibc/6.2.1/../../../../arc-snps-linux-uclibc/bin/ld: cannot find -lelf
> --------------->8------------
>
> First I was surprised because I intentionally disabled usage of libelf
> but after some grepping figured out jvmti is linked against libelf
> regardless any settings, see:
> --------------->8------------
> $(OUTPUT)$(LIBJVMTI): $(LIBJVMTI_IN)
> $(QUIET_LINK)$(CC) -shared -Wl,-soname -Wl,$(LIBJVMTI) -o $@ $< -lelf -lrt
> endif
> --------------->8------------
>
> This comes from commit d4dfdf00d43e ("perf jvmti: Plug compilation into perf build").
>
> I'm not really sure what could be the best solution to the problem I see.
> If libelf is a real must for jvmti then probably we may force set NO_JVMTI=1
> if NO_LIBELF=1 is passed on the command line.
>
> At least the following builds perf for me without issues:
> --------------->8------------
> make NO_LIBELF=1 NO_JVMTI=1
> --------------->8------------
hi,
incidently, David just posted patch for this ;-)
http://marc.info/?l=linux-kernel&m=149197980107421&w=2
should be merged soon
jirka