linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: fix perf build with uclibc toolchains
@ 2011-08-09 11:24 Florian Fainelli
  2011-08-09 20:08 ` Will Deacon
  0 siblings, 1 reply; 6+ messages in thread
From: Florian Fainelli @ 2011-08-09 11:24 UTC (permalink / raw)
  To: linux-arm-kernel

libio.h is not provided by uClibc, in order to be able to test the
definition of __UCLIBC__ we need to include stdlib.h, which also
includes stddef.h, providing the definition of 'NULL'.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
---
diff --git a/tools/perf/arch/arm/util/dwarf-regs.c b/tools/perf/arch/arm/util/dwarf-regs.c
index fff6450..e8d5c55 100644
--- a/tools/perf/arch/arm/util/dwarf-regs.c
+++ b/tools/perf/arch/arm/util/dwarf-regs.c
@@ -8,7 +8,10 @@
  * published by the Free Software Foundation.
  */
 
+#include <stdlib.h>
+#ifndef __UCLIBC__
 #include <libio.h>
+#endif
 #include <dwarf-regs.h>
 
 struct pt_regs_dwarfnum {
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] ARM: fix perf build with uclibc toolchains
  2011-08-09 11:24 [PATCH] ARM: fix perf build with uclibc toolchains Florian Fainelli
@ 2011-08-09 20:08 ` Will Deacon
  2011-08-10 10:21   ` Will Deacon
  0 siblings, 1 reply; 6+ messages in thread
From: Will Deacon @ 2011-08-09 20:08 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Florian,

On Tue, Aug 09, 2011 at 12:24:17PM +0100, Florian Fainelli wrote:
> libio.h is not provided by uClibc, in order to be able to test the
> definition of __UCLIBC__ we need to include stdlib.h, which also
> includes stddef.h, providing the definition of 'NULL'.
> 
> Signed-off-by: Florian Fainelli <florian@openwrt.org>
> ---
> diff --git a/tools/perf/arch/arm/util/dwarf-regs.c b/tools/perf/arch/arm/util/dwarf-regs.c
> index fff6450..e8d5c55 100644
> --- a/tools/perf/arch/arm/util/dwarf-regs.c
> +++ b/tools/perf/arch/arm/util/dwarf-regs.c
> @@ -8,7 +8,10 @@
>   * published by the Free Software Foundation.
>   */
>  
> +#include <stdlib.h>
> +#ifndef __UCLIBC__
>  #include <libio.h>
> +#endif
>  #include <dwarf-regs.h>
>  
>  struct pt_regs_dwarfnum {

Nice to see somebody trying to get this going with uclinux! I'll give this a
quick compile-check on my boards and then I'll include it in my perf-fixes
branch for 3.1.

Cheers,

Will

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] ARM: fix perf build with uclibc toolchains
  2011-08-09 20:08 ` Will Deacon
@ 2011-08-10 10:21   ` Will Deacon
  2011-08-10 10:56     ` Florian Fainelli
  0 siblings, 1 reply; 6+ messages in thread
