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

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


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