[lttng-dev] Making 32-bit user-space events on a 64-bit Linux system

Thibault, Daniel Daniel.Thibault at drdc-rddc.gc.ca
Tue Oct 1 17:13:04 EDT 2013


-----Message d'origine-----
De : jeremie.galarneau at gmail.com [mailto:jeremie.galarneau at gmail.com]
Envoyé : 30 septembre 2013 18:34

>>    The problem is the "incompatible /usr/local/lib/liblttng-ust.so".  I even tried rebuilding the entire lttng suite (originally built *before* gcc-multilib was added), but that changed nothing.  How do I do this?  More generally, how does one add tracepoints to a 32-bit application running on a 64-bit system?
>
> The complete LTTng toolchain must be built for 32-bit (including the dependencies). Please refer to your distribution's documentation on how to build or install 32-bit packages.

   I'm assuming the lttng-modules are to be excluded from the 32-bit build (since I'm concerned with just 32-bit user-space events anyway).  I manage to rebuild userspace-rcu and lttng-ust with no apparent trouble, changing just the ./configure line in each case:

userspace-rcu-32bits:
$ ./configure --libdir=/usr/local/lib32 CFLAGS="-m32 -g -O2"
$ make
$ sudo make install
$ sudo ldconfig

lttng-ust-32bits:

$ ./configure LDFLAGS=-L/usr/local/lib32 --with-jni-interface --with-java-jdk=`./doc/examples/drdc/findjdk` --with-sdt --libdir=/usr/local/lib32 CFLAGS="-m32 -g -O2"
$ make
$ sudo make install
$ sudo ldconfig

lttng-tools is more challenging.  I figure I'll need to build just the 32-bit lttng-consumerd, then rebuild the 64-bit lttng-tools with --with-consumerd32-libdir and --with-consumerd32-bin properly set:

lttng-tools-32bits:
$ ./configure LDFLAGS=-L/usr/local/lib32 --enable-python-bindings --bindir=/usr/local/bin32 --libdir=/usr/local/lib32 CFLAGS="-m32 -g -O2" --with-consumerd-only
$ make
$ sudo make install
$ sudo ldconfig

lttng-tools-64bits:
$ ./configure LDFLAGS=-L/usr/local/lib --enable-python-bindings --with-consumerd32-bin=/usr/local/bin32/lttng/lttng-consumerd --with-consumerd32-libdir=/usr/local/lib32
$ make
$ sudo make install
$ sudo ldconfig

Haven't tried this yet.  Am I on the right track to get 64-bit lttng-tools to capture 32-bit user-space events?

Daniel U. Thibault
Protection des systèmes et contremesures (PSC) | Systems Protection & Countermeasures (SPC)
Cyber sécurité pour les missions essentielles (CME) | Mission Critical Cyber Security (MCCS)
R & D pour la défense Canada - Valcartier (RDDC Valcartier) | Defence R&D Canada - Valcartier (DRDC Valcartier)
2459 route de la Bravoure
Québec QC  G3J 1X5
CANADA
Vox : (418) 844-4000 x4245
Fax : (418) 844-4538
NAC : 918V QSDJ <http://www.travelgis.com/map.asp?addr=918V%20QSDJ>
Gouvernement du Canada | Government of Canada
<http://www.valcartier.drdc-rddc.gc.ca/>



More information about the lttng-dev mailing list