Patchwork perf: libelf is required to compile perf

login
register
mail settings
Submitter Andi Shyti
Date Nov. 5, 2013, 2:06 p.m.
Message ID <1383660387-31193-1-git-send-email-andi@etezian.org>
Download mbox | patch
Permalink /patch/288534/
State Rejected
Headers show

Comments

Andi Shyti - Nov. 5, 2013, 2:06 p.m.
Point this out in the related Config.in in the perf directory.

Mute the following error by selecting BR2_PACKAGE_LIBELF:

The perf tool in your kernel cannot be built without libelf.
Either upgrade your kernel to >= 3.7, or enable the elfutils package.
make: *** [/home/andi/repo/buildroot-snowball/output/build/perf-stable-linux-ux500-3.4/.stamp_built] Error 1

Signed-off-by: Andi Shyti <andi@etezian.org>
---
 package/perf/Config.in | 1 +
 1 file changed, 1 insertion(+)
Thomas De Schampheleire - Nov. 5, 2013, 2:53 p.m.
Hi Andi,

On Tue, Nov 5, 2013 at 3:06 PM, Andi Shyti <andi@etezian.org> wrote:
> Point this out in the related Config.in in the perf directory.
>
> Mute the following error by selecting BR2_PACKAGE_LIBELF:
>
> The perf tool in your kernel cannot be built without libelf.
> Either upgrade your kernel to >= 3.7, or enable the elfutils package.
> make: *** [/home/andi/repo/buildroot-snowball/output/build/perf-stable-linux-ux500-3.4/.stamp_built] Error 1
>
> Signed-off-by: Andi Shyti <andi@etezian.org>
> ---
>  package/perf/Config.in | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/package/perf/Config.in b/package/perf/Config.in
> index 88dce93..4b651b3 100644
> --- a/package/perf/Config.in
> +++ b/package/perf/Config.in
> @@ -2,6 +2,7 @@ config BR2_PACKAGE_PERF
>         bool "perf"
>         depends on BR2_LINUX_KERNEL
>         depends on BR2_LARGEFILE
> +       depends on BR2_PACKAGE_LIBELF
>         help
>           perf (sometimes "Perf Events" or perf tools, originally
>           "Performance Counters for Linux") - is a performance

This doesn't look right. As the error indicates, if your kernel is
recent enough you don't need libelf.
Have you tried enabling libelf manually?

Best regards,
Thomas

> --
> 1.8.4.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Ryan Barnett - Nov. 5, 2013, 2:58 p.m.
Andi,

Andi Shyti <andi@etezian.org> wrote on 11/05/2013 08:06:27 AM:

> Point this out in the related Config.in in the perf directory.
> 
> Mute the following error by selecting BR2_PACKAGE_LIBELF:
> 
> The perf tool in your kernel cannot be built without libelf.
> Either upgrade your kernel to >= 3.7, or enable the elfutils package.
> make: *** [/home/andi/repo/buildroot-snowball/output/build/perf-
> stable-linux-ux500-3.4/.stamp_built] Error 1
> 
> Signed-off-by: Andi Shyti <andi@etezian.org>
> ---
>  package/perf/Config.in | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/perf/Config.in b/package/perf/Config.in
> index 88dce93..4b651b3 100644
> --- a/package/perf/Config.in
> +++ b/package/perf/Config.in
> @@ -2,6 +2,7 @@ config BR2_PACKAGE_PERF
>     bool "perf"
>     depends on BR2_LINUX_KERNEL
>     depends on BR2_LARGEFILE
> +   depends on BR2_PACKAGE_LIBELF

Wouldn't you want this to be a select since LIBELF is required by this 
package? Also in the perf.mk you want to ensure that the libelf package is 
built before by adding a dependancy to the makefile.

ifeq ($(BR2_PACKAGE_LIBELF),y)
PERF_DEPENDENCIES += libelf
endif

Please see section 6.1.2 of the Buildroot manual:
http://buildroot.uclibc.org/downloads/manual/manual.html#writing-rules-mk

>     help
>       perf (sometimes "Perf Events" or perf tools, originally
>       "Performance Counters for Linux") - is a performance
> -- 
> 1.8.4.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Baruch Siach - Nov. 5, 2013, 4:18 p.m.
Hi rjbarnet@rockwellcollins.com,

