On 23 February 2017 at 21:58, Felix Fietkau <n...@nbd.name> wrote:
>> I actually thought about patching calloc_a to make sizeof_long-aligned
>> allocation as the comment in libubox/utils.h says the func should "allocate a
>> block of memory big enough to hold multiple aligned objects."
>>
>> But that's too corase a solution for a fundamental lib and can waste runtime
>> memory.  Maybe we should reword that comment and provide a few helper macros
>> like SHORT_ALIGN, INT_ALIGN, LONG_ALIGN?
> I think aligning to 4 bytes by default in calloc_a might be a good idea.
> For cases where it's important to not waste any bytes, we could have an
> unaligned variant of it.

Fixing it to 4 bytes is not enough.

The AArch64 ref manual says  in C2.2 Loads and stores that "Apart from
Load-Exclusive, Store-Exclusive, Load-Acquire, and Store-Release,
addresses can have any alignment unless strict alignment checking is
enabled, that is if SCTLR_ELx.A == 1." and otherwise Alignment fault
can happen on misaligned access.

               yousong

_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to