aboutsummaryrefslogtreecommitdiff
path: root/stdlib/tst-makecontext.c
AgeCommit message (Collapse)Author
2015-07-07S390: Fix "backtrace() returns infinitely deep stack frames with ↵Stefan Liebler
makecontext()" [BZ #18508]. On s390/s390x backtrace(buffer, size) returns the series of called functions until "makecontext_ret" and additional entries (up to "size") with "makecontext_ret". GDB-backtrace is also warning: "Backtrace stopped: previous frame identical to this frame (corrupt stack?)" To reproduce this scenario you have to setup a new context with makecontext() and activate it with setcontext(). See e.g. cf() function in testcase stdlib/tst-makecontext.c. Or see bug in libgo "Bug 66303 - runtime.Caller() returns infinitely deep stack frames on s390x " (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66303). This patch omits the cfi_startproc/cfi_endproc directives in ENTRY/END macro of __makecontext_ret. Thus no frame information is generated in .eh_frame and backtrace stops after __makecontext_ret. There is also no .eh_frame info for _start or thread_start functions. ChangeLog: [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.
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2012-07-17setcontext: Clarify termination when uc_link is the null pointer.Thomas Schwinge
2012-02-09Replace FSF snail mail address with URLs.Paul Eggert
2008-04-10* stdlib/tst-makecontext.c (othervar): New variable. Jakub Jelinek
(cf): Test sign extending the argument to long. 2008-04-10 Jakub Jelinek <jakub@redhat.com> * stdlib/tst-makecontext.c (othervar): New variable. (cf): Test sign extending the argument to long.
2008-04-10* sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: New file.Ulrich Drepper
* sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S: New file. * sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: New file. * sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S: New file. * sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: New file. * sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: New file. * sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: New file.
2008-04-09[BZ #5436]Ulrich Drepper
2008-04-09 Ulrich Drepper <drepper@redhat.com> * stdlib/tst-makecontext.c: Change parameter to cf to negative value to check for correct sign extension. [BZ #5436] * sysdeps/unix/sysv/linux/x86_64/makecontext.c (__makecontext): Copy 64-bit parameter values even though this is not required in the standard. * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Record return PC save.
2007-01-11Include errno.h. Change main() to do_test(). Define TEST_FUNCTION. Include ↵Ulrich Drepper
test-skeleton.c. (do_test): Check errno and exit(0) if ENOSYS.
2006-12-19* stdlib/Makefile (tests): Add tst-makecontext.Ulrich Drepper
* stdlib/tst-makecontext.c: New test. * sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S (__makecontext): Don't realign uc_mcontext.uc_regs.
2004-12-22(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper
2007-07-122.5-18.1Jakub Jelinek