On Tue, Apr 14, 2009 at 9:33 PM, Zack Weinberg <[email protected]> wrote:
> On sparc, monotone fails to build because every last test of the main program
> triggers a bus error.  As far as I can tell from the limited information I've
> managed to extract from the build daemon, this is actually a bug in libsqlite.
...
> However, with a fingerprint this consistent, I would venture to guess
> that libsqlite3 is providing an inadequately-aligned mutex to libpthread,
> or something like that.

It occurred to me this morning that the address in libpthread is
probably a signal-handler return shim, thus nothing to do with the
problem.  On this theory, this is the bad code, with the faulting
instruction starred (sparc has delay slots for all branches):

   68f58:       c2 02 20 20     ld  [ %o0 + 0x20 ], %g1
   68f5c:       10 bf f8 a5     b  671f0 <sqlite3VdbeExec+0x3a98>
  *68f60:       c2 20 a0 20     st  %g1, [ %g2 + 0x20 ]

Unfortunately, without a sparc gdb, I'm not able to figure out exactly
what this corresponds to in the source code.  At address 671f0 is a
call to freeIndex, so I'm guessing this somewhere in
sqlite3CreateIndex (inlined into sqlite3VdbeExec - the other callers
of freeIndex are not plausible given the structure of the
application).

zw



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to