poly1305/asm/poly1305-armv4.pl: remove unintentional relocation.
Branch to global symbol results in reference to PLT, and when compiling
for THUMB-2 - in a R_ARM_THM_JUMP19 relocation. Some linkers don't
support this relocation (ld.gold), while others can end up truncating
the relocation to fit (ld.bfd).
Convert this branch through PLT into a direct branch that the assembler
can resolve locally.
See https://github.com/android-ndk/ndk/issues/337 for background.
The current workaround is to disable poly1305 optimization assembly,
which is not optimal and can be reverted after this patch:
beab607d2b
CLA: trivial
Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5949)
This commit is contained in:
parent
2f8271ebca
commit
5bb1cd2292
1 changed files with 2 additions and 1 deletions
|
@ -186,6 +186,7 @@ $code.=<<___;
|
|||
.type poly1305_blocks,%function
|
||||
.align 5
|
||||
poly1305_blocks:
|
||||
.Lpoly1305_blocks:
|
||||
stmdb sp!,{r3-r11,lr}
|
||||
|
||||
ands $len,$len,#-16
|
||||
|
@ -677,7 +678,7 @@ poly1305_blocks_neon:
|
|||
cmp $len,#64
|
||||
bhs .Lenter_neon
|
||||
tst ip,ip @ is_base2_26?
|
||||
beq poly1305_blocks
|
||||
beq .Lpoly1305_blocks
|
||||
|
||||
.Lenter_neon:
|
||||
stmdb sp!,{r4-r7}
|
||||
|
|
Loading…
Reference in a new issue