JMake

The Linux kernel is highly configurable, and thus, in principle, any line of code can be included or excluded from the compiled kernel based on configuration operations. A developer may not be familiar with the configuration options that trigger compilation of a particular code line, leading him to believe that a fix has been compile-checked when this is not the case. JMake is a mutation-based tool for selecting configurations that are likely to lead to sucessful compilation of a given file and for signaling changed lines that are not subjected to the compiler.

Download

git clone https://gitlab.inria.fr/lawall/jmake-release

JMake also requires that the script make.cross is in your path. Running JMake may cause this script to install cross compilers on your machine.

Documentation

Julia Lawall and Gilles Muller.
JMake: Dependable Compilation for Kernel Janitors.
DSN 2017 results

The simplest usage of JMake is to go to the directory of your Linux tree and run jmake on the commit you want to test. By default, this will create a temporary directory named /run/shm/gcctmp/linux0 in which it will copy your Linux tree and perform compilation experiments. Check that you have sufficient room and permission for /run/shm for this. An alternate temporary directory can be provided with the command-line argument --tmpdir. Other command line arguments are available with the --help argument.

JMake is a research prototype. The output may seem mysterious or verbose. The command line options other than the ones described above may not behave as expected. Questions and feedback are welcome.

Contact

Julia . Lawall @ inria . fr

Support

The development of JMake was supported in part by OSADL, as part of the SIL2LinuxMP project. The implementation of JMake was last updated in August 2021.