Message ID | 201108091324.17750.florian@openwrt.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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
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
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
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
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 {
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> ---