Opened 9 years ago
Closed 9 years ago
#5234 closed defect (worksforme)
Debug builds would not link unless sse4 and ssse3 are disabled
Reported by: | Міхаіл | 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)
Change History (4)
by , 9 years ago
comment:1 by , 9 years ago
The work-around is to add explicit --disable-sse4
and --disable-ssse3
to configure-flags.
comment:3 by , 9 years ago
Resolution: | → worksforme |
---|---|
Status: | new → 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?
Longer build-log snippet