Searched hist:f3368ec89a431332b10c7294227c903c9bb4e1bf (Results 1 – 1 of 1) sorted by relevance
| /optee_os/core/arch/arm/kernel/ |
| H A D | kern.ld.S | f3368ec89a431332b10c7294227c903c9bb4e1bf Fri Nov 27 10:01:56 UTC 2020 Jerome Forissier <jerome@forissier.org> core: arm: kern.ld.S: fix ROUNDUP() and ROUNDDOWN() for Clang
Fixes exceptions on boot when CFG_WITH_ASLR=y CFG_WITH_PAGER=y and the Clang toolchain is used (tested with QEMUv8 and Clang 11.0.0).
The Clang linker happens to generate non-relocatable references to symbols defined by expressions in the linker script which involve some arithmetic operations on another symbol. More specifically, when rounding up or down addresses to page boundaries using the expressions defined in <util.h>. This commit introduces different ways of doing ROUNDUP() and ROUNDDOWN() which work with both Clang and GCC: - ROUNDUP() is replaced with the linker ALIGN() built-in function, - ROUNDDOWN() is rewritten as 'symbol - something'.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
|