diff mbox series

[FFmpeg-devel,v2,2/2] swresample/aarch64: fix relocation out of range error

Message ID tencent_6026C727F62A879305DC7C0BA0260510AC06@qq.com
State Accepted
Commit 44c64b103ea89dc6f38a65f10bc7cc41099fb938
Headers show
Series None | expand

Commit Message

Zhao Zhili Sept. 13, 2021, 11:48 a.m. UTC
From: Zhao Zhili <zhilizhao@tencent.com>

---
v2: add local labels instead of changing the code

 libswresample/aarch64/audio_convert_neon.S | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Martin Storsjö Sept. 13, 2021, 12:14 p.m. UTC | #1
On Mon, 13 Sep 2021, Zhao Zhili wrote:

> From: Zhao Zhili <zhilizhao@tencent.com>
>
> ---
> v2: add local labels instead of changing the code
>
> libswresample/aarch64/audio_convert_neon.S | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/libswresample/aarch64/audio_convert_neon.S b/libswresample/aarch64/audio_convert_neon.S
> index 74feff448a..6d789b16d2 100644
> --- a/libswresample/aarch64/audio_convert_neon.S
> +++ b/libswresample/aarch64/audio_convert_neon.S
> @@ -23,6 +23,7 @@
> #include "libavutil/aarch64/asm.S"
>
> function swri_oldapi_conv_flt_to_s16_neon, export=1
> +oldapi_conv_flt_to_s16_neon:
>         subs            x2,  x2,  #8
>         ld1             {v0.4s}, [x1],  #16
>         fcvtzs          v4.4s,  v0.4s,  #31
> @@ -67,6 +68,7 @@ function swri_oldapi_conv_flt_to_s16_neon, export=1
> endfunc
>
> function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1
> +oldapi_conv_fltp_to_s16_2ch_neon:
>         ldp             x4,  x5,  [x1]
>         subs            x2,  x2,  #8
>         ld1             {v0.4s},  [x4], #16
> @@ -131,10 +133,10 @@ endfunc
>
> function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1
>         cmp             w3,  #2
> -        b.eq            X(swri_oldapi_conv_fltp_to_s16_2ch_neon)
> +        b.eq            oldapi_conv_fltp_to_s16_2ch_neon
>         b.gt            1f
>         ldr             x1,  [x1]
> -        b               X(swri_oldapi_conv_flt_to_s16_neon)
> +        b               oldapi_conv_flt_to_s16_neon
> 1:
>         cmp             w3,  #4
>         lsl             x12, x3,  #1
> -- 
> 2.31.1

LGTM, thanks.

Can you clarify the circumstances where this is an issue - is the reason 
that there's a different version of the same symbol when linking, 
elsewhere?

// Martin
Zhao Zhili Sept. 13, 2021, 1:07 p.m. UTC | #2
> On Sep 13, 2021, at 8:14 PM, Martin Storsjö <martin@martin.st> wrote:
> 
> On Mon, 13 Sep 2021, Zhao Zhili wrote:
> 
>> From: Zhao Zhili <zhilizhao@tencent.com>
>> 
>> ---
>> v2: add local labels instead of changing the code
>> 
>> libswresample/aarch64/audio_convert_neon.S | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>> 
>> diff --git a/libswresample/aarch64/audio_convert_neon.S b/libswresample/aarch64/audio_convert_neon.S
>> index 74feff448a..6d789b16d2 100644
>> --- a/libswresample/aarch64/audio_convert_neon.S
>> +++ b/libswresample/aarch64/audio_convert_neon.S
>> @@ -23,6 +23,7 @@
>> #include "libavutil/aarch64/asm.S"
>> 
>> function swri_oldapi_conv_flt_to_s16_neon, export=1
>> +oldapi_conv_flt_to_s16_neon:
>>        subs            x2,  x2,  #8
>>        ld1             {v0.4s}, [x1],  #16
>>        fcvtzs          v4.4s,  v0.4s,  #31
>> @@ -67,6 +68,7 @@ function swri_oldapi_conv_flt_to_s16_neon, export=1
>> endfunc
>> 
>> function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1
>> +oldapi_conv_fltp_to_s16_2ch_neon:
>>        ldp             x4,  x5,  [x1]
>>        subs            x2,  x2,  #8
>>        ld1             {v0.4s},  [x4], #16
>> @@ -131,10 +133,10 @@ endfunc
>> 
>> function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1
>>        cmp             w3,  #2
>> -        b.eq            X(swri_oldapi_conv_fltp_to_s16_2ch_neon)
>> +        b.eq            oldapi_conv_fltp_to_s16_2ch_neon
>>        b.gt            1f
>>        ldr             x1,  [x1]
>> -        b               X(swri_oldapi_conv_flt_to_s16_neon)
>> +        b               oldapi_conv_flt_to_s16_neon
>> 1:
>>        cmp             w3,  #4
>>        lsl             x12, x3,  #1
>> -- 
>> 2.31.1
> 
> LGTM, thanks.
> 
> Can you clarify the circumstances where this is an issue - is the reason that there's a different version of the same symbol when linking, elsewhere?

