lttng-ust_0.12.bb: Fix compilation on uclibc

We provide alternative implementation of sched_getcpu()
when compiling for uclibc

(From OE-Core rev: 03f442250579a392b49b54648840fbeb7c0a0142)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj 2011-05-06 15:17:25 -07:00 committed by Richard Purdie
parent 4401c942a8
commit 196f689f63
2 changed files with 53 additions and 1 deletions

View File

@ -0,0 +1,50 @@
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@gmail.com>
Upstream-status: Pending
Index: ust-0.12/libust/tracer.h
===================================================================
--- ust-0.12.orig/libust/tracer.h
+++ ust-0.12/libust/tracer.h
@@ -342,14 +342,22 @@ static __inline__ void ltt_write_trace_h
header->start_freq = trace->start_freq;
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
cpu = sched_getcpu();
+#endif
if (likely(cpu >= 0))
return cpu;
/*
Index: ust-0.12/libustcomm/ustcomm.c
===================================================================
--- ust-0.12.orig/libustcomm/ustcomm.c
+++ ust-0.12/libustcomm/ustcomm.c
@@ -31,7 +31,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <execinfo.h>
#include "ustcomm.h"
#include "usterr.h"

View File

@ -12,7 +12,9 @@ DEPENDS = "liburcu"
PR = "r0"
SRC_URI = "http://lttng.org/files/ust/releases/ust-${PV}.tar.gz"
SRC_URI = "http://lttng.org/files/ust/releases/ust-${PV}.tar.gz \
file://uclibc-sched_getcpu.patch \
"
SRC_URI[md5sum] = "fae6e324a56016658c5b83ec14ba0043"
SRC_URI[sha256sum] = "215b05f47d0c9e3a2934926a7d14fa9c67025db917c3a1f641df40b08314ab0c"