[PATCH][BZ #18508] S390: Fix "backtrace() returns infinitely deep stack frames with makecontext()".

Stefan Liebler stli@linux.vnet.ibm.com
Fri Jun 26 11:52:00 GMT 2015


ping

On 06/19/2015 12:44 PM, Stefan Liebler wrote:
> PING
>
> On 06/15/2015 10:47 AM, Stefan Liebler wrote:
>> On 06/12/2015 05:40 PM, Andreas Schwab wrote:
>>> Stefan Liebler <stli@linux.vnet.ibm.com> writes:
>>>
>>>> Is there a way to load the correct libgcc_s.so on all architectures?
>>>
>>> #include <gnu/lib-names.h>
>>> dlopen(LIBGCC_S_SO, ...)
>>>
>>> Andreas.
>>>
>> Thanks.
>> Here is the patch with the enhanced tst-makecontext testcase.
>> It calls _Unwind_Backtrace within cf() function, which is called in a
>> makecontext context and check if the callback function is not called
>> infinitely times.
>>
>> Tested on s390/s390x before and after this patch.
>> Before: Test fails; After: Test succeeds.
>>
>> Ok to commit?
>>
>> Bye Stefan
>>
>> ---
>> 2015-06-15  Stefan Liebler  <stli@linux.vnet.ibm.com>
>>
>>      [BZ #18508]
>>      * stdlib/Makefile ($(objpfx)tst-makecontext3):
>>      Depend on $(libdl).
>>      * stdlib/tst-makecontext.c (cf): Test if _Unwind_Backtrace
>>      is not called infinitely times.
>>      (backtrace_helper): New function.
>>      (trace_arg): New struct.
>>      (st1): Enlarge stack size.
>>      * sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S:
>>      (__makecontext_ret): Omit cfi_startproc and cfi_endproc.
>>      * sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S:
>>      Likewise.
>
>



More information about the Libc-alpha mailing list