[FFmpeg-trac] #8986(swscale:closed): Compilation fails on x86 when only mmx optimizations are enabled
FFmpeg
trac at avcodec.org
Sat Nov 14 16:42:03 EET 2020
#8986: Compilation fails on x86 when only mmx optimizations are enabled
------------------------------------+-----------------------------------
Reporter: maikenakka | Owner:
Type: defect | Status: closed
Priority: normal | Component: swscale
Version: git-master | Resolution: fixed
Keywords: regression | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 0 |
------------------------------------+-----------------------------------
Changes (by cehoyos):
* keywords: => regression
* status: new => closed
* resolution: => fixed
* reproduced: 0 => 1
Old description:
> I ran configure with every cpu optimization disabled except for mmx. This
> results in the following errors with GCC 9.3.0:
>
> CC libswscale/x86/yuv2rgb.o
> libswscale/x86/yuv2rgb.c: In function "ff_yuv2rgb_init_x86":
> libswscale/x86/yuv2rgb.c:91:24: error: "yuva420_rgb32_ssse3" undeclared
> (first use in this function); did you mean "yuva420_rgb32_mmx"?
> 91 | return yuva420_rgb32_ssse3;
> | ^~~~~~~~~~~~~~~~~~~
> | yuva420_rgb32_mmx
> libswscale/x86/yuv2rgb.c:91:24: note: each undeclared identifier is
> reported only once for each function it appears in
> libswscale/x86/yuv2rgb.c:95:24: error: "yuv420_rgb32_ssse3" undeclared
> (first use in this function); did you mean "yuv420_rgb32_mmx"?
> 95 | return yuv420_rgb32_ssse3;
> | ^~~~~~~~~~~~~~~~~~
> | yuv420_rgb32_mmx
> libswscale/x86/yuv2rgb.c:99:24: error: "yuva420_bgr32_ssse3" undeclared
> (first use in this function); did you mean "yuva420_bgr32_mmx"?
> 99 | return yuva420_bgr32_ssse3;
> | ^~~~~~~~~~~~~~~~~~~
> | yuva420_bgr32_mmx
> libswscale/x86/yuv2rgb.c:103:24: error: "yuv420_bgr32_ssse3" undeclared
> (first use in this function); did you mean "yuv420_bgr32_mmx"?
> 103 | return yuv420_bgr32_ssse3;
> | ^~~~~~~~~~~~~~~~~~
> | yuv420_bgr32_mmx
> libswscale/x86/yuv2rgb.c:105:20: error: "yuv420_rgb24_ssse3" undeclared
> (first use in this function); did you mean "yuv420_rgb24_mmx"?
> 105 | return yuv420_rgb24_ssse3;
> | ^~~~~~~~~~~~~~~~~~
> | yuv420_rgb24_mmx
> libswscale/x86/yuv2rgb.c:107:20: error: "yuv420_bgr24_ssse3" undeclared
> (first use in this function); did you mean "yuv420_bgr24_mmx"?
> 107 | return yuv420_bgr24_ssse3;
> | ^~~~~~~~~~~~~~~~~~
> | yuv420_bgr24_mmx
> libswscale/x86/yuv2rgb.c:109:20: error: "yuv420_rgb16_ssse3" undeclared
> (first use in this function); did you mean "yuv420_rgb16_mmx"?
> 109 | return yuv420_rgb16_ssse3;
> | ^~~~~~~~~~~~~~~~~~
> | yuv420_rgb16_mmx
> libswscale/x86/yuv2rgb.c:111:20: error: "yuv420_rgb15_ssse3" undeclared
> (first use in this function); did you mean "yuv420_rgb15_mmx"?
> 111 | return yuv420_rgb15_ssse3;
> | ^~~~~~~~~~~~~~~~~~
> | yuv420_rgb15_mmx
> libswscale/x86/yuv2rgb.c:118:20: error: "yuv420_rgb24_mmxext" undeclared
> (first use in this function); did you mean "yuv420_rgb24_mmx"?
> 118 | return yuv420_rgb24_mmxext;
> | ^~~~~~~~~~~~~~~~~~~
> | yuv420_rgb24_mmx
> libswscale/x86/yuv2rgb.c:120:20: error: "yuv420_bgr24_mmxext" undeclared
> (first use in this function); did you mean "yuv420_bgr24_mmx"?
> 120 | return yuv420_bgr24_mmxext;
> | ^~~~~~~~~~~~~~~~~~~
> | yuv420_bgr24_mmx
> make: *** [ffbuild/common.mak:67: libswscale/x86/yuv2rgb.o] Error 1
>
> These are my configure options:
> ./configure --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib
> --docdir=/usr/share/doc/ffmpeg-4.3.1/html --mandir=/usr/share/man
> --enable-shared --cc=i686-pc-linux-gnu-gcc --cxx=i686-pc-linux-gnu-g++
> --ar=i686-pc-linux-gnu-ar --nm=i686-pc-linux-gnu-nm --ranlib=i686-pc-
> linux-gnu-ranlib --pkg-config=i686-pc-linux-gnu-pkg-config
> --optflags='-O2 -march=native -pipe -fomit-frame-pointer' --disable-
> static --enable-avfilter --enable-avresample --disable-stripping
> --disable-optimizations --disable-libcelt --disable-indev=v4l2 --disable-
> outdev=v4l2 --disable-indev=oss --disable-indev=jack --disable-outdev=oss
> --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-
> gcrypt --enable-gnutls --disable-gmp --enable-gpl --disable-hardcoded-
> tables --enable-iconv --disable-libtls --disable-libxml2 --disable-lzma
> --enable-network --disable-opencl --disable-openssl --enable-postproc
> --disable-libsmbclient --disable-ffplay --disable-sdl2 --disable-vaapi
> --disable-vdpau --disable-vulkan --disable-xlib --disable-libxcb
> --disable-libxcb-shm --disable-libxcb-xfixes --enable-zlib --enable-
> libcdio --disable-libiec61883 --disable-libdc1394 --enable-libcaca
> --disable-openal --disable-opengl --disable-libv4l2 --disable-libpulse
> --disable-libdrm --disable-libjack --disable-libopencore-amrwb --disable-
> libopencore-amrnb --disable-libcodec2 --enable-libdav1d --disable-libfdk-
> aac --disable-libopenjpeg --disable-libbluray --disable-libgme --disable-
> libgsm --disable-libaribb24 --disable-mmal --disable-libmodplug
> --disable-libopus --disable-libilbc --disable-librtmp --disable-libssh
> --disable-libspeex --disable-libsrt --disable-librsvg --disable-ffnvcodec
> --enable-libvorbis --disable-libvpx --disable-libzvbi --disable-appkit
> --disable-libbs2b --disable-chromaprint --disable-cuda-llvm --disable-
> libflite --disable-frei0r --disable-libfribidi --disable-fontconfig
> --disable-ladspa --disable-libass --disable-libtesseract --disable-lv2
> --disable-libfreetype --disable-libvidstab --disable-librubberband
> --disable-libzmq --disable-libzimg --disable-libsoxr --enable-pthreads
> --disable-libvo-amrwbenc --enable-libmp3lame --disable-libkvazaar
> --disable-libaom --disable-libopenh264 --disable-librav1e --disable-
> libsnappy --disable-libtheora --disable-libtwolame --disable-libwebp
> --disable-libx264 --disable-libx265 --disable-libxvid --disable-armv5te
> --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-
> vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2 --disable-
> mipsfpu --disable-altivec --disable-vsx --disable-power8 --disable-
> amd3dnow --disable-amd3dnowext --disable-aesni --disable-avx --disable-
> avx2 --disable-fma3 --disable-fma4 --disable-mmxext --disable-sse
> --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-
> sse42 --disable-xop --cpu=host --disable-doc --disable-htmlpages
> --enable-manpages
>
> It compiles fine if MMX is disabled as well.
> This was on commit 5bb313e72...
> Same error shows up in 4.3.1
New description:
I ran configure with every cpu optimization disabled except for mmx. This
results in the following errors with GCC 9.3.0:
{{{
CC libswscale/x86/yuv2rgb.o
libswscale/x86/yuv2rgb.c: In function "ff_yuv2rgb_init_x86":
libswscale/x86/yuv2rgb.c:91:24: error: "yuva420_rgb32_ssse3" undeclared
(first use in this function); did you mean "yuva420_rgb32_mmx"?
91 | return yuva420_rgb32_ssse3;
| ^~~~~~~~~~~~~~~~~~~
| yuva420_rgb32_mmx
libswscale/x86/yuv2rgb.c:91:24: note: each undeclared identifier is
reported only once for each function it appears in
libswscale/x86/yuv2rgb.c:95:24: error: "yuv420_rgb32_ssse3" undeclared
(first use in this function); did you mean "yuv420_rgb32_mmx"?
95 | return yuv420_rgb32_ssse3;
| ^~~~~~~~~~~~~~~~~~
| yuv420_rgb32_mmx
libswscale/x86/yuv2rgb.c:99:24: error: "yuva420_bgr32_ssse3" undeclared
(first use in this function); did you mean "yuva420_bgr32_mmx"?
99 | return yuva420_bgr32_ssse3;
| ^~~~~~~~~~~~~~~~~~~
| yuva420_bgr32_mmx
libswscale/x86/yuv2rgb.c:103:24: error: "yuv420_bgr32_ssse3" undeclared
(first use in this function); did you mean "yuv420_bgr32_mmx"?
103 | return yuv420_bgr32_ssse3;
| ^~~~~~~~~~~~~~~~~~
| yuv420_bgr32_mmx
libswscale/x86/yuv2rgb.c:105:20: error: "yuv420_rgb24_ssse3" undeclared
(first use in this function); did you mean "yuv420_rgb24_mmx"?
105 | return yuv420_rgb24_ssse3;
| ^~~~~~~~~~~~~~~~~~
| yuv420_rgb24_mmx
libswscale/x86/yuv2rgb.c:107:20: error: "yuv420_bgr24_ssse3" undeclared
(first use in this function); did you mean "yuv420_bgr24_mmx"?
107 | return yuv420_bgr24_ssse3;
| ^~~~~~~~~~~~~~~~~~
| yuv420_bgr24_mmx
libswscale/x86/yuv2rgb.c:109:20: error: "yuv420_rgb16_ssse3" undeclared
(first use in this function); did you mean "yuv420_rgb16_mmx"?
109 | return yuv420_rgb16_ssse3;
| ^~~~~~~~~~~~~~~~~~
| yuv420_rgb16_mmx
libswscale/x86/yuv2rgb.c:111:20: error: "yuv420_rgb15_ssse3" undeclared
(first use in this function); did you mean "yuv420_rgb15_mmx"?
111 | return yuv420_rgb15_ssse3;
| ^~~~~~~~~~~~~~~~~~
| yuv420_rgb15_mmx
libswscale/x86/yuv2rgb.c:118:20: error: "yuv420_rgb24_mmxext" undeclared
(first use in this function); did you mean "yuv420_rgb24_mmx"?
118 | return yuv420_rgb24_mmxext;
| ^~~~~~~~~~~~~~~~~~~
| yuv420_rgb24_mmx
libswscale/x86/yuv2rgb.c:120:20: error: "yuv420_bgr24_mmxext" undeclared
(first use in this function); did you mean "yuv420_bgr24_mmx"?
120 | return yuv420_bgr24_mmxext;
| ^~~~~~~~~~~~~~~~~~~
| yuv420_bgr24_mmx
make: *** [ffbuild/common.mak:67: libswscale/x86/yuv2rgb.o] Error 1
}}}
These are my configure options:
./configure --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib
--docdir=/usr/share/doc/ffmpeg-4.3.1/html --mandir=/usr/share/man
--enable-shared --cc=i686-pc-linux-gnu-gcc --cxx=i686-pc-linux-gnu-g++
--ar=i686-pc-linux-gnu-ar --nm=i686-pc-linux-gnu-nm --ranlib=i686-pc-
linux-gnu-ranlib --pkg-config=i686-pc-linux-gnu-pkg-config --optflags='-O2
-march=native -pipe -fomit-frame-pointer' --disable-static --enable-
avfilter --enable-avresample --disable-stripping --disable-optimizations
--disable-libcelt --disable-indev=v4l2 --disable-outdev=v4l2 --disable-
indev=oss --disable-indev=jack --disable-outdev=oss --enable-bzlib
--disable-runtime-cpudetect --disable-debug --disable-gcrypt --enable-
gnutls --disable-gmp --enable-gpl --disable-hardcoded-tables --enable-
iconv --disable-libtls --disable-libxml2 --disable-lzma --enable-network
--disable-opencl --disable-openssl --enable-postproc --disable-
libsmbclient --disable-ffplay --disable-sdl2 --disable-vaapi --disable-
vdpau --disable-vulkan --disable-xlib --disable-libxcb --disable-libxcb-
shm --disable-libxcb-xfixes --enable-zlib --enable-libcdio --disable-
libiec61883 --disable-libdc1394 --enable-libcaca --disable-openal
--disable-opengl --disable-libv4l2 --disable-libpulse --disable-libdrm
--disable-libjack --disable-libopencore-amrwb --disable-libopencore-amrnb
--disable-libcodec2 --enable-libdav1d --disable-libfdk-aac --disable-
libopenjpeg --disable-libbluray --disable-libgme --disable-libgsm
--disable-libaribb24 --disable-mmal --disable-libmodplug --disable-libopus
--disable-libilbc --disable-librtmp --disable-libssh --disable-libspeex
--disable-libsrt --disable-librsvg --disable-ffnvcodec --enable-libvorbis
--disable-libvpx --disable-libzvbi --disable-appkit --disable-libbs2b
--disable-chromaprint --disable-cuda-llvm --disable-libflite --disable-
frei0r --disable-libfribidi --disable-fontconfig --disable-ladspa
--disable-libass --disable-libtesseract --disable-lv2 --disable-
libfreetype --disable-libvidstab --disable-librubberband --disable-libzmq
--disable-libzimg --disable-libsoxr --enable-pthreads --disable-libvo-
amrwbenc --enable-libmp3lame --disable-libkvazaar --disable-libaom
--disable-libopenh264 --disable-librav1e --disable-libsnappy --disable-
libtheora --disable-libtwolame --disable-libwebp --disable-libx264
--disable-libx265 --disable-libxvid --disable-armv5te --disable-armv6
--disable-armv6t2 --disable-neon --disable-vfp --disable-vfpv3 --disable-
armv8 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-
altivec --disable-vsx --disable-power8 --disable-amd3dnow --disable-
amd3dnowext --disable-aesni --disable-avx --disable-avx2 --disable-fma3
--disable-fma4 --disable-mmxext --disable-sse --disable-sse2 --disable-
sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-xop
--cpu=host --disable-doc --disable-htmlpages --enable-manpages
It compiles fine if MMX is disabled as well.
This was on commit 5bb313e72...
Same error shows up in 4.3.1
--
Comment:
Should be fixed in 46e362b76551d6587747e6a41e97b1673df2ada9, thank you for
the report!
For future tickets, please try hard to simplify the configure line, in
this case for example `--disable-mmxext` and `--disable-ssse3`
And please understand that your configure line looks completely insane,
are you sure that you know what you are doing?
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8986#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list