]> git.baikalelectronics.ru Git - arm-tf.git/commit
AArch64: Fix assertions in processing dynamic relocations
authorAlexei Fedorov <Alexei.Fedorov@arm.com>
Fri, 25 Dec 2020 10:52:56 +0000 (10:52 +0000)
committerAlexei Fedorov <Alexei.Fedorov@arm.com>
Wed, 6 Jan 2021 10:59:22 +0000 (10:59 +0000)
commitdb9736e3d86d7098f9785a9db834746a8b2ed335
treebce5e8ee4902d6aeab8a92e5c5c1ef851c4678ff
parent4811168aafc8bdb5869d26744fa8636752b5ca32
AArch64: Fix assertions in processing dynamic relocations

This patch provides the following changes in fixup_gdt_reloc()
function:
- Fixes assertions in processing dynamic relocations, when
relocation entries not matching R_AARCH64_RELATIVE type are found.
Linker might generate entries of relocation type R_AARCH64_NONE
(code 0), which should be ignored to make the code boot. Similar
issue was fixed in OP-TEE (see optee_os/ldelf/ta_elf_rel.c
commit 7a4dc765c133125428136a496a7644c6fec9b3c2)
- Fixes bug when "b.ge" (signed greater than or equal) condition
codes were used instead of "b.hs" (greater than or equal) for
comparison of absolute addresses.
- Adds optimisation which skips fixing Global Object Table (GOT)
entries when offset value is 0.

Change-Id: I35e34e055b7476843903859be947b883a1feb1b5
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
lib/aarch64/misc_helpers.S