Bintail: Binary Level Tailoring of ELF Executables via Feature Selection and Variant Elimination

Function Multiverse is a new compiler-assisted approach to realize dynamic variability efficiently. It is designed to combine the flexibility and simplicity of control flow branches with the performance of binary patching. Therefore, Multiverse provides a compiler-assisted hybrid approach between dynamic and static variability. Configuration possibilities are detected during compilation and used as a basis to compile specialized code manifestations which are put in place at run-time. It has been shown that Multiverse can be successfully applied in a real-world software project like the Linux Kernel.

Multiverse tries to address the growing need for tailored and self-adapting software systems. In the current approach variability is resolved during the runtime of a program.

The goal of this thesis is to investigate the possibility to perform the variability resolution in an extra step after compilation and linking but before the runtime of the program. The expected benefits compared to pure static variability are the increased compiler coverage and the ability to perform configuration changes without the need to recompile.

Relevant Publications

DSPL Workshop
Function Multiverses for Dynamic Variability
Valentin Rothberg, Christian Dietrich, Alexander Graf, Daniel LohmannFoundations and Applications of Self* Systems2016.
PDF [BibTex]