关于这一事实,现在是否有任何合理的方法可以在Linux上创建功能齐全的静态构建,或者静态链接在Linux上完全无效?
我不知道在哪里可以找到历史参考,但是是的,静态链接在GNU系统上已失效。(我相信它在从libc4
/ libc5过渡到libc6 / glibc 2.x的过程中死了。)
鉴于以下原因,该功能被认为无用:
安全漏洞。静态链接的应用程序甚至不支持libc的升级。如果应用程序在包含lib漏洞的系统上链接,则它将在静态链接的可执行文件中永久保留。
代码膨胀。如果在同一系统上运行许多静态链接的应用程序,则标准库将不会被重用,因为每个应用程序都包含其自己的所有内容副本。(尝试
du -sh /usr/lib
了解问题的严重程度。)
尝试挖掘10-15年前的LKML和glibc邮件列表档案。我很确定很早以前就已经看到了与LKML相关的内容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)