From 4a4db1de2f0fd936b583698dcc1b1c12a71828c8 Mon Sep 17 00:00:00 2001 From: "Paul E. Murphy" Date: Fri, 1 May 2020 14:30:42 -0500 Subject: 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 --- sysdeps/powerpc/powerpc64/le/power9/rtld-strcmp.S | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sysdeps/powerpc/powerpc64/le/power9/rtld-strcmp.S 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 -- cgit 1.4.1