[lttng-dev] Question/Issue compilation ARMv7 of LTTng

Jonathan Rajotte-Julien jonathan.rajotte-julien at efficios.com
Wed Mar 31 11:18:07 EDT 2021


Hi,

On Tue, Mar 30, 2021 at 10:29:22PM +0000, MONTET Julien via lttng-dev wrote:
> Hello the developpers !
> 
> On my side, userspace and kernel event are working for both x86_64 and 32bits on Ubuntu 20.04.
> One of my main goals is to use LTTng on an armv7 target (Raspbian 32 bits).

Ok.

> 
> I am using Docker to create the environment and to compile the image (Debian 9.3).
> During the compilation of RCU, I get :
> #10 5.868 checking whether the C compiler works... no
> #10 5.982 configure: error: in `/tmp/tmp.T2I20x25bo/userspace-rcu-0.12.2':
> #10 5.983 configure: error: C compiler cannot create executables

I would suggest that you have a look in the config.log file and share with us
the complete file, as always use a paste service if possible.

> 
> My question is the following : Can LTTng be used directly on arm ?

It can absolutely be used on arm.

For example see our portbuild testing matrix here:

URCU:
https://ci.lttng.org/job/liburcu_master_portbuild/

LTTng-tools:
https://ci.lttng.org/job/lttng-tools_master_portbuild/ 

> https://lttng.org/docs/v2.10/#doc-instrumenting-32-bit-app-on-64-bit-system
> I read again the tutorial and it seems we always need a 64-bits platform.

On 32bit only platform you are limited to 32bit tracing and all the limitation
related to 32bit, if any is applicable to your use case.

> 
> Find below a part of my Dockerfile (that looks like the tuto):
> # LTTng RCU - 32 bits
> RUN bin/sh -c 'cd $(mktemp -d)' && \
>     wget https://lttng.org/files/urcu/userspace-rcu-0.12.2.tar.bz2 && \
>     tar -xvf userspace-rcu-0.12.2.tar.bz2 && \
>     cd userspace-rcu-0.12.2 && \
>     ./configure --libdir=/usr/local/lib32 CFLAGS=-m32 && \
>     make && \
>     make install && \
>     ldconfig
> 
> I tried to run the installation on the docker file of gcc-multilib, build-essential, wget... but it doesn't work.

Our project use standard autotools/make mechanism for cross compilation scenarios: https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html

I am not aware of any problem at this level but after looking around our CI I
think we do not do a lot of cross compilation. Still I know that yocto and
buildroot use cross-compilation for lttng and its dependencies without any major
modification.

Still, we will wait for the config.log file before putting this in the: not a lttng problem.

Cheers

-- 
Jonathan Rajotte-Julien
EfficiOS


More information about the lttng-dev mailing list