Glibc 2.36 Dropping DT_HASH Has Been Breaking Easy Anti Cheat Games With Steam Play


Those using streaming Linux distros that quickly adapt to new toolchain updates are finding that Easy Anti Cheat (EAC) enabled games break when running on the Glibc 2.36 recently. published. The break comes from the removal of the DT_HASH section in the GNU C library, but EAC is one of the few software that still expects this section rather than DT_GNU_HASH.

Glibc 2.36 brought many changes with its release in early August. Unfortunately, his removal of the unconditional parameter “–hash-style=both” to ensure that the DT_HASH and GNU_DT_HASH sections are present in the GNU C library shared object ended up breaking Easy Anti Cheat and other software selected. Once Arch Linux users and others started upgrading to Glibc 2.36, issues were quickly noticed by Linux gamers with Steam Play and titles using this anti-cheat protection from Epic so far. Games.

DT_GNU_HASH is better structured than DT_HASH though DT_HASH for ELF object hash tables for runtime symbol resolution. DT_GNU_HASH has been around for a decade and a half and can lead to much faster link and load times. Most Linux distributions and open source software have happily used DT_GNU_HASH for years.

A Proton issue from earlier this month has tracked how Glibc 2.36 breaks EAC-required games on Linux.

With Glibc 2.36 DT_HASH is no longer defined because they removed “–hash-style=both” because the DT_GNU_HASH is superior, most systems should just use it, and eliminating the DT_HASH section allows save about 1% or 16 KB of space for the Glibc Shared Object. But it turns out that Epic Games still relies on DT_HASH and this anti-cheat module will fail to load games protected with Glibc 2.36.

This is not exclusively an EAC issue, but some other software such as libstrangle also breaks on Glibc 2.36 due to this change. There is an upstream Glibc bug report on the issue, but no firm action yet, with upstream developers hesitant to revert the change.

The issue for the past week and a half has been discussed in depth in Valve’s Proton issue tracker. For those on Arch Linux where the issue was first reported due to its continuous updates, glibc 2.36-2 is currently testing that with this distribution package the previous hash style change in GNU Glibc is canceled, so both styles are now built. Linux gamers have already tested the next Arch Linux package update and confirmed that EAC-compatible games work fine.

We will now see what happens with the upstream GNU C library developers on this or if they wait and throw the ball in Epic Games’ court to move from DT_HASH dependency to DT_GNU_HASH which has been widely used on Linux systems for over a decade.

Leave a Comment