ralloc: Make sure ralloc() allocations match malloc()'s alignment.
authorJonas Pfeil <pfeiljonas@gmx.de>
Wed, 1 Mar 2017 17:11:10 +0000 (18:11 +0100)
committerEric Anholt <eric@anholt.net>
Thu, 2 Mar 2017 21:01:45 +0000 (13:01 -0800)
commitcd2b55e536dc806f9358f71db438dd9c246cdb14
tree81a2c9826c2a0fe5173b722e3b1e7aa66c6f98b0
parenta7b8d50bcb56b5d093aee24a722f2a5288b79b14
ralloc: Make sure ralloc() allocations match malloc()'s alignment.

The header of ralloc needs to be aligned, because the compiler assumes
that malloc returns will be aligned to 8/16 bytes depending on the
platform, leading to degraded performance or alignment faults with ralloc.

Fixes SIGBUS on Raspberry Pi at high optimization levels.

This patch is not perfect for MSVC, as maybe in the future the alignment
for the most demanding data type might change to more than 8.

v2: Commit message reword/typo fix, and add a bigger explanation in the
    code (by anholt)

Signed-off-by: Jonas Pfeil <pfeiljonas@gmx.de>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: mesa-stable@lists.freedesktop.org
src/util/ralloc.c