<story><title>New ELF Linker from the LLVM Project</title><url>http://blog.llvm.org/2015/11/new-elf-linker-from-llvm-project.html?m=1</url></story><parent_chain></parent_chain><comment><author>jamesdutc</author><text>Linkers are very much like hyperdrives. They&amp;#x27;re one of those ancient but ubiquitous technologies; no one knows how they work, but no one cares.&lt;p&gt;The basics of dynamic linking is actually pretty simple, but it&amp;#x27;s tricky to find reference materials outside of reading the source code itself. A modern, mature dynamic linker supports a lot of very interesting and very powerful features, from LD_PRELOAD to LD_AUDIT to `dlmopen` (linker namespaces.)&lt;p&gt;I wonder whether this new linker plans to support all of these advanced features.&lt;p&gt;I&amp;#x27;ve spent some time with these features to accomplish tasks such as:&lt;p&gt;- embedding Python interpreters within themselves using `dlmopen` (linker namespaces): &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;cf808ec7d8e1c36e01cc&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;cf808ec7d8e1c36e01cc&lt;/a&gt; &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;423d0d0ccba771cf910f&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;423d0d0ccba771cf910f&lt;/a&gt; &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;eba9b2f7980f400f6287&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;eba9b2f7980f400f6287&lt;/a&gt; &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;2866d969d5e9209d501a&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;2866d969d5e9209d501a&lt;/a&gt;&lt;p&gt;- writing LD_PRELOAD-like modules in Python:
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;6500c804b2f0141c9757&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;gist.github.com&amp;#x2F;dutc&amp;#x2F;6500c804b2f0141c9757&lt;/a&gt;&lt;p&gt;I think the LD_AUDIT approach taken by the latter project could also lead to re-implementing a dynamic linker in Python itself via the system&amp;#x27;s linker&amp;#x27;s auditing mechanism. This might be a very interesting educational exercise!</text></comment>
<story><title>New ELF Linker from the LLVM Project</title><url>http://blog.llvm.org/2015/11/new-elf-linker-from-llvm-project.html?m=1</url></story><parent_chain></parent_chain><comment><author>evmar</author><text>It&amp;#x27;s curious that linking speed can be improved by so much when gold was itself written for speed only 7 years ago.  I wonder, what&amp;#x27;s the trick?</text></comment>