The first error refers to __NR_splice, which should be declared once asm/unistd.h is included; in this case, it is included right above the problematic line (src/common/compat/fcntl.h @ L35). Could you verify that __NR_splice is defined somewhere in that file? If not, it might be a little more problematic.
As for the second error, I believe it is also caused by a missing symbol that should be included in asm/signal.h, which is in turn usually included via signal.h itself. Compiling with the NDK (v8, platform 14) is successful here, and I can find all these missing symbols in the default system includes there. Are you sure you specified the target sysroot when compiling? -PL On Tue, May 21, 2013 at 6:26 AM, Ionut D. <[email protected]> wrote: > I tried to compile lttng-tools and at compile time exits with the bellow > error. I looked in the sources and it looks like for arm this is not > implemented. Do you have any idea about how could this be fixed? > > > In file included from > external/lttng-tools/src/common/compat/compat-fcntl.c:19: > external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h: > In function 'splice': > external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:44: > error: '__NR_splice' undeclared (first use in this function) > external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:44: > error: (Each undeclared identifier is reported only once > external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:44: > error: for each function it appears in.) > In file included from > external/lttng-tools/src/common/compat/compat-fcntl.c:19: > external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:48:1: > warning: "POSIX_FADV_DONTNEED" redefined > In file included from > external/lttng-tools/src/common/compat/../../../src/common/compat/fcntl.h:47, > from > external/lttng-tools/src/common/compat/compat-fcntl.c:19: > bionic/libc/kernel/common/linux/fadvise.h:24:1: warning: this is the > location of the previous definition > In file included from bionic/libc/include/sys/select.h:34, > from bionic/libc/include/unistd.h:34, > from > external/lttng-tools/src/common/compat/compat-fcntl.c:20: > external/lttng-tools/src/common/compat/signal.h: At top level: > external/lttng-tools/src/common/compat/signal.h:27: error: expected ';', > ',' or ')' before '*' token > external/lttng-tools/src/common/compat/signal.h:28: error: expected ';', > ',' or ')' before '*' token > external/lttng-tools/src/common/compat/signal.h:29: error: expected ';', > ',' or ')' before '*' token > In file included from bionic/libc/include/unistd.h:34, > from > external/lttng-tools/src/common/compat/compat-fcntl.c:20: > bionic/libc/include/sys/select.h:42: error: expected ';', ',' or ')' > before '*' token > > > > On Sat, May 18, 2013 at 10:21 AM, Ionut D. <[email protected]> wrote: > >> Great informations! I will post back the results. >> >> >> On Fri, May 17, 2013 at 4:47 PM, Pierre-Luc St-Charles < >> [email protected]> wrote: >> >>> Alright, small update for all following a quick (non-mailing-list) >>> exchange: >>> >>> We did successfully complete a kernel-tracing port of LTTng for Android >>> (somewhat old news), but we are still working on bringing our patches back >>> up to date with the current version of the different projects (soon-ish >>> still applies here, we're talking days). So far, we dwelled a little bit in >>> LTTng-UST, but haven't done much changes, so userspace tracing is still not >>> functional. Device that ran kernel traces successfully so far were the >>> Nexus S and the Nexus 7 (example Nexus S trace available >>> here<https://drive.google.com/folderview?id=0B55Ba7lWTLh4U0hGeTQ4bmRYRjQ&usp=sharing>; >>> still not perfect). >>> >>> Basically, we cross-compiled everything via the Android NDK (no Android >>> makefiles involved here), and pushed all required bins to a device without >>> having to flash it (unless the default kernel config didn't allow tracing >>> -- then we'd have to flash). This approach is not compatible with the >>> official Android build system (meaning we wouldn't be able to add it to >>> Android like this), but we might eventually get working on the damned >>> Android makefiles (they're extremely painful to write, especially since >>> LTTng uses Autotools). >>> >>> The librairies required by LTTng that are not already included in a >>> regular Android build (uuid/popt) can actually be found/compiled from the >>> official repo, in its 'external' directory (see oprofile and e2fsprog -- >>> from memory). That might not be the easiest way to get them (full repo >>> download is BIG), but compatibility is assured, and you can skip a full >>> build by simply making those two individually for your device (if that's >>> all you need). >>> >>> You'll also need your device to be rooted to use LTTng at all; then, >>> most initializations are done via scripts (we'll also provide those with >>> our patches). We still had some trouble automating everything via daemons, >>> so we always ran the sessiond locally (with success). >>> >>> Major problems we encountered so far were missing posix functions, and >>> sysv shared memory. Basically, Android relies on Bionic for its system >>> calls and other low-level functions, and since Bionic is pretty >>> 'lightweight', they trimmed most of the fat out for performance. We had to >>> make some more-or-less sketchy replacements here and there, but everything >>> seems to be working decently now. >>> >>> So, simple 'how do I put LTTng on Android' workflow would be this: >>> >>> - Compile modules (using NDK) against device's kernel, making sure its >>> config is appropriate, ship them over via ADB >>> >>> - Compile required external libraries (using repo build system) for >>> the device, ship them over via ADB >>> >>> - Patch up LTTng-* (soon-ish! I could send you the outdated patches >>> right now if you're interested though, they might be a month behind or so >>> on the current trunks) >>> >>> - Cross-compile LTTng-* for the device (using NDK), ship binaries over >>> via ADB >>> >>> Then, on the device, start up the sessiond manually & start tracing. >>> >>> >>> I think I went over everything, but if there's a part that's still >>> cloudy, don't hesitate. >>> >>> >>> -PL >>> >>> >>> On May 17, 2013 1:32 AM, "Ionut D." <[email protected]> wrote: >>> >>>> Hello all, >>>> >>>> Recently I started to integrate LTTNG in Android ICS by compiling each >>>> package, each dependency, by using the Android build system. It is a lot of >>>> work because I met different problems and to be sincere, I do not know if >>>> at the end will work and I do not know how much I will need to modify the >>>> sources in order to work. >>>> >>>> My questions are about this integration. I mention that I read a lot of >>>> discussions about this on Internet, on this mailing list, but the things >>>> are still not very clear for me. >>>> >>>> It is ok? what I am trying to do ? to integrate and build by using the >>>> Android build system. >>>> Could you give me some guidelines, indications about how I should >>>> proceed, maybe a tutorial or maybe some android make files/patches that >>>> would help me to see how the job must be done and if I am doing it right ? >>>> >>>> Until now I managed to build lttng-modules, liburcu, libuuid from >>>> util-linux and configure lttng-ust by using the android toolchain for arm. >>>> I got a lot of errors but until now I managed to configure/make these >>>> packages. >>>> >>>> I mention that I am trying to build lttng 2.x on ICS 4.0.3. >>>> >>>> Would be great if you will give me a tutorial about how to do it. >>>> >>>> Ionut >>>> >>>> _______________________________________________ >>>> lttng-dev mailing list >>>> [email protected] >>>> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev >>>> >>>> >> >
_______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
