On Tue, 13 Jul 2021 21:36:02 -0400 Todd Mortimer <[email protected]> wrote:
> I will have some time to look into this later this week. It looks like > this is just libunwind expecting something to be present that isn't, but > I am not sure what the best way to fix it would be. > > Thanks! > Todd Hello Charlene, Todd. I don't know about emacs, but I stopped getting SIGSEGV on macppc in t_backtrace (in regress/gnu/lib/libexecinfo) after I used ld.lld to link libexecinfo.so.3.0 With the old libexecinfo.so* from ld.bfd, t_backtrace got SIGSEGV about 3 in 4 times. With the new libexecinfo.so* from ld.lld, I don't get SIGSEGV, so t_backtrace fails in the expected way (with an empty backtrace). I don't know whether LLD fixes the problem or only hides the problem. It's weird, because I never had any trouble with ld.bfd on powerpc before now. The new macppc snapshot (20/21 Aug) was linked by lld, and has a libexecinfo.so.3.0 that doesn't crash for me. --George > > (gdb) run > > > > Starting program: /usr/src/regress/gnu/lib/libexecinfo/t_backtrace -r 1 > > > > > > > > Program received signal SIGSEGV, Segmentation fault. > > > > libunwind::CFI_Parser<libunwind::LocalAddressSpace>::findFDE > > (addressSpace=..., pc=3122944028, > > ehSectionStart=3123060828, sectionLength=<optimized out>, > > fdeHint=<optimized out>, fdeInfo=0xfffcbce8, > > cieInfo=0xfffcbcc8) at > > /usr/src/gnu/llvm/libunwind/src/DwarfParser.hpp:223 > > > > 223 pint_t cfiLength = addressSpace.get32(p); > > > > (gdb) bt > > > > #0 libunwind::CFI_Parser<libunwind::LocalAddressSpace>::findFDE > > (addressSpace=..., pc=3122944028, > > ehSectionStart=3123060828, sectionLength=<optimized out>, > > fdeHint=<optimized out>, fdeInfo=0xfffcbce8, > > cieInfo=0xfffcbcc8) at > > /usr/src/gnu/llvm/libunwind/src/DwarfParser.hpp:223 > > #1 0xba24cfd0 in libunwind::UnwindCursor<libunwind::LocalAddressSpace, > > libunwind::Registers_ppc>::getInfoFromDwarfSection (this=0xfffcc920, > > pc=3122944028, sects=..., fdeSectionOffsetHint=0) > > at /usr/src/gnu/llvm/libunwind/src/UnwindCursor.hpp:1518 > > #2 0xba249ce4 in libunwind::UnwindCursor<libunwind::LocalAddressSpace, > > libunwind::Registers_ppc>::setInfoBasedOnIPRegister (this=0xfffcc920, > > isReturnAddress=<optimized out>) > > at /usr/src/gnu/llvm/libunwind/src/UnwindCursor.hpp:1927 > > #3 0xba2480a8 in __unw_init_local (cursor=0xfffcc920, context=0xfffcc578) > > at /usr/src/gnu/llvm/libunwind/src/libunwind.cpp:76 > > #4 0xba24582c in _Unwind_Backtrace (callback=0xba24ec54 <tracer>, > > ref=0xfffccd28) > > at /usr/src/gnu/llvm/libunwind/src/UnwindLevel1-gcc-ext.c:112 > > #5 0xba24ebd4 in backtrace (arr=<optimized out>, len=<optimized out>) > > at /usr/src/gnu/lib/libexecinfo/unwind.c:69 > > #6 0x2d1e070c in myfunc3 () > > -- George Koehler <[email protected]>
