Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Incompatibilities of userland 5.99.45 and 5.99.48

On Thu, 24 Mar 2011 08:28:36 -0700
Matt Thomas <matt%3am-software.com@localhost> wrote:

> I'm going to bet that this is due to crt0 overwriting r2 which was set
> by ld.elf_so.  I think I can fix this with a kludge.

You are right that the crash is r2-related, although the patch didn't
fix it. I had a closer look and saw the DSI-fault is at 0xefea7e4c, while
dereferencing a pointer constructed from r2-28680:

Dump of assembler code for function pthread_mutex_lock:
0xefea7e20 <pthread_mutex_lock+0>:      stwu    r1,-32(r1)
0xefea7e24 <pthread_mutex_lock+4>:      mflr    r0
0xefea7e28 <pthread_mutex_lock+8>:      bcl-    20,4*cr7+so,0xefea7e2c 
0xefea7e2c <pthread_mutex_lock+12>:     stw     r30,24(r1)
0xefea7e30 <pthread_mutex_lock+16>:     mflr    r30
0xefea7e34 <pthread_mutex_lock+20>:     stw     r29,20(r1)
0xefea7e38 <pthread_mutex_lock+24>:     mr      r29,r3
0xefea7e3c <pthread_mutex_lock+28>:     stw     r0,36(r1)
0xefea7e40 <pthread_mutex_lock+32>:     addis   r30,r30,2
0xefea7e44 <pthread_mutex_lock+36>:     addi    r30,r30,-3384
0xefea7e48 <pthread_mutex_lock+40>:     addi    r9,r2,-28680
0xefea7e4c <pthread_mutex_lock+44>:     lwz     r5,4(r9)

In my core dump r9 is 0x1809a68, which is an unmapped region:
(gdb) x 0x1809a68
0x1809a68:      Cannot access memory at address 0x1809a68

The last valid address seems to be 0x1808fff.

The sqlite3 package is quite small and has no dependencies, so I uploaded
it to ftp://ftp.netbsd.org/pub/NetBSD/misc/phx/sqlite3-3.7.4.tgz if you
want to check it on one of your powerpc systems.

Frank Wille

Home | Main Index | Thread Index | Old Index