Environment variables in the MATE container

This document lists and describes the environment variables defined and used by the various MATE Docker containers.

Variables that are not listed in this document may be defined for internal build and configuration purposes. These unlisted variables should not be relied upon.

MATE_BDIST_ROOT

Provenance: mate-dev or mate-dist

Container default: /mate/.out/bdist (dev) or /opt/mate (dist)

MATE_BDIST_ROOT provides an absolute reference to the MATE “distribution”; i.e. a hermetic collection of all libraries, executables, and resources needed to run MATE.

MATE_DEFAULT_MEMORY_LIMIT_GB

Provenance: mate-dev or mate-dist

Container default: 32

This variable sets the default memory limit for individual builds, in gibibytes. The memory limit can still be overridden on a per-build basis.

LLVM_WEDLOCK_INSTALL_DIR

Provenance: mate-dev or mate-dist

Container default: ${MATE_BDIST_ROOT}/llvm-wedlock

This is an organization variable that will be useful for setting LLVM_BIN and LLVM_DIR in the case that they ever change or need to be reset to use wedlock-specific tools/libraries.

This is the install path for all tools built in the llvm-wedlock repository.

Note: This directory does not necessarily include wedlock-related opt passes – they are located in LLVM_PASS_DIR.

LLVM_WEDLOCK_BIN

Provenance: mate-dev or mate-dist

Container default: None.

By default, MATE will discover a functional Wedlock build of the LLVM toolchain under ${MATE_BDIST_ROOT}/llvm-wedlock/bin. This variable can be used to override that default, specifying a separate Wedlock build of LLVM for testing or debugging purposes.

LLVM_DIR

Provenance: mate-dev or mate-dist

Container default: ${LLVM_WEDLOCK_INSTALL_DIR}/lib/cmake/llvm

The LLVM_DIR variable’s value will be a directory, under which CMake configuration for building LLVM passes will be present.

Clang_DIR

Provenance: mate-dev or mate-dist

Container default: ${LLVM_WEDLOCK_INSTALL_DIR}/lib/cmake/clang

The Clang_DIR variable’s value will be a directory, under which CMake configuration for building Clang analyses will be present.

PATH

Provenance: mate-dev or mate-dist

The PATH variable’s value will contain multiple additional paths. Container consumers should not rely on the presence of any particular path or upon path orderings other than specified below.

gclang and gclang++ should not be present on the PATH; they will be supplied under ${MATE_BIST_ROOT}/libexec. Similarly, the llvm-wedlock toolchain’s programs should not be present by default: any components that wish to use them should load the Wedlock LLVM bin path onto the PATH temporarily (or access them directly).

Furthermore, any specific versions of tools used/required by the tools manually installed in this Docker image will almost certainly take precedence over system-installed tools.