Add the lld linker report from Ed Maste <emaste@freebsd.org>.
This commit is contained in:
parent
1c513283c4
commit
d5208c2ded
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48611
1 changed files with 89 additions and 1 deletions
|
@ -1903,7 +1903,7 @@
|
|||
community to consider.</p>
|
||||
|
||||
<p>Core is also coordinating with the committee headed by Anne
|
||||
Dickinson who are reviewing the Code of Conduct. A corpus of
|
||||
Dickison who are reviewing the Code of Conduct. A corpus of
|
||||
case studies is being assembled, which will be re-examined to
|
||||
see what impact changes to the Code of Conduct would have
|
||||
had.</p>
|
||||
|
@ -1925,4 +1925,92 @@
|
|||
on lld and other parts of the toolchain.</p>
|
||||
</body>
|
||||
</project>
|
||||
|
||||
<project cat='bin'>
|
||||
<title>Using <tt>lld</tt>, the LLVM Linker, to Link
|
||||
FreeBSD</title>
|
||||
|
||||
<contact>
|
||||
<person>
|
||||
<name>
|
||||
<given>Ed</given>
|
||||
<common>Maste</common>
|
||||
</name>
|
||||
<email>emaste@FreeBSD.org</email>
|
||||
</person>
|
||||
|
||||
<person>
|
||||
<name>
|
||||
<given>Davide</given>
|
||||
<common>Italiano</common>
|
||||
</name>
|
||||
<email>davide@FreeBSD.org</email>
|
||||
</person>
|
||||
</contact>
|
||||
|
||||
<links>
|
||||
<url href="https://wiki.freebsd.org/LLD">&os; lld wiki page</url>
|
||||
<url href="http://lists.llvm.org/pipermail/llvm-dev/2016-March/096449.html">Status report on linking FreeBSD/amd64 with lld</url>
|
||||
</links>
|
||||
|
||||
<body>
|
||||
<p><tt>lld</tt> is the linker in the LLVM family of projects.
|
||||
It is intended to be a high-performance linker and supports
|
||||
the ELF, COFF and Mach-O object formats. Where possible,
|
||||
<tt>lld</tt> maintains command-line and functional
|
||||
compatibility with existing linkers (GNU BFD <tt>ld</tt> and
|
||||
<tt>gold</tt>), but <tt>lld</tt>'s authors are not constrained
|
||||
by strict compatability where it would hamper performance or
|
||||
desired functionality.</p>
|
||||
|
||||
<p>The upstream <tt>lld</tt> project made significant progress
|
||||
in adding new functionality to <tt>lld</tt>'s ELF support over
|
||||
the first quarter of 2016. The <tt>lld</tt> ELF linker is
|
||||
capable of self-hosting on FreeBSD/amd64 and is capable of
|
||||
linking many test applications.</p>
|
||||
|
||||
<p><tt>lld</tt> currently lacks comprehensive linker script
|
||||
expression evaluation support, and therefore cannot yet be
|
||||
used to link the FreeBSD kernel. It also lacks versioned
|
||||
symbol support, and does not implement some options used in
|
||||
the FreeBSD boot loader components.</p>
|
||||
|
||||
<p>I've been running experimental world builds of FreeBSD/amd64
|
||||
with <tt>lld</tt> installed in place of <tt>ld.bfd</tt> as the
|
||||
linker. With workarounds for the current gaps in
|
||||
functionality (using the <tt>WITHOUT_SYMVER</tt> option to
|
||||
disable symbol versioning use, and linking the loader
|
||||
components with GNU <tt>ld</tt>), <tt>lld</tt> is now able to
|
||||
link a working FreeBSD system.</p>
|
||||
</body>
|
||||
|
||||
<sponsor>The &os; Foundation</sponsor>
|
||||
|
||||
<help>
|
||||
<task>
|
||||
<p>Enable the <tt>lld</tt> option by default in the llvm-devel
|
||||
(and later llvm) ports for testing.</p>
|
||||
</task>
|
||||
|
||||
<task>
|
||||
<p>Develop symbol version support and linker script expression
|
||||
improvements in the upstream lld project.</p>
|
||||
</task>
|
||||
|
||||
<task>
|
||||
<p>Import a newer lld snapshot into the vendor area, add build
|
||||
infrastructure and connect it to the world build, installed
|
||||
as <tt>ld.lld</tt>.</p>
|
||||
</task>
|
||||
|
||||
<task>
|
||||
<p>Request a ports exp-run with <tt>/usr/bin/ld</tt> a symlink
|
||||
to <tt>ld.lld</tt>.</p>
|
||||
</task>
|
||||
|
||||
<task>
|
||||
<p>Extensive testing.</p>
|
||||
</task>
|
||||
</help>
|
||||
</project>
|
||||
</report>
|
||||
|
|
Loading…
Reference in a new issue