https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=206810
--- Comment #1 from Mark Millard <mar...@dsl-only.net> --- I tried the following change on/for the powerpc (32-bit) PowerMac that I use Index: /usr/src/sys/powerpc/powerpc/sigcode32.S =================================================================== --- /usr/src/sys/powerpc/powerpc/sigcode32.S (revision 294962) +++ /usr/src/sys/powerpc/powerpc/sigcode32.S (working copy) @@ -45,9 +45,9 @@ */ .globl CNAME(sigcode32),CNAME(szsigcode32) CNAME(sigcode32): - addi 1,1,-20 /* reserved space for callee */ + addi 1,1,-32 /* reserved space for callee */ blrl - addi 3,1,20+SF_UC /* restore sp, and get &frame->sf_uc */ + addi 3,1,32+SF_UC /* restore sp, and get &frame->sf_uc */ li 0,SYS_sigreturn sc /* sigreturn(scp) */ li 0,SYS_exit and the results were: A) "info frame" in gdb shows signal handlers are now started with 16-byte aligned stack frames. and B) The clang 3.8.0 compiled __vfprintf segmentation faults in libc/stdio library code during signal handlers no longer happen because the alignment matches the code requirements. (Before 2014 it was -16 and 16 instead of -20 and 20, but 16 was too small of a space. The change to -20 and 20 fixed that but no longer produced aligned stack frames: It should have gone from -16 and 16 to -32 and 32 to maintain 16 byte stack alignment while allocating more space.) -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ freebsd-bugs@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"