Závěrečná práce: Bc. Michal Toman, učo 324521: LLVM IR service for Fedora
Diplomová práce
LLVM IR service for Fedora
Anotace
V záujme zlepšenia celkovej kvality operačného systému Fedora sa vývojári rozhodli zapojiť statickú analýzu. Najvhodnejšie nástroje pracujú na základe LLVM IR kódu, ktorý sa implicitne nevytvára, kvôli použitiu prekladača GCC. Táto práca popisuje súbor nástrojov, ktoré sú schopné použiť pri vytváraní balíkov kompilátor Clang, a za jeho pomoci vygenerovať IR kód pre aplikácie a knižnice distribúcie Fedora.
Abstract
In order to improve the overall quality of Fedora operating system, the developers decided to incorporate static analysis. The most suitable tools are working on top of LLVM IR code, which is not generated by default because of using GCC compiler. This thesis describes the toolchain able to rebuild Fedora packages with Clang compiler and generate IR code for all of its applications and libraries.
Zadání práce
LLVM Intermediate Representation (IR) is a form used to represent code in a compiler. It is designed to support analysis and transformations usually done in the optimization phase of a compiler. LLVM and its IR provide a good platform for implementation of numerous specialized code analysis tools, such as program crash analysis with coredumps or backtraces, crash security analysis, and SELinux rule analysis.
Goal of the thesis is to implement a service providing an IR representation of C/C++ binaries in Fedora operating system. To ease the implementation of analyzers, the service must provide the IR binaries with all dynamic libraries statically linked. The binaries must contain metadata about code origin and DWARF debugging information. The only way how to run external code from the binary remain system calls, exec, and dlopen.
To provide as many C/C++ binaries as possible in the IR representation, we start by writing an RPM spec file parser, which allow us to alter common build scripts and compilation invocations in RPM spec files. The altered build must use LLVM Clang compiler to generate unoptimized IR files.
8. 1. 2013 12:01, prof. RNDr. Jan Strejček, Ph.D., učo 3366
- Zadáno/změněno 11. 2. 2013 10:44, Eva Drštková
- Záznam založen 25. 4. 2012 10:20, Helena Kryštofová
- Zveřejnit od 7. 1. 2013 09:20, Eva Drštková
- Práce převzata 7. 1. 2013 09:20, Eva Drštková
Vedoucí
Konzultant
abs FI MU
Literatura
- AHO, Alfred V.; Ravi SETHI a Jeffrey D. ULLMAN. Compilers, principles, techniques, and tools. Reading: Addison-Wesley Publishing Company, 1987, x, 796 s. ISBN 0-201-10088-6.
- BROWN, Amy a Greg WILSON. Chapter 11. LLVM. In The Architecture of Open Source Applications. Lulu, 2011, s. 155-170. ISBN 978-1-257-63801-7.
Práce na příbuzné téma
Seznam prací, které mají shodná klíčová slova.
-
Enhancing DiffKemp to Support Generic Projects
Mgr. Tomáš Glozar, učo 492787 -
Slicing of Parallel Programs
Mgr. Lukáš Tomovič -
C++ support for Stanse
Mgr. Martin Vejnár, učo 172430 -
A Framework for Abstract Interpretation in the GraalVM Native Image Java Compiler
Bc. Samuel Malec -
Instrumentation of LLVM IR
Mgr. Martina Vitovská -
Slicing of LLVM Bitcode
RNDr. Marek Chalupa, Ph.D. -
Improving out-of-bound access checking in Symbiotic
Mgr. Anna Řechtáčková -
A Common Framework for Inquiries about Program Properties
Mgr. Tomáš Brukner




