]> git.ipfire.org Git - thirdparty/glibc.git/commit
powerpc64le/power9: guard power9 strcmp against rtld usage [BZ# 25905]
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>
Fri, 1 May 2020 19:30:42 +0000 (14:30 -0500)
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>
Mon, 4 May 2020 18:27:31 +0000 (13:27 -0500)
commit4a4db1de2f0fd936b583698dcc1b1c12a71828c8
tree978c568bc7e90dda75a1ed18dd8f8730a72e0d0e
parenta49e56a945972186a829ca3ad7dec7fb9c923488
powerpc64le/power9: guard power9 strcmp against rtld usage [BZ# 25905]

strcmp is used while resolving PLT references.  Vector registers
should not be used during this.  The P9 strcmp makes heavy use of
vector registers, so it should be avoided in rtld.

This prevents quiet vector register corruption when glibc is configured
with --disable-multi-arch and --with-cpu=power9.  This can be seen with
test-float64x-compat_totalordermag during the first call into
totalordermagf64x@GLIBC_2.27.

Add a guard to fallback to the power8 implementation when building
power9 strcmp for libraries other than libc.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
sysdeps/powerpc/powerpc64/le/power9/rtld-strcmp.S [new file with mode: 0644]