glibc 2.36 带来了很多变化8月初发布。不幸的是,它放弃了无条件设置“–hash-style=both”以确保 gnu c 库共享对象中同时存在 dt_hash 和 gnu_dt_hash 部分,这最终破坏了 easy anti cheat 和其他选择软件。一旦 arch linux 用户和其他人开始转向 glibc 2.36,使用 steam play 的 linux 游戏玩家以及迄今为止使用 epic games 的这种反作弊保护的游戏很快就发现了问题。
dt_gnu_hash 比 dt_hash 结构更好,尽管 dt_hash 用于 elf 对象哈希表以进行运行时符号解析。dt_gnu_hash 已经存在了 15 年,它可以带来更快的链接和加载时间。大多数 linux 发行版和开源软件多年来一直在愉快地使用 dt_gnu_hash。
自本月初以来,proton 的一个问题一直在跟踪 glibc 2.36 如何破坏 linux 上需要 eac 的游戏。
在 glibc 2.36 中,dt_hash 不再设置,因为它们删除了“–hash-style=both”,因为 dt_gnu_hash 更优越,大多数系统应该只是使用它,并且消除 dt_hash 部分可以节省大约 1% 或 16kb 的空间glibc 共享对象。但事实证明,epic games 仍然依赖 dt_hash,并且这个反作弊模块将无法加载受 glibc 2.36 保护的游戏。
这不仅是 eac 问题,而且由于此更改,一些其他软件(例如 libstrangle)现在也在 glibc 2.36 上中断。上游有关于该问题的 glibc 错误报告,但尚未采取任何坚定的行动,上游开发人员对恢复更改犹豫不决。
过去一周半的问题已在内部进行了彻底讨论valve 的 proton 问题跟踪器。对于那些在 arch linux 上由于其滚动发布更新而首次报告问题的用户, 2.36-2 目前正在测试该分发包是否恢复了 gnu glibc 中早期的哈希样式更改,因此现在构建了这两种样式。linux 游戏玩家已经测试了即将推出的 arch linux 软件包更新,并确认支持 eac 的游戏正常运行。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/yun179947.html