The VAMOS team is pleased to announce the release of the undertaker tool version 1.3. The tool is a result of the VAMOS[1] research project.

Please visit our project site at:

What is new in undertaker 1.3

  • A number of bugfixes in the Kconfig constraint extractor rsf2model, which results in more accurate results.
  • New python utility: golem, which is able to:
    • List all source files that the current configuration builds
    • expand a partial configuration (sometimes called "Kconfig fragment")
    • can greatly enhance existing analyses by extracting constraints from Linux makefiles.

What is undertaker?

The undertaker is a tool for static code analysis for code with C preprocessor directives, which can be used in various modes. The most prominent one checks every single preprocessor block within the file whether it can be selected or deselected, which in many cases is a great asset for code maintenance. Some preprocessor blocks are only seemingly conditional. In many cases, it turns out that additional constraints from the project's configuration model causes such conditional blocks to be in fact unconditionally selected or unselected. We call such block "dead" and "undead" conditional blocks.

Undertaker provides tools to extract the configuration model from the Linux configuration tooling Kconfig and to perform this check on whole source trees.

What undertaker is not?

It isn't an automatic patch generator. Because of peculiarities in the Kconfig semantics, (ignored) coding guidelines and simply engineering issues, the reports might contain false negatives. Note that our philosophy is that we prefer false negatives over false positives, i.e., we prefer to miss reports than reports that are no issue at all.

What else can i do with undertaker?

You can extract boolean formulas (with or without model) for a given line of sourcecode in a file or for a given symbol. There is also an integration for emacs for interactive browsing of block and symbol preconditions. Additional uses are currently under development.


Last modified 8 years ago Last modified on 05/08/12 14:03:23
Note: See TracWiki for help on using the wiki.