diff mbox

tools: perf: fix linker error when libelf config is disabled

Message ID 1483537960-14499-1-git-send-email-sudeep.holla@arm.com
State Superseded
Headers show

Commit Message

Sudeep Holla Jan. 4, 2017, 1:52 p.m. UTC
When libelf is disabled in the configuration, we get the following
linker error:
  LINK     libperf-jvmti.so
  ld: cannot find -lelf
  Makefile.perf:515: recipe for target 'libperf-jvmti.so' failed

This patch fixes the error by using the configuration macro EXTLIBS.

Fixes: d4dfdf00d43e ("perf jvmti: Plug compilation into perf build")
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

---
 tools/perf/Makefile.perf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.7.4

Comments

Jiri Olsa Jan. 4, 2017, 2:45 p.m. UTC | #1
On Wed, Jan 04, 2017 at 01:52:40PM +0000, Sudeep Holla wrote:
> When libelf is disabled in the configuration, we get the following

> linker error:

>   LINK     libperf-jvmti.so

>   ld: cannot find -lelf

>   Makefile.perf:515: recipe for target 'libperf-jvmti.so' failed

> 

> This patch fixes the error by using the configuration macro EXTLIBS.

> 

> Fixes: d4dfdf00d43e ("perf jvmti: Plug compilation into perf build")

> Cc: Peter Zijlstra <peterz@infradead.org>

> Cc: Ingo Molnar <mingo@redhat.com>

> Cc: Jiri Olsa <jolsa@kernel.org>

> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

> ---

>  tools/perf/Makefile.perf | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf

> index 8fc24824705e..6defd9b00bc4 100644

> --- a/tools/perf/Makefile.perf

> +++ b/tools/perf/Makefile.perf

> @@ -512,7 +512,7 @@ $(LIBJVMTI_IN): FORCE

>  	$(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=jvmti obj=jvmti

>  

>  $(OUTPUT)$(LIBJVMTI): $(LIBJVMTI_IN)

> -	$(QUIET_LINK)$(CC) -shared -Wl,-soname -Wl,$(LIBJVMTI) -o $@ $< -lelf -lrt

> +	$(QUIET_LINK)$(CC) -shared -Wl,-soname -Wl,$(LIBJVMTI) -o $@ $< $(EXTLIBS) -lrt

>  endif


hm, do we need -lelf -lrt at all? can't see reason for that

jirka
Sudeep Holla Jan. 4, 2017, 3:45 p.m. UTC | #2
On 04/01/17 14:45, Jiri Olsa wrote:
> On Wed, Jan 04, 2017 at 01:52:40PM +0000, Sudeep Holla wrote:

>> When libelf is disabled in the configuration, we get the following

>> linker error:

>>   LINK     libperf-jvmti.so

>>   ld: cannot find -lelf

>>   Makefile.perf:515: recipe for target 'libperf-jvmti.so' failed

>>

>> This patch fixes the error by using the configuration macro EXTLIBS.

>>

>> Fixes: d4dfdf00d43e ("perf jvmti: Plug compilation into perf build")

>> Cc: Peter Zijlstra <peterz@infradead.org>

>> Cc: Ingo Molnar <mingo@redhat.com>

>> Cc: Jiri Olsa <jolsa@kernel.org>

>> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

>> ---

>>  tools/perf/Makefile.perf | 2 +-

>>  1 file changed, 1 insertion(+), 1 deletion(-)

>>

>> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf

>> index 8fc24824705e..6defd9b00bc4 100644

>> --- a/tools/perf/Makefile.perf

>> +++ b/tools/perf/Makefile.perf

>> @@ -512,7 +512,7 @@ $(LIBJVMTI_IN): FORCE

>>  	$(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=jvmti obj=jvmti

>>  

>>  $(OUTPUT)$(LIBJVMTI): $(LIBJVMTI_IN)

>> -	$(QUIET_LINK)$(CC) -shared -Wl,-soname -Wl,$(LIBJVMTI) -o $@ $< -lelf -lrt

>> +	$(QUIET_LINK)$(CC) -shared -Wl,-soname -Wl,$(LIBJVMTI) -o $@ $< $(EXTLIBS) -lrt

>>  endif

> 

> hm, do we need -lelf -lrt at all? can't see reason for that


I agree as it links well without libelf. I was not sure if enabling
libelf has any issue removing it, hence I retained. I will remove both
and repost. Thanks for having a look.

-- 
Regards,
Sudeep
diff mbox

Patch

diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 8fc24824705e..6defd9b00bc4 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -512,7 +512,7 @@  $(LIBJVMTI_IN): FORCE
 	$(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=jvmti obj=jvmti
 
 $(OUTPUT)$(LIBJVMTI): $(LIBJVMTI_IN)
-	$(QUIET_LINK)$(CC) -shared -Wl,-soname -Wl,$(LIBJVMTI) -o $@ $< -lelf -lrt
+	$(QUIET_LINK)$(CC) -shared -Wl,-soname -Wl,$(LIBJVMTI) -o $@ $< $(EXTLIBS) -lrt
 endif
 
 $(patsubst perf-%,%.o,$(PROGRAMS)): $(wildcard */*.h)