diff mbox series

ffmpeg: Disable asm optimizations on x86

Message ID 20241013191703.317096-1-raj.khem@gmail.com
State New
Headers show
Series ffmpeg: Disable asm optimizations on x86 | expand

Commit Message

Khem Raj Oct. 13, 2024, 7:17 p.m. UTC
disable asm code if PIC is required, as the provided asm
decidedly is not PIC for x86.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@arm.com>
---
 meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb | 2 ++
 1 file changed, 2 insertions(+)

Comments

Alexander Kanavin Oct. 13, 2024, 7:37 p.m. UTC | #1
Wouldn’t this be a build time error? Why is it not seen on the ab?

Alex

On Sun 13. Oct 2024 at 21.17, Khem Raj via lists.openembedded.org <raj.khem=
gmail.com@lists.openembedded.org> wrote:

> disable asm code if PIC is required, as the provided asm
> decidedly is not PIC for x86.
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> Cc: Ross Burton <ross.burton@arm.com>
> ---
>  meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
> b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
> index af66104ebf3..3c66851b8d2 100644
> --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
> +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
> @@ -129,6 +129,8 @@ EXTRA_OECONF = " \
>  "
>
>  EXTRA_OECONF:append:linux-gnux32 = " --disable-asm"
> +# --enable-pic is used and x86 assembly is not PIC on x86
> +EXTRA_OECONF:append:x86 = " --disable-asm"
>
>  EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6',
> '--disable-mips64r2 --disable-mips32r2', '', d)}"
>  EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2',
> '--disable-mips64r6 --disable-mips32r6', '', d)}"
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#205724):
> https://lists.openembedded.org/g/openembedded-core/message/205724
> Mute This Topic: https://lists.openembedded.org/mt/108988536/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Khem Raj Oct. 13, 2024, 8:24 p.m. UTC | #2
On Sun, Oct 13, 2024 at 12:37 PM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> Wouldn’t this be a build time error? Why is it not seen on the ab?

It is a build time error with lld linker for sure I am not sure why we
don't see it with GNU ld.

| i686-yoe-linux-ld.lld: error: relocation R_386_32 cannot be used
against local symbol; recompile with -fPIC
| >>> defined in libavutil/x86/tx_float.o
| >>> referenced by tx_float.asm:228 (src/libavutil/x86/tx_float.asm:228)
| >>>               libavutil/x86/tx_float.o:(.text+0x668)

The files in question are compiled using nasm assembler for x86 and
x86_64 here is full log
https://gist.github.com/kraj/12d633834d032d19005cdbac281390b7

>
> Alex
>
> On Sun 13. Oct 2024 at 21.17, Khem Raj via lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org> wrote:
>>
>> disable asm code if PIC is required, as the provided asm
>> decidedly is not PIC for x86.
>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> Cc: Ross Burton <ross.burton@arm.com>
>> ---
>>  meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
>> index af66104ebf3..3c66851b8d2 100644
>> --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
>> +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
>> @@ -129,6 +129,8 @@ EXTRA_OECONF = " \
>>  "
>>
>>  EXTRA_OECONF:append:linux-gnux32 = " --disable-asm"
>> +# --enable-pic is used and x86 assembly is not PIC on x86
>> +EXTRA_OECONF:append:x86 = " --disable-asm"
>>
>>  EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
>>  EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#205724): https://lists.openembedded.org/g/openembedded-core/message/205724
>> Mute This Topic: https://lists.openembedded.org/mt/108988536/1686489
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
Ross Burton Oct. 14, 2024, 11:02 a.m. UTC | #3
On 13 Oct 2024, at 20:17, Khem Raj <raj.khem@gmail.com> wrote:
> 
> disable asm code if PIC is required, as the provided asm
> decidedly is not PIC for x86.

I think I’d prefer to see a revert of the textrel change I sent, with a comment explaining how to trigger it.  I tried, but didn’t considering trying ldd.

Ross
Khem Raj Oct. 14, 2024, 5:47 p.m. UTC | #4
On Mon, Oct 14, 2024 at 4:02 AM Ross Burton <Ross.Burton@arm.com> wrote:
>
> On 13 Oct 2024, at 20:17, Khem Raj <raj.khem@gmail.com> wrote:
> >
> > disable asm code if PIC is required, as the provided asm
> > decidedly is not PIC for x86.
>
> I think I’d prefer to see a revert of the textrel change I sent, with a comment explaining how to trigger it.  I tried, but didn’t considering trying ldd.

well, revert is not required we should just apply this patch since the problem
is only on x86/32bit + nasm assembler. For reproducer here is one

https://termbin.com/zbzg

I hope that should make it clear ?

>
> Ross
diff mbox series

Patch

diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
index af66104ebf3..3c66851b8d2 100644
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.0.2.bb
@@ -129,6 +129,8 @@  EXTRA_OECONF = " \
 "
 
 EXTRA_OECONF:append:linux-gnux32 = " --disable-asm"
+# --enable-pic is used and x86 assembly is not PIC on x86
+EXTRA_OECONF:append:x86 = " --disable-asm"
 
 EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
 EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"