The backtrace might help a little, though.
Not as such:
Program received signal SIGSEGV, Segmentation fault. 0xffffffff5dc1d55c in ?? () (gdb) bt #0 0xffffffff5dc1d55c in ?? () #1 0xffffffff5dc1d554 in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb)
The offending instruction is
0xffffffff5dc1d55c: sth %g1, [ %i0 + 0x18 ]
which attempts to store a 16-bit value at an odd address (since %i0 contains 0x10092d6e9).
Apparently I need to compile a new gdb, since I don't get any symbolic info from shared objects, but I've managed to map the code back to this line, using pattern matching of the machine code:
/tmp/pike/src/post_modules/CritBit/tree_low.c:156 CB_SET_KEY(node, s);
So appantly "node" contains an odd address. I instrumented the function node_init() to print the addresses of nodes it allocates, and sure enough:
tree = 1008d8480 tree = 100931289 *** Error code 138 make: Fatal error: Command failed for target `just_verify'
So the bug is that CB_NODE_ALLOC() does not provide enough alignment for an object of type "struct cb_node" in the pointer it returns.