Opened 3 years ago

Closed 3 years ago

#5234 closed defect (worksforme)

Debug builds would not link unless sse4 and ssse3 are disabled

Reported by: mi Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

After running configure thus

% env CFLAGS="-march=core2 -g" COMPILER_PATH=/opt/bin SDL_CONFIG=/opt/bin/sdl-config MAKE=gmake ac_cv_path_PERL=/opt/bin/perl ac_cv_path_PERL_PATH=/opt/bin/perl PKG_CONFIG=pkgconf XDG_DATA_HOME=/tmp/usr/ports/multimedia/ffmpeg/work XDG_CONFIG_HOME=/tmp/usr/ports/multimedia/ffmpeg/work HOME=/tmp/usr/ports/multimedia/ffmpeg/work SHELL=/bin/sh CONFIG_SHELL=/bin/sh /tmp/ffmpeg/configure --prefix="/opt" --mandir="/opt/man" --datadir="/opt/share/ffmpeg" --pkgconfigdir="/opt/libdata/pkgconfig" --enable-shared --enable-gpl --enable-postproc --enable-avfilter --enable-avresample --enable-pthreads --disable-libutvideo --disable-libsoxr --cc="cc" --extra-cflags="-msse -I/opt/include/vorbis -I/opt/include" --extra-ldflags="-L/opt/lib " --extra-libs="-lpthread" --enable-memalign-hack --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcelt --disable-libdc1394 --disable-debug --disable-htmlpages --enable-libfaac --enable-libfdk-aac --disable-ffserver --enable-libflite --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libfribidi --enable-libgme --enable-libgsm --enable-iconv --enable-libilbc --disable-indev=jack --disable-ladspa --enable-libmp3lame --enable-libbluray --enable-mmx --disable-libmodplug --enable-openal --enable-opencl --enable-opengl --enable-libopenh264 --enable-libopenjpeg --enable-libopus --disable-libpulse --disable-indev=pulse --disable-outdev=pulse --enable-runtime-cpudetect --enable-librtmp --enable-libschroedinger --enable-ffplay --enable-libsmbclient --enable-libsnappy --enable-libspeex --enable-sse --enable-libssh --enable-libtheora --enable-libtwolame --disable-libv4l2 --disable-indev=v4l2 --disable-outdev=v4l2 --enable-vaapi --disable-vdpau --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libvpx --enable-libwavpack --enable-libwebp --enable-x11grab --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-libzmq --disable-libzvbi --disable-gnutls --enable-openssl --enable-version3 --enable-nonfree --disable-libopenjpeg --disable-libflite --disable-optimizations --enable-debug=3

I get the following errors at the end of the build:

