#11608 closed defect (invalid)

libavfilter undefined symbol

Reported by: Ferdi Scholten Owned by:
Priority: normal Component: avfilter
Version: git-master Keywords: LTO
Cc: Ferdi Scholten Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug: linking ffmpeg causes ld to report the following:

/usr/bin/ld: libavfilter/libavfilter.so: undefined reference to `pl_cache_set_file'
/usr/bin/ld: libavfilter/libavfilter.so: undefined reference to `pl_cache_get_file'

when linking with mold the build completes, but running FFmpeg wit a filter gives this message:

ffmpeg: symbol lookup error: /home/ferdi/ffmpeg_build/lib/libavfilter.so.11: undefined symbol: pl_cache_set_file

How to reproduce:
Build FFmpeg with the following config:

./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include -I/usr/local/cuda/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib -L/usr/local/cuda/lib64" \
  --extra-libs="-lpthread -lm" \
  --ld="g++" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-gnutls \
  --enable-libaom \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libsvtav1 \
  --enable-libdav1d \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree \
  --enable-libvmaf \
  --enable-lto \
  --enable-libvpl \
  --enable-vulkan \
  --enable-libshaderc \
  --enable-opencl \
  --enable-vaapi \
  --enable-opengl \
  --enable-openal \
  --enable-libplacebo \
  --enable-shared \
  --disable-debug \
  --disable-avx512 \
  --disable-avx512icl \
  --enable-libdvdnav \
  --enable-libdvdread \
  --enable-cuda-nvcc \
  --enable-libnpp


Change History (4)

comment:1 by Ferdi Scholten, 16 months ago

Bisecting blamed commit 559317cc13577cebffc544c5b221819baaf957c4 "avfilter/vf_libplacebo: add shader_cache option"

Reverting this commit resolves the problem for me.

comment:2 by Timo R., 16 months ago

This likely is caused by the same issue I suspect in your other ticket.
Your libplacebo headers don't match your library, hence ffmpeg gets built with PL_API_VER >= 351, but the library it links against is older.

comment:3 by Ferdi Scholten, 16 months ago

See #11607 for solution.

This can be closed.

comment:4 by Timo R., 16 months ago

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