为什么不可能重新编译GLibc,关闭所有优化(即-O0)?
特别是在这样做时:
make CFLAGS='-O0 -w' CXXFLAGS='-O0 -w'我得到:
#error "glibc cannot be compiled without optimization"发布于 2015-05-07 00:08:41
当我谷歌错误,第一个结果诉说我的确切原因。
“在动态加载程序(
_dl_start)的早期启动中,在重新定位PLT之前,您不能进行函数调用。您必须内联在早期启动期间使用的函数,或者调用编译器内置程序(__builtin_*)。 如果没有优化,GCC将不会内联函数。动态加载程序的早期启动将通过未重新定位的PLT和崩溃进行函数调用。“--卡洛斯·奥多内尔
发布于 2015-05-07 00:04:39
基本上:"glibc就是巫毒!“这个“所有图书馆的图书馆”在任何系统中都有一个非常特殊的位置,因为实际上(?)整个系统中的其他一切都依赖于它。
因此,如果“外面的人”花时间阻止您编译这个库,“没有优化”,我诚恳地邀请您相信他/她的话。“一定有一个很好的理由。”
https://stackoverflow.com/questions/30089652
复制相似问题