Build options

Available options

MALT supports several build options to tune MALT at build time. Those options are listed here :

Table of metrics

Metric

Default

Short description

ENABLE_TESTS

no

Enable build of internal tests.

ENABLE_GCC_COVERAGE

no

Enable coverage compile flags to be enabled.

ENABLE_LINK_OPTIM

yes

Enable link optimisation (LTO & -fvisibility-hidden).

ENABLE_IPO

yes

Allow usage of IPO specfic optimization when ENABLE_LINK_OPTIM is enabled.

ENABLE_PYTHON

yes

Enable compiling with the python support.

ENABLE_JEMALLOC

yes

Enable building internal JeMalloc.

ENABLE_CACHING

yes

Enable some internal caches.

ENABLE_PREFER_EMBED

no

Prefer using the embeded dependencies that using system one by default.

ENABLE_CODE_TIMING

no

Enable some tricks to quickly check timings of hostspots of MALT internal code.

ENABLE_CODE_LEAK

no

Enable internal analysis of memory leak.

PORTABILITY_SPINLOCK

PTHREAD

Select spinlock implementation to use.

PORTABILITY_MUTEX

PTHREAD

Select mutex implementation to use.

PORTABILITY_OS

UNIX

Select OS implementation to use.

PORTABILITY_COMPILER

GNU

Select compiler support to use.

PORTABILITY_CLOCK

RDTSC

Clock to be used to represent time in MALT.

PORTABILITY_PYTHON

LAZY

Select the instrumentation mode for python.

WEBVIEW_SERVER

AUTO

Select the webview server to use.

General build options

Option ENABLE_TESTS

Enable build of internal unit tests.

Default: no.

cmake .. -DENABLE_TESTS=no
cmake .. -DENABLE_TESTS=yes
../configure --enable-tests
../configure --disable-tests

Option ENABLE_GCC_COVERAGE

Enable coverage compile flags to be enabled.

Default: no.

cmake .. -DENABLE_GCC_COVERAGE=no
cmake .. -DENABLE_GCC_COVERAGE=yes
../configure --enable-gcc-coverage
../configure --disable-gcc-coverage

Option ENABLE_PREFER_EMBED

Prefer using the embeded dependencies that using system one by default.

Default: no.

cmake .. -DENABLE_PREFER_EMBED=no
cmake .. -DENABLE_PREFER_EMBED=yes
../configure --enable-prefer-embed
../configure --disable-prefer-embed

Optimisation options

Option ENABLE_IPO

Allow usage of IPO specfic optimization when ENABLE_LINK_OPTIM is enabled.

Default: yes.

cmake .. -DENABLE_IPO=no
cmake .. -DENABLE_IPO=yes
../configure --enable-ipo
../configure --disable-ipo

Feature options

Option ENABLE_PYTHON

Enable compiling with the python support. In order to be enabled, it requires the presence the the Python C header files.

Default: yes.

cmake .. -DENABLE_PYTHON=no
cmake .. -DENABLE_PYTHON=yes
../configure --enable-python
../configure --disable-python

Option ENABLE_JEMALLOC

Enable building internal JeMalloc.

It permits to boost MALT and reduce its internal memory overhead by being more efficient than the lightweight fallback internal memory allocator.

Default: yes.

cmake .. -DENABLE_JEMALLOC=no
cmake .. -DENABLE_JEMALLOC=yes
../configure --enable-jemalloc
../configure --disable-jemalloc

Option ENABLE_CACHING

Enable some internal caches to boost the performance of MALT and reduce its overhead.

You can get some statistics about the number of miss / hits by using the ENABLE_CODE_TIMING option.

Default: yes.

cmake .. -DENABLE_CACHING=no
cmake .. -DENABLE_CACHING=yes
../configure --enable-caching
../configure --disable-caching

Developer options

Option ENABLE_CODE_TIMING

Enable some tricks to quickly check timings of hostspots of MALT internal code. The metrics will be printed at the exit of MALT in the terminal.

Default: no

cmake .. -DENABLE_CODE_TIMING=no
cmake .. -DENABLE_CODE_TIMING=yes

Option ENABLE_CODE_LEAK

Enable some internal analysis of the MALT core to detect internal memory leaks in the tool itself.

Default: no

cmake .. -DENABLE_CODE_LEAK=no
cmake .. -DENABLE_CODE_LEAK=yes

Portability options

Those option are there to ease the portability of MALT and to adapt it to the system in use.

Option PORTABILITY_SPINLOCK

Select spinlock implementation to use. Currently support : PTHREAD, DUMMY.

Default: PTHREAD

cmake .. -DPORTABILITY_SPINLOCK=PTHREAD
cmake .. -DPORTABILITY_SPINLOCK=DUMMY

Option PORTABILITY_MUTEX

Select mutex implementation to use. Currently support : PTHREAD, DUMMY.

Default: PTHREAD

cmake .. -DPORTABILITY_MUTEX=PTHREAD
cmake .. -DPORTABILITY_MUTEX=DUMMY

Option PORTABILITY_OS

Select OS implementation to use. Currently support : UNIX.

Default: UNIX

cmake .. -DPORTABILITY_OS=UNIX

Option PORTABILITY_COMPILER

Select compiler support to use. Currently support : GNU (also valid intel compiler toolchain).

Default: GNU

cmake .. -DPORTABILITY_COMPILER=GNU

Option PORTABILITY_CLOCK

Clock to be used to represent time in MALT.

Default: RDTSC

cmake .. -DPORTABILITY_CLOCK=RDTSC

Option PORTABILITY_PYTHON

elect the instrumentation mode for python : LAZY, NATIVE.

Default: LAZY

cmake .. -DPORTABILITY_PYTHON=LAZY
cmake .. -DPORTABILITY_PYTHON=NATIVE

Option WEBVIEW_SERVER

Select the webview server implementation to use : AUTO, CPP, NODEJS, RUST, OFF.

Default: AUTO

cmake .. -DWEBVIEW_SERVER=AUTO
cmake .. -DWEBVIEW_SERVER=CPP
cmake .. -DWEBVIEW_SERVER=NODEJS
cmake .. -DWEBVIEW_SERVER=OFF
# experimental, not yet production ready
cmake .. -DWEBVIEW_SERVER=RUST