<story><title>C Runtime Overhead</title><url>http://ryanhileman.info/posts/lib43</url></story><parent_chain></parent_chain><comment><author>justincormack</author><text>Static linking to Musl libc is pretty minimal, not sure you really need assembly&lt;p&gt;strace -tt &amp;#x2F;tmp&amp;#x2F;test&lt;p&gt;15:38:33.245549 execve(&amp;quot;&amp;#x2F;tmp&amp;#x2F;test&amp;quot;, [&amp;quot;&amp;#x2F;tmp&amp;#x2F;test&amp;quot;], [&amp;#x2F;* 16 vars *&amp;#x2F;]) = 0&lt;p&gt;15:38:33.246436 arch_prctl(ARCH_SET_FS, 0x601070) = 0&lt;p&gt;15:38:33.246617 set_tid_address(0x6010a0) = 17227&lt;p&gt;15:38:33.246875 exit_group(0)           = ?&lt;p&gt;15:38:33.247060 +++ exited with 0 +++</text></comment>
<story><title>C Runtime Overhead</title><url>http://ryanhileman.info/posts/lib43</url></story><parent_chain></parent_chain><comment><author>eloff</author><text>It&amp;#x27;s interesting to note that Go doesn&amp;#x27;t depend on libc. However, I rather doubt the Go runtime bootstraps any faster than libc, so it probably wouldn&amp;#x27;t help here. One consequence is that Linux and libc are tightly coupled and some of the &amp;quot;syscall&amp;quot; behavior you depend on is actually implemented as a wrapper in libc. This has caused some behavioral differences between Go and C that have surprised the language developers.</text></comment>