需要GLibc优化

时间:2015-05-06 23:56:23

标签: gcc glibc libc

为什么不能重新编译GLibc关闭所有优化(即-O0)?

特别是这样做:

 #error "glibc cannot be compiled without optimization"

我明白了:

messageList = Regex.Split(content, @"(?<=\r\n)(?=TXT)");

2 个答案:

答案 0 :(得分:6)

当我谷歌错误时,第一个结果tells正是为什么。

  

“在动态加载器的早期启动(_dl_start)之前   PLT的重定位,你不能进行函数调用。你必须内联   您将在早期启动时使用的函数,或调用编译器   builtins(__builtin_*)。

     

如果未启用优化,GCC将不会内联函数。早期   启动动态加载程序将通过一个函数调用   未定位的PLT和崩溃。“ - Carlos O'Donell

答案 1 :(得分:1)

基本上:&#34; glibc voodoo!&#34;所有图书馆的图书馆#34;在任何系统中都有非常的特殊位置,因为在整个系统中虚拟(?)其他所有都依赖于它。

因此,如果&#34;有人在那里&#34;花时间阻止你编译这个库&#34;没有优化,&#34;我诚挚地邀请你接受他/她的话。 &#34; 必须是一个[非常好]的理由。&#34;