This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/19916] New: S390: fprs/vrs are not saved/restored while resolving symbols
- From: "stli at linux dot vnet.ibm.com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Wed, 06 Apr 2016 13:16:46 +0000
- Subject: [Bug dynamic-link/19916] New: S390: fprs/vrs are not saved/restored while resolving symbols
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=19916
Bug ID: 19916
Summary: S390: fprs/vrs are not saved/restored while resolving
symbols
Product: glibc
Version: 2.24
Status: NEW
Severity: normal
Priority: P2
Component: dynamic-link
Assignee: unassigned at sourceware dot org
Reporter: stli at linux dot vnet.ibm.com
Target Milestone: ---
On s390, no fpr/vrs are saved while resolving a symbol
via _dl_runtime_resolve/_dl_runtime_profile.
According to the abi, the fpr-arguments are defined as call clobbered.
In leaf-functions, gcc can use fprs for saving/restoring gprs
instead of saving them to the stack.
If gcc do this in one of the resolver-functions, then the floating point
arguments of a library-function are invalid for the first
library-function-call.
The same could occur for vector registers. An ifunc-resolver
can also clobber the vector/floating point argument registers.
Furthermore, if _dl_runtime_profile calls _dl_call_pltexit,
the pointers to inregs-/outregs-structs are setup invalid.
On s390-32, an endless loop occurs if _dl_call_pltexit() should be called.
--
You are receiving this mail because:
You are on the CC list for the bug.