miniruby segfaults when attempting to install lang/ruby19 or lang/ruby20 on ppc64

Konstantin Belousov kostikbel at gmail.com
Thu Jan 9 07:45:39 UTC 2014


On Wed, Jan 08, 2014 at 09:47:14PM -0800, Harry Weppner wrote:
> Hi,
> 
> I brought an older dual G5 Powermac back to life and installed FreeBSD 10.0-RC4 on it with a GENERIC ppc64 kernel. When installing lang/ruby19 or lang/ruby20 miniruby segfaults in libthr. Tested with both the default gcc42 as well as with gcc49.
> 
> Has anyone seen this issue before? T
> 
> Thanks & cheerio, Harry.
> 
> (gdb) bt
> #0  handle_signal (actp=0xffffffffffbfa130, sig=11, info=0xffffffffffbfa690, ucp=0xffffffffffbfa1d0)
>     at /usr/src/lib/libthr/thread/thr_sig.c:188
This is strange, where the instuction address for the frame #0 ?

> #1  0x00000000502f36ac in thr_sighandler (sig=11, info=0xffffffffffbfa690, _ucp=0xffffffffffbfa1d0)
>     at /usr/src/lib/libthr/thread/thr_sig.c:183
> #2  0xffffffffffffe188 in ?? ()
> 
>    ┌──/usr/src/lib/libthr/thread/thr_sig.c─────────────────────────────────────────────────────────────────────────┐
>    │184     }                                                                                                      │
>    │185                                                                                                            │
>    │186     static void                                                                                            │
>    │187     handle_signal(struct sigaction *actp, int sig, siginfo_t *info, ucontext_t *ucp)                       │
>   >│188     {                                                                                                      │
>    │189             struct pthread *curthread = _get_curthread();                                                  │
> 
> 
> The specific instruction is:
>    ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
>   >│0x502f32ac <handle_signal+64>   stdu    r1,-1392(r1)                                                           │
>    │0x502f32b0 <handle_signal+68>   ld      r0,0(r9)                                                               │
>    │0x502f32b4 <handle_signal+72>   cmpdi   cr7,r0,0                                                               │
> 
> (gdb) x/x $r1-1392
> 0xffffffffffbf9b50:     Cannot access memory at address 0xffffffffffbf9b50
> 

Note that the fault happens during the delivery of SIGSEGV, and assuming
that it was stdu instruction indeed, it sounds as if the stack overflow
happens, probably due to excessive recursion.

Is the backtrace you copied above the full backtrace ?
I would expect much more frames above signal trampoline in the frame #2.
It seems that gdb for rs6000 does not know about signal trampolines.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ppc/attachments/20140109/4dfe7b11/attachment.sig>


More information about the freebsd-ppc mailing list