Source: gcc-12 Version: 12-20220319-1 Severity: important X-Debbugs-Cc: debian-gl...@lists.debian.org
Dear maintainer, GCC in Debian is patched [1] to force ld to use the DT_GNU_HASH hash table using --hash-style=gnu, instead of the default --hash-style=both which includes both the DT_HASH and DT_GNU_HASH hash tables. The GNU libc was explicitly forcing --hash-style=both, but starting with glibc 2.36 it does not enforce that anymore, and thus rely on the system default. On systems using the default "both" hash style like in the upstream GCC it does not change anything, but on systems that have changed the default to "gnu", this causes issue with at least the "Easy Anti-Cheat" system [3]. It appears that that DT_HASH hash table is still mandatory in the Generic System V Application Binary Interface [4] although this might change. Given that I wonder if the default hash-style in GCC should be changed back to the default --hash-style=both. On a side note, I wonder if the default change should be made on the binutils side (using the --enable-default-hash-style= option), instead of patching the upstream GCC sources. Regards Aurelien [1] https://salsa.debian.org/toolchain-team/gcc/-/blob/master/debian/patches/gcc-hash-style-gnu.diff [2] https://sourceware.org/git/?p=glibc.git;a=patch;h=e47de5cb2d4dbecb58f569ed241e8e95c568f03c [3] https://sourceware.org/bugzilla/show_bug.cgi?id=29456 [4] https://groups.google.com/g/generic-abi/c/th5919osPAQ