Jeff Trawick wrote: >Aaron Bannert <[EMAIL PROTECTED]> writes: > >>Could this be what's causing the SIGBUS? My current theory is that >>there's a size mismatch betwen ws->conn_bytes (an apr_off_t) and >>the (unsigned long) that only shows up on word-alignment-picky >>chips like sparcs. >> > >I'm bombing today on Solaris/sparc trying to do > > ap_scoreboard_image->global->restart_time = apr_time_now() > >That field lives at 0x14 from the start of the page. I would suppose >that there are alignment requirements that we aren't maintaining. >ap_scoreboard_image->global is at 0x4 from the start of the page. >Does anybody know about any documentation on alignment requirements? >Should the shared memory code return storage on 8-byte alignment? >
I know that it needs to be at least aligned on a 4-byte multiple. Reading a 32-bit value from an address not divisible by 4 definitely causes SIGBUS on Sparcs. For a 64-bit object, I *think* Sparcs need 8-byte alignment, but I'm not positive. --Brian
