[PATCH] arm: crypto: fix SHA256 shipped assembler code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx>
Tested-by: Robert Schwebel <r.schwebel@xxxxxxxxxxxxxx>
---
 arch/arm/crypto/sha256-core.S_shipped | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/crypto/sha256-core.S_shipped b/arch/arm/crypto/sha256-core.S_shipped
index 15e0f4ad1e68..4f9cf833b94b 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
-- 
2.19.0


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux