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

Stefan Liebler stli@linux.vnet.ibm.com
Mon Dec 4 15:05:00 GMT 2017


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20171204_dlruntimeresolve.patch
Type: text/x-patch
Size: 3864 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20171204/66a066d6/attachment.bin>


More information about the Libc-alpha mailing list