diff options
author | Paul E. Murphy <murphyp@linux.vnet.ibm.com> | 2020-05-01 14:30:42 -0500 |
---|---|---|
committer | Paul E. Murphy <murphyp@linux.vnet.ibm.com> | 2020-05-04 13:27:31 -0500 |
commit | 4a4db1de2f0fd936b583698dcc1b1c12a71828c8 (patch) | |
tree | 978c568bc7e90dda75a1ed18dd8f8730a72e0d0e /sysdeps/powerpc | |
parent | a49e56a945972186a829ca3ad7dec7fb9c923488 (diff) | |
download | glibc-4a4db1de2f0fd936b583698dcc1b1c12a71828c8.tar.gz |
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>
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r-- | sysdeps/powerpc/powerpc64/le/power9/rtld-strcmp.S | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/le/power9/rtld-strcmp.S b/sysdeps/powerpc/powerpc64/le/power9/rtld-strcmp.S new file mode 100644 index 0000000000..afdb492b3d --- /dev/null +++ b/sysdeps/powerpc/powerpc64/le/power9/rtld-strcmp.S @@ -0,0 +1,2 @@ +/* Fallback to P8 which does not use vector regs for rtld. */ +#include <sysdeps/powerpc/powerpc64/power8/strcmp.S> |