Diplomová práce

LLVM IR service for Fedora

Bc. Michal Toman, učo 324521
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.

Práce zkontrolována:
8. 1. 2013 12:01, prof. RNDr. Jan Strejček, Ph.D., učo 3366
Jazyk práce
angličtina angličtina
Termín obhajoby
8. 2. 2013
Práce byla úspěšně obhájena

Vedoucí

prof. RNDr. Jan Strejček, Ph.D., učo 3366
KTP FI MU

Oponent

Mgr. Jiří Slabý, Ph.D.
abs FI MU

Konzultant

Mgr. Karel Klíč
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.

Masarykova univerzita Fakulta informatiky
Studijní program
Aplikovaná informatika

Práce na příbuzné téma

Seznam prací, které mají shodná klíčová slova.

 
Název
Vložil
Vloženo
Práva
Archiv závěrečné práce Michal Toman FI N-AP AP, učo 324521 n9bfn/7
Kryštofová, H.
25. 4. 2012
  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.