<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nix on dominik.suess.wtf</title><link>https://dominik.suess.wtf/filetags/nix/</link><description>Recent content in nix on dominik.suess.wtf</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 17 Aug 2026 06:49:00 +0200</lastBuildDate><atom:link href="https://dominik.suess.wtf/filetags/nix/index.xml" rel="self" type="application/rss+xml"/><item><title>Nix build linking issues</title><link>https://dominik.suess.wtf/notes/20260812t094254/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://dominik.suess.wtf/notes/20260812t094254/</guid><description>&lt;p&gt;
I recently tried to build &lt;a href="https://github.com/intel/xpumanager"&gt;https://github.com/intel/xpumanager&lt;/a&gt; but it consistently failed with linking errors.&lt;/p&gt;
&lt;p&gt;
When debugging, I tried replacing the thin archives (e.g. &lt;code&gt;utility/table/libtable.a&lt;/code&gt;) with the specific file they resolve to (e.g. &lt;code&gt;utility/table/libtable.a.p/libtable.o&lt;/code&gt;). This fixed the issue but I couldn&amp;#39;t figure out &lt;em&gt;why&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;
Eventually, I stumbled upon the &lt;a href="https://gcc.gnu.org/onlinedocs/gccint/LTO-Overview.html"&gt;GCC LTO Docs&lt;/a&gt; which state that:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By default, object files generated with LTO support contain only GIMPLE bytecode. Such objects are called “slim”, and they &lt;strong&gt;require that tools like ar and nm understand symbol tables of LTO sections&lt;/strong&gt;. For most targets these tools have been extended to use the plugin infrastructure, so GCC can support “slim” objects consisting of the intermediate code alone. &lt;/p&gt;</description></item></channel></rss>