Add DWARF support in yaml2obj GSOC 2020 project
diff --git a/OpenProjects.html b/OpenProjects.html
index 1287a93..8db1c77 100755
--- a/OpenProjects.html
+++ b/OpenProjects.html
@@ -16,6 +16,7 @@
<li><a href="#llvm_par">Improve parallelism-aware analyses and optimizations</a></li>
<li><a href="#llvm_dbg_invariant">Make LLVM passes debug info invariant</a></li>
<li><a href="#llvm_mergesim">Improve MergeFunctions to incorporate MergeSimilarFunction patches and ThinLTO Support</a></li>
+ <li><a href="#llvm_dwarf_yaml2obj">Add DWARF support to yaml2obj</a></li>
</ul>
<li><a href="http://clang.llvm.org/"><b>Clang</b></a>
<ul>
@@ -407,6 +408,45 @@
</div>
<!-- *********************************************************************** -->
+<div class="www_subsubsection">
+ <a name="llvm_dwarf_yaml2obj">Add DWARF support to yaml2obj</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+ <p><b>Description of the project:</b>
+ LLVM provides a tool called yaml2obj which coverts a YAML document into an
+ object file, for various different file formats such as ELF, COFF and
+ Mach-O, along with obj2yaml which does the inverse. The tool is commonly
+ used to test parts of LLVM, as YAML is often easier to use to describe an
+ object file than raw assembly and more maintainable than a pre-built binary.
+ DWARF is a debugging file format commonly used by LLVM. Many of the tests
+ for LLVM’s DWARF emission are written in assembly, but it would be nicer to
+ write them in YAML. However, yaml2obj does not properly support emission of
+ DWARF sections. This project is to add functionality to yaml2obj to make
+ writing test inputs for DWARF tests simpler, particularly for ELF objects.
+ </p>
+
+ <p><b>Preparation resources:</b>
+ Reading up on the DWARF file format will be useful, in particular the
+ standards available at http://dwarfstd.org/Download.php. Also, familiarising
+ yourself with the basics of the ELF file format, as described here
+ https://www.sco.com/developers/gabi/latest/contents.html, may be beneficial.
+ </p>
+ <p><b>Expected results:</b>
+ The ability to use yaml2obj to generate DWARF sections for object files.
+ Particularly important is ensuring the input YAML can be more easily
+ understood than the equivalent assembly.
+ </p>
+
+ <p><b>Confirmed Mentors:</b> James Henderson</p>
+
+ <p><b>Desirable skills:</b>
+ Intermediate knowledge of C++.
+ </p>
+</div>
+
+<!-- *********************************************************************** -->
<div class="www_subsection">
<a>MLIR</a>
</div>