[PATCH 8/8] powerpc: Fix signal handling in backtrace

Adhemerval Zanella adhemerval.zanella@linaro.org
Tue May 9 13:13:00 GMT 2017



On 09/05/2017 09:11, Tulio Magno Quites Machado Filho wrote:
> Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:
> 
>> Now with read consolidation which uses SYSCALL_CANCEL macro, a frame
>> pointer is created in the syscall code and this makes the powerpc
>> backtrace obtain a bogus entry for the signal handling patch.
>>
>> It is because it does not setup the correct frame pointer register
>> (r1) based on the saved value from the kernel sigreturn.  It was not
>> failing because the syscall frame pointer register was the same one
>> for the next frame (the function that actually called the syscall).
>>
>> This patch fixes it by setup the next stack frame using the saved
>> one by the kernel sigreturn.  It fixes tst-backtrace{5,6} after
>> the read consolidation patch.
>>
>> Checked on powerpc-linux-gnu and powerpc64le-linux-gnu.
>>
>> 	* sysdeps/powerpc/powerpc32/backtrace.c (is_sigtramp_address): Use
>> 	void* for argument type and use VDSO_SYMBOL macro.
>> 	(is_sigtramp_address_rt): Likewise.
>> 	(__backtrace): Setup expected frame pointer address for signal
>> 	handling.
>> 	* sysdeps/powerpc/powerpc32/backtrace.c (is_sigtramp_address): Use
> 
> The files are duplicated in the ChangeLog.
> 
> Looks good to me with that fix as soon as patch #4 is integrated.
> 
> Thanks!
> 

Second item should be sysdeps/powerpc/powerpc64/backtrace.c, I will fix.
Thanks.



More information about the Libc-alpha mailing list