[ltt-dev] [PATCH 1/1] Fix compilation on uclibc
Mathieu Desnoyers
compudj at krystal.dyndns.org
Mon Jun 13 10:25:06 EDT 2011
* Dexuan Cui (dexuan.cui at intel.com) wrote:
> The origin of the patch is
> http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/?id=196f689f63f363b245634131c94fd10e6e84b604
> "
> uClibc does not have sched_getcpu() implemented. So we create a wrapper
> to getcpu syscall when compiling for uclibc.
>
> So far execinfo.h does not exist on uclibc but it turns out to be that
> this header is not needed even in eglibc case so it can be removed
>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> "
>
> I applied it to ust 0.14 and tested it.
>
> Signed-off-by: Dexuan Cui <dexuan.cui at intel.com>
Hi Dexuan,
> ---
> libust/tracer.h | 10 ++++++++++
> libustcomm/ustcomm.c | 1 -
> 2 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/libust/tracer.h b/libust/tracer.h
> index 03049aa..4013471 100644
> --- a/libust/tracer.h
> +++ b/libust/tracer.h
> @@ -344,13 +344,23 @@ static __inline__ void ltt_write_trace_header(struct ust_trace *trace,
> header->freq_scale = trace->freq_scale;
> }
>
> +#ifdef __UCLIBC__
> +#define sched_getcpu(cpu, node, cache) syscall(__NR_getcpu, cpu, node, cache)
> +#endif
> +
> #ifndef UST_VALGRIND
>
> static __inline__ int ust_get_cpu(void)
> {
> int cpu;
>
> +#ifdef __UCLIBC__
> + int c, s;
> + s = syscall(__NR_getcpu, &c, NULL, NULL);
> + cpu = (s == -1) ? s : c;
> +#else
I am going for an approach less intrusive into the code:
adding ust/compat.h with the sched_getcpu wrapper, and including it into
tracer.h: commit 0a2aba1397f90fa65c293ab856d18579ae14b77f
> cpu = sched_getcpu();
> +#endif
> if (likely(cpu >= 0))
> return cpu;
> /*
> diff --git a/libustcomm/ustcomm.c b/libustcomm/ustcomm.c
> index 3c7c0bb..07f7f87 100644
> --- a/libustcomm/ustcomm.c
> +++ b/libustcomm/ustcomm.c
> @@ -33,7 +33,6 @@
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> -#include <execinfo.h>
I created a separate commit for this one:
5c3950f8809ce2c5272fdbfa27b606f648b485fb
Testing on uclibc would be very welcome.
Thanks,
Mathieu
>
> #include "ustcomm.h"
> #include "usterr.h"
> --
> 1.7.2
>
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list