【问题标题】:GLibc optimizations required需要 GLibc 优化
【发布时间】:2015-07-17 08:27:13
【问题描述】:

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

尤其是这样做:

make CFLAGS='-O0 -w' CXXFLAGS='-O0 -w'

我明白了:

 #error "glibc cannot be compiled without optimization"

【问题讨论】:

  • 找到存储库,找到消息的来源,找到添加它的提交,然后阅读提交消息?

标签: gcc glibc libc


【解决方案1】:

基本上:“glibc巫毒!”这个“所有库的库”在任何系统中都有一个非常特殊的位置,因为虚拟(?)整个系统中的其他一切都依赖于它。

因此,如果“有人”花时间阻止你“不优化”地编译这个库,我诚挚地邀请你相信他/她的话。 “这必须有一个[非常好的]理由。”

【讨论】:

    【解决方案2】:

    当我用谷歌搜索错误时,第一个结果tells我就是为什么。

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

    如果没有启用优化,GCC 将不会内联函数。早期 动态加载器的启动将通过 未重新定位的 PLT 和崩溃。”——Carlos O'Donell

    【讨论】:

    • 为什么不直接添加内联选项(如 -finline-functions 和 -finline-small-functions)并关闭其他优化?我试过了,还是不行。
    • @badnack:我不知道,我不是设置这个限制的人......我只是一个信使
    • 这个stackoverflow问题现在的第一个结果。出于这个和其他原因,您可能不想被动攻击谷歌搜索。
    猜你喜欢
    • 2013-12-30
    • 1970-01-01
    • 2017-04-02
    • 2014-02-15
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多