ffmpeg armhf uses NEON instructions

Package: ffmpeg

Version: 7:6.0-6

Severity: normal

Dear maintainer,

The current armhf build of ffmpeg uses NEON instructions, which
prevents it from running on some processors. See log below:

$ ulimit -c unlimited
$ ffmpeg
Illegal instruction (core dumped)
$ gdb /usr/bin/ffmpeg core
GNU gdb (Debian 13.2-1) 13.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type “show copying” and “show warranty” for details.
This GDB was configured as “arm-linux-gnueabihf”.
Type “show configuration” for configuration details.
For bug reporting instructions, please see:
<www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<www.gnu.org/software/gdb/documentation/>.

For help, type “help”.
Type “apropos word” to search for commands related to “word”…
Reading symbols from /usr/bin/ffmpeg…
(No debugging symbols found in /usr/bin/ffmpeg)
[New LWP 988]
[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib/arm-linux-gnueabihf/libthread_db.so.1”.
Core was generated by `ffmpeg’.
Program terminated with signal SIGILL, Illegal instruction.
#0 0xb4ba6fbe in ?? () from /lib/arm-linux-gnueabihf/libhwy.so.1
(gdb) layout asm
┌─────────────────────────────────────────────────────────┐
│ > 0xb4ba6fbe vmov.i32 d16, #0 @ 0x00000000 │
│ 0xb4ba6fc2 movs r6, #0 │
│ 0xb4ba6fc4 str r6, [sp, #16] │
│ 0xb4ba6fc6 ldr r2, [r1, r2] │
│ 0xb4ba6fc8 ldr r2, [r2, #0] │
│ 0xb4ba6fca str r2, [sp, #44] @ 0x2c │
│ 0xb4ba6fcc mov.w r2, #0 │
│ 0xb4ba6fd0 vstr d16, [sp, #8] │
│ 0xb4ba6fd4 cmp.w r9, #0 │
│ 0xb4ba6fd8 beq.w 0xb4ba7180 │
│ 0xb4ba6fdc mov r4, r0 │
│ 0xb4ba6fde mov r5, r6 │
│ 0xb4ba6fe0 mov r8, r6 │
│ 0xb4ba6fe2 mov.w r10, #1 │
│ 0xb4ba6fe6 add.w r11, sp, #24 │
│ 0xb4ba6fea sub.w r3, r0, #8 │
│ 0xb4ba6fee str r3, [sp, #4] │
│ 0xb4ba6ff0 ldr r2, [sp, #4] │
│ 0xb4ba6ff2 subs r3, r5, r6 │
│ 0xb4ba6ff4 mov.w r12, r3, asr #6 │
│ 0xb4ba6ff8 asrs r0, r3, #4 │
│ 0xb4ba6ffa ldr.w r1, [r2, #8]! │
│ 0xb4ba6ffe cmp.w r12, #0 │
└─────────────────────────────────────────────────────────┘
multi-thre Thread 0xb3031020 ( In: L?? PC: 0xb4ba6fbe
(gdb) exit
$ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 50.00
Features : half thumb fastmult vfp edsp thumbee vfpv3 tls idivt
vfpd32 lpae
CPU implementer : 0x56
CPU architecture: 7
CPU variant : 0x2
CPU part : 0x584
CPU revision : 2

processor : 1
model name : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 50.00
Features : half thumb fastmult vfp edsp thumbee vfpv3 tls idivt
vfpd32 lpae
CPU implementer : 0x56
CPU architecture: 7
CPU variant : 0x2
CPU part : 0x584
CPU revision : 2

Hardware : Marvell Armada 370/XP (Device Tree)
Revision : 0000
Serial : 0000000000000000

Read more here: Source link