Stephane Carrez edited this page May 24, 2015 · 3 revisions
Clone this wiki locally

The package is composed of three separate components:

  • libmat is the shared library that instruments the memory allocation.
  • matl is a small launcher that helps instrument a program with libmat.
  • mat is the analysis tool.

libmat and matl are written in C and mat is written in Ada which requires the GNAT Ada compiler. By default the mat component is not built.

Building the libmat and matl launcher

If you only need libmat and matl, configure as follows:


If the C compiler supports TLS, you may enable the TLS support in libmat. The configure script does not detect this and you can activate it by adding the --enable-tls option to the configure script:

./configure --enable-tls

If you're using a cross compilation environment, you should indicate to the configure your target host. For example to build for a remote mips system, use:

./configure --host="mips-uclibc-linux" --target=mips-uclibc-linux

Once configured, build and install as follows:

make install

Building the MAT analysis tool

The mat analysis tool requires an Ada compiler as well as several components. On Ubuntu, you will need the following components that you may install as follows:

sudo apt-get install gnat gprbuild binutils-dev libiberty-dev libreadline6-dev

Then, you must configure, build and install with:

./configure --enable-mat --enable-ada-util --enable-ada-bfd
make install