Source: gcc-12
Version: 12-20220319-1
Severity: important
X-Debbugs-Cc: debian-glibc@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

Reply via email to