...
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_epel_hv8_12_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_w_epel_hv16_12_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_w_qpel_v32_10_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_qpel_hv64_8_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_w_qpel_v24_12_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_qpel_h16_12_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_w_qpel_hv12_12_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_w_epel_v12_10_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_uni_w_epel_hv12_10_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_uni_w_qpel_hv24_10_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_uni_epel_h16_10_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_uni_w_qpel_h8_10_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_w_epel_hv6_12_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_epel_h8_12_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_qpel_hv32_12_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_uni_qpel_h64_10_sse4'
libavcodec/libavcodec.so: undefined reference to `ff_hevc_put_hevc_bi_qpel_h48_8_sse4'
cc: error: linker command failed with exit code 1 (use -v to see invocation)

Attachments (1)

l (235.9 KB) - added by mi 3 years ago.
Longer build-log snippet

Download all attachments as: .zip

Change History (4)

Changed 3 years ago by mi

  • Attachment l added

Longer build-log snippet

comment:1 Changed 3 years ago by mi

The work-around is to add explicit --disable-sse4 and --disable-ssse3 to configure-flags.

comment:2 Changed 3 years ago by mi

BTW, should not --disable-stripping be implicit in --enable-debugging?

comment:3 Changed 3 years ago by cehoyos

  • Resolution set to worksforme
  • Status changed from new to closed

I cannot reproduce this issue with the following configure line:

$ env CFLAGS="-march=core2 -g" COMPILER_PATH=/opt/bin SDL_CONFIG=/opt/bin/sdl-config MAKE=gmake ac_cv_path_PERL=/opt/bin/perl ac_cv_path_PERL_PATH=/opt/bin/perl PKG_CONFIG=pkgconf XDG_DATA_HOME=/tmp/usr/ports/multimedia/ffmpeg/work XDG_CONFIG_HOME=/tmp/usr/ports/multimedia/ffmpeg/work HOME=/tmp/usr/ports/multimedia/ffmpeg/work SHELL=/bin/sh CONFIG_SHELL=/bin/sh ./configure --prefix="/opt" --mandir="/opt/man" --datadir="/opt/share/ffmpeg" --pkgconfigdir="/opt/libdata/pkgconfig" --enable-shared --enable-gpl --enable-postproc --enable-avfilter --enable-avresample --enable-pthreads --disable-libutvideo --disable-libsoxr --cc="cc" --extra-cflags="-msse -I/opt/include/vorbis -I/opt/include" --extra-ldflags="-L/opt/lib " --extra-libs="-lpthread" --enable-memalign-hack --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcelt --disable-libdc1394 --disable-debug --disable-htmlpages --enable-libfaac --disable-ffserver --enable-libflite --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libfribidi --enable-libgme --enable-libgsm --enable-iconv --disable-indev=jack --disable-ladspa --enable-libmp3lame --enable-libbluray --enable-mmx --disable-libmodplug --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --disable-libpulse --disable-indev=pulse --disable-outdev=pulse --enable-runtime-cpudetect --enable-librtmp --enable-libschroedinger --enable-ffplay --enable-libsmbclient --enable-libspeex --enable-sse --enable-libssh --enable-libtheora --enable-libtwolame --disable-libv4l2 --disable-indev=v4l2 --disable-outdev=v4l2 --enable-vaapi --disable-vdpau --enable-libvorbis --enable-libvo-amrwbenc --enable-libvpx --enable-libwavpack --enable-x11grab --enable-libx264 --enable-libxcb --enable-libxvid --disable-libzvbi --disable-gnutls --enable-openssl --enable-version3 --enable-nonfree --disable-libopenjpeg --disable-libflite --disable-optimizations --enable-debug=3

The main difference to your configure line is that I build inside the source directory: If this makes a difference, it would indeed be a major (unknown) issue.

A few comments about the configure line:

env CFLAGS="-march=core2 -g"

This is not a good idea, use --cpu=core2 instead (it has the advantage of being applied not only to the C file compilation), debugging is the default and can be set with --enable-debug

COMPILER_PATH=/opt/bin
MAKE=gmake
ac_cv_path_PERL=/opt/bin/perl
ac_cv_path_PERL_PATH=/opt/bin/perl
PKG_CONFIG=pkgconf
XDG_DATA_HOME=/tmp/usr/ports/multimedia/ffmpeg/work
XDG_CONFIG_HOME=/tmp/usr/ports/multimedia/ffmpeg/work
HOME=/tmp/usr/ports/multimedia/ffmpeg/work

I don't think these have any effect (at least I can't reproduce an effect).
Or do I miss something (I may not have tested every single one of them)?

--enable-postproc
--enable-pthreads
--disable-libutvideo
--disable-libsoxr
--disable-libdc1394
--enable-runtime-cpudetect
--disable-libfribidi
--enable-iconv
--disable-ladspa
--disable-libmodplug
--disable-libpulse
--disable-libv4l2
--enable-vaapi
--disable-libzvbi
--disable-gnutls
--disable-libopenjpeg
--disable-libflite

These are the default (at least for GPL, without GPL, --enable-postproc doesn't work). Adding them to configure makes debugging (like in this ticket and ticket #5231 needlessly difficult, I therefore suggest to remove them.
Note that configure options like --enable-iconv do not work as you may expect them to, they simply have no effect (no matter if iconv is available or not).

--extra-libs="-lpthread"

If this is needed, I believe there is a bug in configure that we should fix.

--enable-memalign-hack

This surprises me most: It was needed on old Windows versions (but isn't anymore since years) and I didn't know it was ever used on other systems. I originally wanted to suggest to test it in ticket #5231 but if you used it until now I suggest to remove it, it has a (slight) performance penalty afaict.

--disable-indev=jack
--disable-indev=pulse
--disable-outdev=pulse
--disable-indev=v4l2
--disable-outdev=v4l2

Are there bugs that we don't know about?

--enable-libfaac

(libfdk has significantly better quality)

--enable-mmx
--enable-sse

These are debug options, please don't use them.

--extra-cflags="-msse

Do you know why this is added? Does it have any positive effects?

Note: See TracTickets for help on using tickets.