Well, I cannot get my hands on a R7 NDK this very moment, but I'm surprised there are no grep hits in the ./platforms/android-XX/arch-arm directory; can you verify that the NDK you have does include an ARM architecture sysroot? That's the the one you should be compiling with, and I believe you'll find the asm/unistd.h header there (as there is no 32/64 bit difference on Android+ARM yet).
On Tue, May 21, 2013 at 11:29 AM, Ionut D. <[email protected]> wrote: > The problem is that I am trying to build it on ICS with NDK r7 and I tried > to build it in the both ways with the ndk and also by creating Android.mk > files and it looks like is not working. I searched with grep firstly > through NDK and second through bionic and these are the results: > > NDK: > #grep -r __NR_splice . > ./platforms/android-9/arch-x86/usr/include/asm/unistd_32.h:#define > __NR_splice 313 > ./platforms/android-14/arch-x86/usr/include/asm/unistd_32.h:#define > __NR_splice 313 > > bionic: > grep -r __NR_splice bionic > bionic/libc/kernel/arch-sh/asm/unistd_32.h:#define __NR_splice 313 > bionic/libc/kernel/arch-sh/asm/unistd_64.h:#define __NR_splice 341 > bionic/libc/kernel/arch-x86/asm/unistd_32.h:#define __NR_splice 313 > > Looking through results I see that '__NR_splice' it not in unistd.h and I > know this is important. > > Ionut > > > On Tue, May 21, 2013 at 5:15 PM, Pierre-Luc St-Charles < > [email protected]> wrote: > >> 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
