poly1305/asm/poly1305-armv4.pl: remove unintentional relocation.
authorRahul Chaudhry <rahulchaudhry@google.com>
Fri, 13 Apr 2018 17:42:13 +0000 (10:42 -0700)
committerAndy Polyakov <appro@openssl.org>
Wed, 18 Apr 2018 17:49:36 +0000 (19:49 +0200)
commite88f5d57efa5031e4863d455e2b5a9f7f4096c8b
tree116a692fcbd7a6ed96143590496cefc1336ca8ea
parent87b315965296273750ab69728648bbff331e1687
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:
https://github.com/freedesktop/gstreamer-cerbero/commit/beab607d2b1ff23c41b7e01aa9c64be5e247d1e6

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)

(cherry picked from commit 5bb1cd2292b388263a0cc05392bb99141212aa53)
crypto/poly1305/asm/poly1305-armv4.pl