swresample/arm: 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 neon during gstreamer build,
which is not optimal and can be reverted after this patch:
41556c4157

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Rahul Chaudhry 2018-04-18 16:29:39 -07:00 committed by Michael Niedermayer
parent baf9c0bd99
commit b22db4f465
1 changed files with 4 additions and 2 deletions

View File

@ -22,6 +22,7 @@
#include "libavutil/arm/asm.S"
function swri_oldapi_conv_flt_to_s16_neon, export=1
_swri_oldapi_conv_flt_to_s16_neon:
subs r2, r2, #8
vld1.32 {q0}, [r1,:128]!
vcvt.s32.f32 q8, q0, #31
@ -66,6 +67,7 @@ function swri_oldapi_conv_flt_to_s16_neon, export=1
endfunc
function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1
_swri_oldapi_conv_fltp_to_s16_2ch_neon:
ldm r1, {r1, r3}
subs r2, r2, #8
vld1.32 {q0}, [r1,:128]!
@ -133,8 +135,8 @@ function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1
cmp r3, #2
itt lt
ldrlt r1, [r1]
blt X(swri_oldapi_conv_flt_to_s16_neon)
beq X(swri_oldapi_conv_fltp_to_s16_2ch_neon)
blt _swri_oldapi_conv_flt_to_s16_neon
beq _swri_oldapi_conv_fltp_to_s16_2ch_neon
push {r4-r8, lr}
cmp r3, #4