Someone who use a custom build system confronted to the issue, which I can’t
reproduce it myself. The build system use Android NDK 22b, linked with
-fuse-ld=lld. I have asked him to check whether there’s another version of
ffmpeg and got no luck. Hope it doesn't hide a more serious issue in his
build system.

> 
> // Martin
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Michael Niedermayer Sept. 13, 2021, 7:37 p.m. UTC | #3
On Mon, Sep 13, 2021 at 03:14:54PM +0300, Martin Storsjö wrote:
> On Mon, 13 Sep 2021, Zhao Zhili wrote:
> 
> > From: Zhao Zhili <zhilizhao@tencent.com>
> > 
> > ---
> > v2: add local labels instead of changing the code
> > 
> > libswresample/aarch64/audio_convert_neon.S | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/libswresample/aarch64/audio_convert_neon.S b/libswresample/aarch64/audio_convert_neon.S
> > index 74feff448a..6d789b16d2 100644
> > --- a/libswresample/aarch64/audio_convert_neon.S
> > +++ b/libswresample/aarch64/audio_convert_neon.S
> > @@ -23,6 +23,7 @@
> > #include "libavutil/aarch64/asm.S"
> > 
> > function swri_oldapi_conv_flt_to_s16_neon, export=1
> > +oldapi_conv_flt_to_s16_neon:
> >         subs            x2,  x2,  #8
> >         ld1             {v0.4s}, [x1],  #16
> >         fcvtzs          v4.4s,  v0.4s,  #31
> > @@ -67,6 +68,7 @@ function swri_oldapi_conv_flt_to_s16_neon, export=1
> > endfunc
> > 
> > function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1
> > +oldapi_conv_fltp_to_s16_2ch_neon:
> >         ldp             x4,  x5,  [x1]
> >         subs            x2,  x2,  #8
> >         ld1             {v0.4s},  [x4], #16
> > @@ -131,10 +133,10 @@ endfunc
> > 
> > function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1
> >         cmp             w3,  #2
> > -        b.eq            X(swri_oldapi_conv_fltp_to_s16_2ch_neon)
> > +        b.eq            oldapi_conv_fltp_to_s16_2ch_neon
> >         b.gt            1f
> >         ldr             x1,  [x1]
> > -        b               X(swri_oldapi_conv_flt_to_s16_neon)
> > +        b               oldapi_conv_flt_to_s16_neon
> > 1:
> >         cmp             w3,  #4
> >         lsl             x12, x3,  #1
> > -- 
> > 2.31.1
> 
> LGTM, thanks.

please apply these patches if they look good to you

[...]
diff mbox series

Patch

diff --git a/libswresample/aarch64/audio_convert_neon.S b/libswresample/aarch64/audio_convert_neon.S
index 74feff448a..6d789b16d2 100644
--- a/libswresample/aarch64/audio_convert_neon.S
+++ b/libswresample/aarch64/audio_convert_neon.S
@@ -23,6 +23,7 @@ 
 #include "libavutil/aarch64/asm.S"
 
 function swri_oldapi_conv_flt_to_s16_neon, export=1
+oldapi_conv_flt_to_s16_neon:
         subs            x2,  x2,  #8
         ld1             {v0.4s}, [x1],  #16
         fcvtzs          v4.4s,  v0.4s,  #31
@@ -67,6 +68,7 @@  function swri_oldapi_conv_flt_to_s16_neon, export=1
 endfunc
 
 function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1
+oldapi_conv_fltp_to_s16_2ch_neon:
         ldp             x4,  x5,  [x1]
         subs            x2,  x2,  #8
         ld1             {v0.4s},  [x4], #16
@@ -131,10 +133,10 @@  endfunc
 
 function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1
         cmp             w3,  #2
-        b.eq            X(swri_oldapi_conv_fltp_to_s16_2ch_neon)
+        b.eq            oldapi_conv_fltp_to_s16_2ch_neon
         b.gt            1f
         ldr             x1,  [x1]
-        b               X(swri_oldapi_conv_flt_to_s16_neon)
+        b               oldapi_conv_flt_to_s16_neon
 1:
         cmp             w3,  #4
         lsl             x12, x3,  #1