On Tue, Nov 05, 2013 at 08:58:10AM -0600, rjbarnet@rockwellcollins.com wrote:
> Andi Shyti <andi@etezian.org> wrote on 11/05/2013 08:06:27 AM:
> 
> > Point this out in the related Config.in in the perf directory.
> > 
> > Mute the following error by selecting BR2_PACKAGE_LIBELF:
> > 
> > The perf tool in your kernel cannot be built without libelf.
> > Either upgrade your kernel to >= 3.7, or enable the elfutils package.
> > make: *** [/home/andi/repo/buildroot-snowball/output/build/perf-
> > stable-linux-ux500-3.4/.stamp_built] Error 1
> > 
> > Signed-off-by: Andi Shyti <andi@etezian.org>
> > ---
> >  package/perf/Config.in | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/package/perf/Config.in b/package/perf/Config.in
> > index 88dce93..4b651b3 100644
> > --- a/package/perf/Config.in
> > +++ b/package/perf/Config.in
> > @@ -2,6 +2,7 @@ config BR2_PACKAGE_PERF
> >     bool "perf"
> >     depends on BR2_LINUX_KERNEL
> >     depends on BR2_LARGEFILE
> > +   depends on BR2_PACKAGE_LIBELF
> 
> Wouldn't you want this to be a select since LIBELF is required by this 
> package? Also in the perf.mk you want to ensure that the libelf package is 
> built before by adding a dependancy to the makefile.
> 
> ifeq ($(BR2_PACKAGE_LIBELF),y)
> PERF_DEPENDENCIES += libelf
> endif

When you select BR2_PACKAGE_LIBELF in Config.in there should be no need for 
the 'ifeq' condition. Just add 'libelf' to PERF_DEPENDENCIES unconditionally.

baruch
Ryan Barnett - Nov. 5, 2013, 4:27 p.m.
Baruch Siach,

Baruch Siach <baruch@tkos.co.il> wrote on 11/05/2013 10:18:46 AM:
 
> On Tue, Nov 05, 2013 at 08:58:10AM -0600, rjbarnet@rockwellcollins.com 
wrote:
> > Andi Shyti <andi@etezian.org> wrote on 11/05/2013 08:06:27 AM:
> > > diff --git a/package/perf/Config.in b/package/perf/Config.in
> > > index 88dce93..4b651b3 100644
> > > --- a/package/perf/Config.in
> > > +++ b/package/perf/Config.in
> > > @@ -2,6 +2,7 @@ config BR2_PACKAGE_PERF
> > >     bool "perf"
> > >     depends on BR2_LINUX_KERNEL
> > >     depends on BR2_LARGEFILE
> > > +   depends on BR2_PACKAGE_LIBELF
> > 
> > Wouldn't you want this to be a select since LIBELF is required by this 

> > package? Also in the perf.mk you want to ensure that the libelf 
package is 
> > built before by adding a dependancy to the makefile.
> > 
> > ifeq ($(BR2_PACKAGE_LIBELF),y)
> > PERF_DEPENDENCIES += libelf
> > endif
> 
> When you select BR2_PACKAGE_LIBELF in Config.in there should be no need 
for 
> the 'ifeq' condition. Just add 'libelf' to PERF_DEPENDENCIES 
unconditionally.
 
You are correct. Its just habit that I do things like that.

Thanks,
-Ryan
Andi Shyti - Nov. 5, 2013, 5:10 p.m.
Hi Thomas,

> > Point this out in the related Config.in in the perf directory.
> >
> > Mute the following error by selecting BR2_PACKAGE_LIBELF:
> >
> > The perf tool in your kernel cannot be built without libelf.
> > Either upgrade your kernel to >= 3.7, or enable the elfutils package.
> > make: *** [/home/andi/repo/buildroot-snowball/output/build/perf-stable-linux-ux500-3.4/.stamp_built] Error 1
> 
> This doesn't look right. As the error indicates, if your kernel is
> recent enough you don't need libelf.

I was compiling for snowball which has an old Kernel as default,
that's why I got the error.

> Have you tried enabling libelf manually?

By enabling it manually it works. If the patch doesn't look
right, feel free to ignore it.

Thanks,
Andi

Patch

diff --git a/package/perf/Config.in b/package/perf/Config.in
index 88dce93..4b651b3 100644
--- a/package/perf/Config.in
+++ b/package/perf/Config.in
@@ -2,6 +2,7 @@  config BR2_PACKAGE_PERF
 	bool "perf"
 	depends on BR2_LINUX_KERNEL
 	depends on BR2_LARGEFILE
+	depends on BR2_PACKAGE_LIBELF
 	help
 	  perf (sometimes "Perf Events" or perf tools, originally
 	  "Performance Counters for Linux") - is a performance