Minimal setup to analyze files in Linux

call the script as analyze.sh WORKINGDIR COMMITID ARCH FILE in which the COMMITID refers to hash of the commit to be analyzed, ARCH to the Linux architecture, such as x86, FILE to the file (without the .c extension), and WORKINGDIR is a directory in which the kernel will be checked out and generated files are generated.

In /data the repository contains (mostly) static files that are manually created and should not change much by commits in the data directory. This includes system headers as well as a few workarounds and the approximated feature model for the parser.

The script can be called multiple times on the same working directory.

The working directory will have the following structure: /linux a bare git repository /COMMITID/ARCH/gen/<various generated files, such as feature model> /COMMITID/ARCH/linux/<checked out version of the kernel and working files and results>

Compared to TypeChef-LinuxAnalysis, the infrastructure is rewritten in Scala to avoid the mess of various shell scripts. Various debug functionality has not been migrated yet.