From: Will Deacon @ 2011-08-10 10:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Aug 09, 2011 at 09:08:53PM +0100, Will Deacon wrote:
> On Tue, Aug 09, 2011 at 12:24:17PM +0100, Florian Fainelli wrote:
> > libio.h is not provided by uClibc, in order to be able to test the
> > definition of __UCLIBC__ we need to include stdlib.h, which also
> > includes stddef.h, providing the definition of 'NULL'.
> > 
> > Signed-off-by: Florian Fainelli <florian@openwrt.org>
> > ---
> > diff --git a/tools/perf/arch/arm/util/dwarf-regs.c b/tools/perf/arch/arm/util/dwarf-regs.c
> > index fff6450..e8d5c55 100644
> > --- a/tools/perf/arch/arm/util/dwarf-regs.c
> > +++ b/tools/perf/arch/arm/util/dwarf-regs.c
> > @@ -8,7 +8,10 @@
> >   * published by the Free Software Foundation.
> >   */
> >  
> > +#include <stdlib.h>
> > +#ifndef __UCLIBC__
> >  #include <libio.h>
> > +#endif
> >  #include <dwarf-regs.h>
> >  
> >  struct pt_regs_dwarfnum {
> 
> Nice to see somebody trying to get this going with uclinux! I'll give this a
> quick compile-check on my boards and then I'll include it in my perf-fixes
> branch for 3.1.

Seems happy enough on my MMU boards. Since you're using this on noMMU
platforms, does that mean that you can build a static perf binary out of the
box or do you need further patches for this?

Will

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] ARM: fix perf build with uclibc toolchains
  2011-08-10 10:21   ` Will Deacon
@ 2011-08-10 10:56     ` Florian Fainelli
  2011-08-10 12:26       ` Will Deacon
  0 siblings, 1 reply; 6+ messages in thread
From: Florian Fainelli @ 2011-08-10 10:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 10 August 2011 12:21:55 Will Deacon wrote:
> On Tue, Aug 09, 2011 at 09:08:53PM +0100, Will Deacon wrote:
> > On Tue, Aug 09, 2011 at 12:24:17PM +0100, Florian Fainelli wrote:
> > > libio.h is not provided by uClibc, in order to be able to test the
> > > definition of __UCLIBC__ we need to include stdlib.h, which also
> > > includes stddef.h, providing the definition of 'NULL'.
> > > 
> > > Signed-off-by: Florian Fainelli <florian@openwrt.org>
> > > ---
> > > diff --git a/tools/perf/arch/arm/util/dwarf-regs.c
> > > b/tools/perf/arch/arm/util/dwarf-regs.c index fff6450..e8d5c55 100644
> > > --- a/tools/perf/arch/arm/util/dwarf-regs.c
> > > +++ b/tools/perf/arch/arm/util/dwarf-regs.c
> > > @@ -8,7 +8,10 @@
> > > 
> > >   * published by the Free Software Foundation.
> > >   */
> > > 
> > > +#include <stdlib.h>
> > > +#ifndef __UCLIBC__
> > > 
> > >  #include <libio.h>
> > > 
> > > +#endif
> > > 
> > >  #include <dwarf-regs.h>
> > >  
> > >  struct pt_regs_dwarfnum {
> > 
> > Nice to see somebody trying to get this going with uclinux! I'll give
> > this a quick compile-check on my boards and then I'll include it in my
> > perf-fixes branch for 3.1.
> 
> Seems happy enough on my MMU boards. Since you're using this on noMMU
> platforms, does that mean that you can build a static perf binary out of
> the box or do you need further patches for this?

uClibc is not only for noMMU boards, I just built an uclibc toolchain for arm 
targetting realview and run-tested this with qemu. This was the only patch 
required to cross-compile perf for me. I also tested this with eglibc.

By the way, perf top reports no even being generated for realview under qemu, 
is that normal?
--
Florian

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] ARM: fix perf build with uclibc toolchains
  2011-08-10 10:56     ` Florian Fainelli
@ 2011-08-10 12:26       ` Will Deacon
  2011-08-10 13:08         ` Florian Fainelli
  0 siblings, 1 reply; 6+ messages in thread
From: Will Deacon @ 2011-08-10 12:26 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Aug 10, 2011 at 11:56:00AM +0100, Florian Fainelli wrote:
> On Wednesday 10 August 2011 12:21:55 Will Deacon wrote:
> > On Tue, Aug 09, 2011 at 09:08:53PM +0100, Will Deacon wrote:
> > > On Tue, Aug 09, 2011 at 12:24:17PM +0100, Florian Fainelli wrote:
> > > > libio.h is not provided by uClibc, in order to be able to test the
> > > > definition of __UCLIBC__ we need to include stdlib.h, which also
> > > > includes stddef.h, providing the definition of 'NULL'.
> > > > 
> > > > Signed-off-by: Florian Fainelli <florian@openwrt.org>
> > > > ---
> > > > diff --git a/tools/perf/arch/arm/util/dwarf-regs.c
> > > > b/tools/perf/arch/arm/util/dwarf-regs.c index fff6450..e8d5c55 100644
> > > > --- a/tools/perf/arch/arm/util/dwarf-regs.c
> > > > +++ b/tools/perf/arch/arm/util/dwarf-regs.c
> > > > @@ -8,7 +8,10 @@
> > > > 
> > > >   * published by the Free Software Foundation.
> > > >   */
> > > > 
> > > > +#include <stdlib.h>
> > > > +#ifndef __UCLIBC__
> > > > 
> > > >  #include <libio.h>
> > > > 
> > > > +#endif
> > > > 
> > > >  #include <dwarf-regs.h>
> > > >  
> > > >  struct pt_regs_dwarfnum {
> > > 
> > > Nice to see somebody trying to get this going with uclinux! I'll give
> > > this a quick compile-check on my boards and then I'll include it in my
> > > perf-fixes branch for 3.1.
> > 
> > Seems happy enough on my MMU boards. Since you're using this on noMMU
> > platforms, does that mean that you can build a static perf binary out of
> > the box or do you need further patches for this?
> 
> uClibc is not only for noMMU boards, I just built an uclibc toolchain for arm 
> targetting realview and run-tested this with qemu. This was the only patch 
> required to cross-compile perf for me. I also tested this with eglibc.

Ok, great. Cross-compiling perf usually just causes endless pain for me.

> By the way, perf top reports no even being generated for realview under qemu, 
> is that normal?

My guess is that qemu isn't emulating the cycle counter, which is required
to generate interrupts for use by perf. You could try disabling
HW_PERF_EVENTS which will force perf to fall back to a CPU tick instead.

Will

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] ARM: fix perf build with uclibc toolchains
  2011-08-10 12:26       ` Will Deacon
@ 2011-08-10 13:08         ` Florian Fainelli
  0 siblings, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2011-08-10 13:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 10 August 2011 14:26:48 Will Deacon wrote:
