summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2018-10-05 14:30:35 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2018-10-08 09:42:19 +0200
commitb73bc6e3035933e796564ba962c71d5775554f86 (patch)
treefc2e6a2f4883ce5e656fe5914a7ee420105cf189
parent7324242de921f3820e7da843f19bf49eca9502db (diff)
downloadbarebox-b73bc6e3035933e796564ba962c71d5775554f86.tar.gz
barebox-b73bc6e3035933e796564ba962c71d5775554f86.tar.xz
arm: crypto: fix SHA256 shipped assembler code
Binutils 2.29 changed behavior of the adr instruction to always add the thumb mode switch offset, which breaks usages where the user is interested in the address of an internal symbol, instead of a jump address. Binutils 3.31 fixed this by only adding the offset when interworking is required. As there are toolchains out there with broken binutils, it's better to fix the code to work around the issue by not using the named label. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Tested-by: Robert Schwebel <r.schwebel@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/crypto/sha256-core.S_shipped2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/crypto/sha256-core.S_shipped b/arch/arm/crypto/sha256-core.S_shipped
index 15e0f4ad1e..4f9cf833b9 100644
--- a/arch/arm/crypto/sha256-core.S_shipped
+++ b/arch/arm/crypto/sha256-core.S_shipped
@@ -92,7 +92,7 @@ sha256_block_data_order:
#if __ARM_ARCH__<7
sub r3,pc,#8 @ sha256_block_data_order
#else
- adr r3,sha256_block_data_order
+ adr r3,.
#endif
#if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__)
ldr r12,.LOPENSSL_armcap