{"id":44896,"date":"2022-08-14T08:10:50","date_gmt":"2022-08-14T08:10:50","guid":{"rendered":"https:\/\/harchi90.com\/glibc-2-36-dropping-dt_hash-has-been-breaking-easy-anti-cheat-games-with-steam-play\/"},"modified":"2022-08-14T08:10:50","modified_gmt":"2022-08-14T08:10:50","slug":"glibc-2-36-dropping-dt_hash-has-been-breaking-easy-anti-cheat-games-with-steam-play","status":"publish","type":"post","link":"https:\/\/harchi90.com\/glibc-2-36-dropping-dt_hash-has-been-breaking-easy-anti-cheat-games-with-steam-play\/","title":{"rendered":"Glibc 2.36 Dropping DT_HASH Has Been Breaking Easy Anti Cheat Games With Steam Play"},"content":{"rendered":"
\n
<\/div>\n

Those on rolling-release Linux distributions that are quick to adapt to new toolchain updates are finding Easy Anti Cheat (EAC) enabled games breaking when running on the recently released Glibc 2.36. The breakage stems from the DT_HASH section being dropped in GNU C Library but EAC being among the few software still expecting that section rather than DT_GNU_HASH.<\/p>\n

Glibc 2.36 brought many changes with its release at the beginning of August. Unfortunately, its dropping of unconditionally setting “–hash-style=both” to ensure both DT_HASH and GNU_DT_HASH sections are present in the GNU C Library shared object ended up breaking Easy Anti Cheat and other select software. Once Arch Linux users and others began moving to Glibc 2.36, problems were quickly noticed by Linux gamers with Steam Play and the titles so far using this anti-cheat protection from Epic Games.<\/p>\n

DT_GNU_HASH is better structured than DT_HASH although DT_HASH for ELF object hash tables for run-time symbol resolution. DT_GNU_HASH has been around for a decade and a half and can lead to much faster linking and loading times. Most Linux distributions and open-source software have been happily using DT_GNU_HASH for years.<\/p>\n


A Proton issue since earlier this month has been tracking how Glibc 2.36 breaks EAC-required games on Linux.<\/em><\/p>\n

With Glibc 2.36, DT_HASH no longer gets set since they dropped “–hash-style=both” since the DT_GNU_HASH is superior, most systems should just be using that, and eliminating the DT_HASH section saves about 1% or 16kB 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 protected games with Glibc 2.36.<\/p>\n

This isn’t exclusively an EAC problem but some other software such as libstrangle also now break on Glibc 2.36 due to this change. There is an upstream Glibc bug report over the issue but no firm action yet with upstream developers being hesitant on reverting the change.<\/p>\n

The issue over the past week and a half has been discussed thoroughly within Valve’s Proton issue tracker. For those on Arch Linux where the problem was first reported due to its rolling release updates, glibc 2.36-2 is currently in testing that with that distribution package reverts the earlier hash-style change in GNU Glibc so both styles are now built. Linux gamers have already tested that forthcoming Arch Linux package update and confirmed that EAC-enabled games are working correctly.<\/p>\n

Now we’ll see what happens with upstream GNU C Library developers around this or if they’ll wait it out and punt the ball into Epic Games’ court to switch from depending upon DT_HASH to the DT_GNU_HASH that has been widely used on Linux systems for over a decade.<\/p>\n<\/div>\n

.<\/p>\n","protected":false},"excerpt":{"rendered":"

Those on rolling-release Linux distributions that are quick to adapt to new toolchain updates are finding Easy Anti Cheat (EAC) enabled games breaking when running on the recently released Glibc 2.36. The breakage stems from the DT_HASH section being dropped in GNU C Library but EAC being among the few software still expecting that section …<\/p>\n

Glibc 2.36 Dropping DT_HASH Has Been Breaking Easy Anti Cheat Games With Steam Play<\/span> Read More »<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[4],"tags":[1111,1110,1108,1107,1114,1112,1109,1113,1106,1117,1115,1116],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":45704,"url":"https:\/\/harchi90.com\/linux-6-0-rc1-released-with-exciting-performance-optimizations-new-hardware-support\/","url_meta":{"origin":44896,"position":0},"title":"Linux 6.0-rc1 Released With Exciting Performance Optimizations, New Hardware Support","date":"August 15, 2022","format":false,"excerpt":"After the two week long merge window, Linus Torvalds released this afternoon the first release candidate of Linux 6.0. Over the next roughly two months the Linux 6.0 kernel will stabilize but already from my early testing on various systems it is in nice shape and the features and performance\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8488,"url":"https:\/\/harchi90.com\/windows-11-vs-linux-performance-for-intel-core-i9-12900k-in-mid-2022\/","url_meta":{"origin":44896,"position":1},"title":"Windows 11 vs. Linux Performance For Intel Core i9 12900K In Mid-2022","date":"July 8, 2022","format":false,"excerpt":"Last year when the Intel Core i9 12900K \"Alder Lake\" processor launched, Windows 11 was outperforming Linux to much surprise in general but explainable due to some late Linux kernel patches around Intel's hybrid architecture. Back in February I looked at the situation again and Linux started outrunning Windows 11\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":46620,"url":"https:\/\/harchi90.com\/linux-6-0-supporting-new-intel-amd-hardware-performance-improvements-much-more\/","url_meta":{"origin":44896,"position":2},"title":"Linux 6.0 Supporting New Intel\/AMD Hardware, Performance Improvements & Much More","date":"August 16, 2022","format":false,"excerpt":"Yesterday marked the release of Linux 6.0-rc1 and as such the merge window is now over and no more feature work is set to land in this kernel version. Here is my write-up of all the interesting new features and changes\/improvements coming for Linux 6.0. This kernel was originally going\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":17990,"url":"https:\/\/harchi90.com\/linux-5-19-rc7-released-following-a-tough-week-with-retbleed-intel-gpu-firmware-snafu\/","url_meta":{"origin":44896,"position":3},"title":"Linux 5.19-rc7 Released Following A Tough Week With Retbleed, Intel GPU Firmware Snafu","date":"July 18, 2022","format":false,"excerpt":"Linus Torvalds just released Linux 5.19-rc7 following a busy week due to the Retbleed security mitigation and not only the CPU overhead performance impact it puts on users but the mess it has on kernel development especially when it comes to embargoed issues that make the patches difficult to review\/test\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":50705,"url":"https:\/\/harchi90.com\/apple-m2-vs-amd-ryzen-7-pro-6850u-performance-in-nearly-200-benchmarks\/","url_meta":{"origin":44896,"position":4},"title":"Apple M2 vs. AMD Ryzen 7 PRO 6850U Performance In Nearly 200 Benchmarks","date":"August 20, 2022","format":false,"excerpt":"Last week I published initial Apple M2 vs. AMD Rembrandt vs. Intel Alder Lake Linux benchmarks using Asahi Linux and Arch Linux across the board. For ending out this week, here is a follow-up article looking more closely at the Apple M2 in the MacBook Air against the AMD Ryzen\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":33086,"url":"https:\/\/harchi90.com\/linux-6-0-has-some-big-scheduler-changes-including-improved-numa-balancing-for-amd-zen\/","url_meta":{"origin":44896,"position":5},"title":"Linux 6.0 Has Some Big Scheduler Changes, Including Improved NUMA Balancing For AMD Zen","date":"August 2, 2022","format":false,"excerpt":"Ingo Molnar today submitted the main set of kernel scheduler updates for the in-development Linux 6.0 (nee 5.20). The scheduler updates contain some notable changes that will be interesting to benchmark in the days ahead. First up, there is improved NUMA balancing on AMD Zen systems for affine workloads. That\u2026","rel":"","context":"In "Technology"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"fifu_image_url":"https:\/\/www.phoronix.net\/image.php?id=2022&image=glibc_borked_eac","_links":{"self":[{"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/posts\/44896"}],"collection":[{"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/comments?post=44896"}],"version-history":[{"count":0,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/posts\/44896\/revisions"}],"wp:attachment":[{"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/media?parent=44896"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/categories?post=44896"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/harchi90.com\/wp-json\/wp\/v2\/tags?post=44896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}