This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH] S390: Add CFI rule in _dl_runtime_resolve[_vx] for unwinding.
- From: Stefan Liebler <stli at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Mon, 11 Dec 2017 08:51:06 +0100
- Subject: Re: [PATCH] S390: Add CFI rule in _dl_runtime_resolve[_vx] for unwinding.
- Authentication-results: sourceware.org; auth=none
- References: <email@example.com>
On 12/04/2017 04:05 PM, Stefan Liebler wrote:
In _dl_runtime_resolve[_vx], unwinding fails after the new stack frame
is created as there is no CFI rule for r15. This is also observable in
GDB: Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Therefore this patch is now storing r15 on stack and is using cfi_offset
rule. The stmg/lmg instruction is used to store/load r14 and r15 with
one instruction. On 64bit, the offsets of the fprs have moved to store
r15 directly after r14. On 31bit, the r14/r15 is now stored between the
other gprs and fprs as the space wasn't used.
Okay to commit?
* sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_resolve):
Store r15 on stack and add cfi rule.
* sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_resolve):