> On Wed, Aug 10, 2011 at 11:56:00AM +0100, Florian Fainelli wrote:
> > On Wednesday 10 August 2011 12:21:55 Will Deacon wrote:
> > > On Tue, Aug 09, 2011 at 09:08:53PM +0100, Will Deacon wrote:
> > > > On Tue, Aug 09, 2011 at 12:24:17PM +0100, Florian Fainelli wrote:
> > > > > libio.h is not provided by uClibc, in order to be able to test the
> > > > > definition of __UCLIBC__ we need to include stdlib.h, which also
> > > > > includes stddef.h, providing the definition of 'NULL'.
> > > > > 
> > > > > Signed-off-by: Florian Fainelli <florian@openwrt.org>
> > > > > ---
> > > > > diff --git a/tools/perf/arch/arm/util/dwarf-regs.c
> > > > > b/tools/perf/arch/arm/util/dwarf-regs.c index fff6450..e8d5c55
> > > > > 100644 --- a/tools/perf/arch/arm/util/dwarf-regs.c
> > > > > +++ b/tools/perf/arch/arm/util/dwarf-regs.c
> > > > > @@ -8,7 +8,10 @@
> > > > > 
> > > > >   * published by the Free Software Foundation.
> > > > >   */
> > > > > 
> > > > > +#include <stdlib.h>
> > > > > +#ifndef __UCLIBC__
> > > > > 
> > > > >  #include <libio.h>
> > > > > 
> > > > > +#endif
> > > > > 
> > > > >  #include <dwarf-regs.h>
> > > > >  
> > > > >  struct pt_regs_dwarfnum {
> > > > 
> > > > Nice to see somebody trying to get this going with uclinux! I'll give
> > > > this a quick compile-check on my boards and then I'll include it in
> > > > my perf-fixes branch for 3.1.
> > > 
> > > Seems happy enough on my MMU boards. Since you're using this on noMMU
> > > platforms, does that mean that you can build a static perf binary out
> > > of the box or do you need further patches for this?
> > 
> > uClibc is not only for noMMU boards, I just built an uclibc toolchain for
> > arm targetting realview and run-tested this with qemu. This was the only
> > patch required to cross-compile perf for me. I also tested this with
> > eglibc.
> 
> Ok, great. Cross-compiling perf usually just causes endless pain for me.
> 
> > By the way, perf top reports no even being generated for realview under
> > qemu, is that normal?
> 
> My guess is that qemu isn't emulating the cycle counter, which is required
> to generate interrupts for use by perf. You could try disabling
> HW_PERF_EVENTS which will force perf to fall back to a CPU tick instead.

That did it, thanks a lot Will.
--
Florian

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-08-10 13:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-09 11:24 [PATCH] ARM: fix perf build with uclibc toolchains Florian Fainelli
2011-08-09 20:08 ` Will Deacon
2011-08-10 10:21   ` Will Deacon
2011-08-10 10:56     ` Florian Fainelli
2011-08-10 12:26       ` Will Deacon
2011-08-10 13:08         ` Florian Fainelli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).