httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <rainer.j...@kippdata.de>
Subject Re: 2.4.17 alignment issue sparc/ia64
Date Fri, 16 Oct 2015 13:08:36 GMT
Am 16.10.2015 um 14:56 schrieb Yann Ylavic:
> On Fri, Oct 16, 2015 at 2:48 PM, Yann Ylavic <ylavic.dev@gmail.com> wrote:
>> On Fri, Oct 16, 2015 at 2:35 PM, Rainer Jung <rainer.jung@kippdata.de> wrote:
>>>
>>> I didn't yet have the time to reproduce and test your patch, but the
>>> APR_ALIGN((size),sizeof(void *)) align approach would not work. The problem
>>> here is that even or especially when building for 32 Bits and then using a
>>> 64 Bit data type, the alignment fails. So the pointer size would be 4 here,
>>> but the requirement alignment 8 bytes.
>>
>> Hm, correct, each integral type (greater than the word) needs be
>> aligned on its size!
>
> Though the issue here is not accessing the type as an integral, so
> aligning on 4 bytes (for 32 bit hardware) should enough for accessing
> each scoreborad entry/struct (the members of the structs themselves
> will still be aligned according to their type, so they can also be
> safely accessed).

Wasn't the bus error occuring in

ws->last_used = apr_time_now();

and the address is

(dbx) print &(ws->last_used)
&ws->last_used = 0xffffffff7bb00094

not divisible by 8 although the data type (not pointer size) is 64 Bit.

Regards,

Rainer


Mime
View raw message