https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98920
--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #3) > I'm not sure if your patch is correct. > glibc has the system of earliest symbol versions, and so on certain > architectures > GLIBC_2.3.4 symver will not appear at all. > Given: > ./sysdeps/mach/hurd/shlib-versions:DEFAULT GLIBC_2.2.6 > ./sysdeps/unix/sysv/linux/csky/shlib-versions:DEFAULT > GLIBC_2.29 > ./sysdeps/unix/sysv/linux/microblaze/shlib-versions:DEFAULT > GLIBC_2.18 > ./sysdeps/unix/sysv/linux/arc/shlib-versions:DEFAULT > GLIBC_2.32 > ./sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions:DEFAULT > GLIBC_2.4 > ./sysdeps/unix/sysv/linux/arm/shlib-versions:DEFAULT > GLIBC_2.4 > ./sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions:DEFAULT > GLIBC_2.2 > ./sysdeps/unix/sysv/linux/riscv/shlib-versions:DEFAULT > GLIBC_2.27 > ./sysdeps/unix/sysv/linux/riscv/shlib-versions:DEFAULT > GLIBC_2.27 > ./sysdeps/unix/sysv/linux/riscv/shlib-versions:DEFAULT > GLIBC_2.33 > ./sysdeps/unix/sysv/linux/riscv/shlib-versions:DEFAULT > GLIBC_2.33 > ./sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions:# DEFAULT > Earliest > symbol set > ./sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions:DEFAULT > GLIBC_2.16 > ./sysdeps/unix/sysv/linux/x86_64/64/shlib-versions:# DEFAULT > Earliest > symbol set > ./sysdeps/unix/sysv/linux/x86_64/64/shlib-versions:DEFAULT > GLIBC_2.2.5 > ./sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:DEFAULT > GLIBC_2.17 > ./sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:DEFAULT > GLIBC_2.3 > ./sysdeps/unix/sysv/linux/nios2/shlib-versions:DEFAULT > GLIBC_2.21 > ./sysdeps/unix/sysv/linux/aarch64/shlib-versions:DEFAULT > GLIBC_2.17 > and the limited list of arches supported by libsanitizer, I'd say at least > riscv*, powerpc64le and aarch64 (and maybe x86-64 -mx32 if supported) are > affected. Thank you for this. You are right, my patch is not correct. So for the archs we care about we should do: x86_64 - require GLIBC_2.3.4 ppc64 - require GLIBC_2.3.4 aarch64, ppc64le, x32 and riscv* are newer than 2.3.4, so a default non-versioned symbol should be fine. Am I right?