<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Find ways of reducing --reproduce archive size"
href="https://bugs.llvm.org/show_bug.cgi?id=32764">32764</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Find ways of reducing --reproduce archive size
</td>
</tr>
<tr>
<th>Product</th>
<td>lld
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>enhancement
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>ELF
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>chisophugis@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>This isn't a huge deal, but it would be nice to have. I'm not sure how feasible
this is either. Just posting this so we have a place to dump ideas.
The size of --reproduce archives actually matters, as it is often the
difference between whether a user can conveniently attach a reproducer to a bug
report/mail or has to go find some other hosting location. In cases where the
archive would be GB's, it just becomes infeasible to post it somewhere (e.g.
libclang.so in <a class="bz_bug_link
bz_status_NEW "
title="NEW - LLD failed to link libclang.so during debug build"
href="show_bug.cgi?id=31748">bug 31748</a>)
I suspect that there are some relatively easy ways to dramatically reduce the
(compressed) archive size.
One key observations is that for most kinds of linker bugs, the linker does not
care very much about the actual contents of sections, even though the contents
of sections are typically most of the size of the --reproduce archive.
One possibility is that there might be some quick and simple
transmogrifications we can do to input files as we put them in the --reproduce
archive (this can be guarded under a flag `--reproduce-compressify` or similar)
For example, most strings (main exception is symbol names I think) could be
replaced with `aaaaaa...` and the contents of .text and data sections can also
mostly be replaced with whatever we want (one exception, if we care, are
locations modified by certain relocations that care about the content, such as
implicit addends and relaxations). Debug info can also probably be stubbed out.
The main question will be what is the right tradeoff of simplicity vs extra
compressibility (or if there even exists a good tradeoff).</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>