diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2018-10-05 14:30:35 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-10-08 09:42:19 +0200 |
commit | b73bc6e3035933e796564ba962c71d5775554f86 (patch) | |
tree | fc2e6a2f4883ce5e656fe5914a7ee420105cf189 | |
parent | 7324242de921f3820e7da843f19bf49eca9502db (diff) | |
download | barebox-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_shipped | 2 |
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 |