[PATCH] S390: Add CFI rule in _dl_runtime_resolve[_vx] for unwinding.

Stefan Liebler stli@linux.vnet.ibm.com
Mon Dec 11 08:01:00 GMT 2017


On 12/04/2017 04:05 PM, Stefan Liebler wrote:
> Hi,
> 
> 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?
> 
> Bye.
> Stefan
> 
> ChangeLog:
> 
>      * 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):
>      Likewise.

Committed



More information about the Libc-alpha mailing list