Opened 10 days ago

Closed 9 days ago

#11206 closed defect (worksforme)

libavcodec/libavcodec.so: undefined reference to `ff_vvc_dsp_init_x86'

Reported by: th0ma7 Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: th0ma7 Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

I'm maintaining ffmpeg within the SynoCommunity for Synology NAS. I've been preparing the build environment for providing ffmpeg 7.x but hit the following issue on i686 & x86_64 that never occurred with previous versions.

LD	libavdevice/libavdevice.so.61
LD	ffmpeg_g
LD	ffprobe_g
libavcodec/libavcodec.so: undefined reference to `ff_vvc_dsp_init_x86'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:136: ffprobe_g] Error 1
make[4]: *** Waiting for unfinished jobs....
libavcodec/libavcodec.so: undefined reference to `ff_vvc_dsp_init_x86'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:136: ffmpeg_g] Error 1

It builds ok for other arches (armv7, v8, ppc) but i'm hitting this issue. My PR can be found here: https://github.com/SynoCommunity/spksrc/pull/6239

Note that from my readings I tought that disable avx would fix things as I am cross-compiling and resulting binary must be compatible for apollolake type processors. Although adding --disable-avx did not work (neither adding the other --disable-avx2 --disable-avx512 --disable-avx512icl).

Help would be greatly appreciated, much thnx!

Change History (3)

comment:1 by th0ma7, 9 days ago

Foudn that using the --disable-decoder=vvc solves the immediate issue, with the constraint of missing, well, the vvc decoder.

comment:2 by th0ma7, 9 days ago

I believe my issue is now solved, thnx to @nyanmisaka with pointers provided here https://github.com/SynoCommunity/spksrc/pull/6239#issuecomment-2376672474

It turns out that ffmpeg $(ARCH) variable used gets superseeded with our framework spksrc $(ARCH) which differs. Therefore we have a patch to rename ffmpeg's $(ARCH) to $(FFMPEG_ARCH).

Our previous version of the patch worked well until v7 whereas additional files needs to be adapted for it to work properly. This now results in the following patch: https://github.com/SynoCommunity/spksrc/pull/6239/files#diff-a9561f9de7fbb20f09fd7d5b95055801f6e3c9c55238accf73fe1d6d4080f54c

I'd much rather have to not be patching ffmpeg for this wherease ffmpeg could renamed their ARCH variable name but hey, things are working otherwise at limited costs.

Thnx for the help :)

comment:3 by th0ma7, 9 days ago

Resolution: worksforme
Status: newclosed
Note: See TracTickets for help on using tickets.