public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: "Paul E. Murphy" <murphyp@linux.vnet.ibm.com>
To: libc-alpha@sourceware.org, adhemerval.zanella@linaro.org
Subject: [PATCHv2] powerpc64le/power9: guard power9 strcmp against rtld usage [BZ# 25905]
Date: Mon,  4 May 2020 10:25:03 -0500	[thread overview]
Message-ID: <20200504152503.9608-1-murphyp@linux.vnet.ibm.com> (raw)
In-Reply-To: <27007d15-933d-8d13-161f-cab2b26b37f2@linaro.org>

Use rtld-strcpy.S file in power9 to redirect to power8 implementation
instead.  This builds the power8 strcpy rtld with --with-cpu=power9 and
--disable-multi-arch.  The existing behavior is unchanged when
multi-arch is enabled.

---8<---
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.
---
 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 <sysdeps/powerpc/powerpc64/power8/strcmp.S>
-- 
2.21.1


  reply	other threads:[~2020-05-04 15:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-01 20:32 [PATCH] " Paul E. Murphy
2020-05-04 12:26 ` Adhemerval Zanella
2020-05-04 15:25   ` Paul E. Murphy [this message]
2020-05-04 16:36     ` [PATCHv2] " Adhemerval Zanella
2020-05-04 18:02       ` Paul E Murphy
2020-05-04 18:26         ` Adhemerval Zanella
2020-05-04 21:16           ` Paul E Murphy
2020-05-05 21:01             ` Adhemerval Zanella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200504152503.9608-1-murphyp@linux.vnet.ibm.com \
    --to=murphyp@linux.vnet.ibm.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).