#8591: vf_deshake_opencl fails to compile on ppc64le/POWER8 ----------------------------------+-------------------------------------- Reporter: rathann | Type: defect Status: new | Priority: normal Component: avfilter | Version: git-master Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | ----------------------------------+-------------------------------------- Summary of the bug: FFmpeg snapshot from 2020-02-20 fails to compile on ppc64le/POWER8 on Fedora rawhide with gcc 10.0.1. There were no commits to libavfilter/vf_deshake_opencl.c since then, so this applies to git master HEAD, too. How to reproduce: {{{ $ ./configure --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=ppc64le '--optflags=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord- gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection' '--extra-ldflags=-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' '--extra-cflags= ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo- amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable- fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzvbi --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect --cpu=power8 --enable-pic ... $ /usr/bin/make -O -j2 V=1 VERBOSE=1 V=1 ... gcc -I. -I./ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DZLIB_CONST -DHAVE_AV_CONFIG_H -DBUILDING_avfilter -mcpu=power8 -std=c11 -fomit-frame- pointer -fPIC -maltivec -mabi=altivec -mvsx -pthread -I/usr/include/p11-kit-1 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/fribidi -I/usr/include/openjpeg-2.3 -I/usr/include/opus -I/usr/include/opus -D_REENTRANT -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -pthread -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -DX264_API_IMPORTS -I/usr/include/cdio -Wdeclaration-after- statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer- to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -Wno-unused-const-variable -Wno- bool-operation -Wno-char-subscripts -O2 -g -pipe -Wall -Werror=format- security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat /redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash- protection -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror =format-security -Werror=implicit-function-declaration -Werror=missing- prototypes -Werror=return-type -Werror=vla -Wformat -fdiagnostics- color=auto -Wno-maybe-uninitialized -I/usr/include/SDL2 -D_REENTRANT -MMD -MF libavfilter/vf_deshake_opencl.d -MT libavfilter/vf_deshake_opencl.o -c -o libavfilter/vf_deshake_opencl.o libavfilter/vf_deshake_opencl.c In file included from /usr/include/CL/cl.h:32, from ./libavutil/hwcontext_opencl.h:25, from libavfilter/opencl.h:31, from libavfilter/vf_deshake_opencl.c:64: /usr/include/CL/cl_version.h:34:9: note: '#pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)' 34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)") | ^~~~~~~ libavfilter/vf_deshake_opencl.c: In function 'points_not_collinear': libavfilter/vf_deshake_opencl.c:376:24: error: incompatible types when returning type 'int' but '__vector __bool int' {aka '__vector(4) __bool int'} was expected 376 | return false; | ^~~~~ libavfilter/vf_deshake_opencl.c:381:12: error: incompatible types when returning type 'int' but '__vector __bool int' {aka '__vector(4) __bool int'} was expected 381 | return true; | ^~~~ libavfilter/vf_deshake_opencl.c: In function 'check_subset': libavfilter/vf_deshake_opencl.c:400:12: error: used vector type where scalar is required 400 | return points_not_collinear(prev_points) && points_not_collinear(curr_points); | ^~~~~~~~~~~~~~~~~~~~ libavfilter/vf_deshake_opencl.c: In function 'get_subset': libavfilter/vf_deshake_opencl.c:436:23: error: wrong type argument to unary exclamation mark 436 | if (i == 3 && !check_subset(pairs_subset)) { | ^ libavfilter/vf_deshake_opencl.c:442:19: error: incompatible types when returning type 'int' but '__vector __bool int' {aka '__vector(4) __bool int'} was expected 442 | return i == 3 && iters < max_attempts; | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ libavfilter/vf_deshake_opencl.c: In function 'estimate_affine_2d': libavfilter/vf_deshake_opencl.c:538:19: error: incompatible types when initializing type '__vector __bool int' {aka '__vector(4) __bool int'} using type 'int' 538 | bool result = false; | ^~~~~ libavfilter/vf_deshake_opencl.c:547:16: error: incompatible types when returning type 'int' but '__vector __bool int' {aka '__vector(4) __bool int'} was expected 547 | return false; | ^~~~~ libavfilter/vf_deshake_opencl.c:556:16: error: incompatible types when returning type 'int' but '__vector __bool int' {aka '__vector(4) __bool int'} was expected 556 | return true; | ^~~~ libavfilter/vf_deshake_opencl.c:562:13: error: wrong type argument to unary exclamation mark 562 | if (!found) { | ^ libavfilter/vf_deshake_opencl.c:564:24: error: incompatible types when returning type 'int' but '__vector __bool int' {aka '__vector(4) __bool int'} was expected 564 | return false; | ^~~~~ In file included from libavfilter/vf_deshake_opencl.c:48: libavfilter/vf_deshake_opencl.c:603:18: error: incompatible types when assigning to type '__vector __bool int' {aka '__vector(4) __bool int'} from type 'int' 603 | result = true; | ^~~~ libavfilter/vf_deshake_opencl.c: In function 'optimize_model': libavfilter/vf_deshake_opencl.c:621:19: error: incompatible types when initializing type '__vector __bool int' {aka '__vector(4) __bool int'} using type 'int' 621 | bool move_x = true; | ^~~~ libavfilter/vf_deshake_opencl.c:629:13: error: used vector type where scalar is required 629 | if (move_x) { | ^~~~~~ libavfilter/vf_deshake_opencl.c:651:17: error: used vector type where scalar is required 651 | if (move_x) { | ^~~~~~ libavfilter/vf_deshake_opencl.c:664:17: error: used vector type where scalar is required 664 | if (move_x) { | ^~~~~~ In file included from libavfilter/vf_deshake_opencl.c:48: libavfilter/vf_deshake_opencl.c:671:26: error: incompatible types when assigning to type '__vector __bool int' {aka '__vector(4) __bool int'} from type 'int' 671 | move_x = false; | ^~~~~ libavfilter/vf_deshake_opencl.c:673:26: error: incompatible types when assigning to type '__vector __bool int' {aka '__vector(4) __bool int'} from type 'int' 673 | move_x = true; | ^~~~ libavfilter/vf_deshake_opencl.c:621:10: warning: variable 'move_x' set but not used [-Wunused-but-set-variable] 621 | bool move_x = true; | ^~~~~~ libavfilter/vf_deshake_opencl.c: In function 'minimize_error': libavfilter/vf_deshake_opencl.c:692:19: error: incompatible types when initializing type '__vector __bool int' {aka '__vector(4) __bool int'} using type 'int' 692 | bool result = false; | ^~~~~ libavfilter/vf_deshake_opencl.c:701:13: error: wrong type argument to unary exclamation mark 701 | if (!found) { | ^ libavfilter/vf_deshake_opencl.c:703:24: error: incompatible types when returning type 'int' but '__vector __bool int' {aka '__vector(4) __bool int'} was expected 703 | return false; | ^~~~~ In file included from libavfilter/vf_deshake_opencl.c:48: libavfilter/vf_deshake_opencl.c:737:14: error: incompatible types when assigning to type '__vector __bool int' {aka '__vector(4) __bool int'} from type 'int' 737 | result = true; | ^~~~ libavfilter/vf_deshake_opencl.c: In function 'deshake_opencl_uninit': libavfilter/vf_deshake_opencl.c:1106:9: error: wrong type argument to unary exclamation mark 1106 | if (!ctx->is_yuv) | ^ In file included from libavfilter/vf_deshake_opencl.c:48: libavfilter/vf_deshake_opencl.c: In function 'deshake_opencl_init': libavfilter/vf_deshake_opencl.c:1173:16: error: incompatible types when assigning to type '__vector __bool int' {aka '__vector(4) __bool int'} from type 'int' 1173 | ctx->eof = false; | ^~~~~ libavfilter/vf_deshake_opencl.c:1265:23: error: incompatible types when assigning to type '__vector __bool int' {aka '__vector(4) __bool int'} from type 'int' 1265 | ctx->is_yuv = false; | ^~~~~ libavfilter/vf_deshake_opencl.c:1267:23: error: incompatible types when assigning to type '__vector __bool int' {aka '__vector(4) __bool int'} from type 'int' 1267 | ctx->is_yuv = true; | ^~~~ libavfilter/vf_deshake_opencl.c:1298:9: error: wrong type argument to unary exclamation mark 1298 | if (!ctx->is_yuv) { | ^ libavfilter/vf_deshake_opencl.c: In function 'filter_frame': libavfilter/vf_deshake_opencl.c:1570:34: error: wrong type argument to unary exclamation mark 1570 | if (deshake_ctx->debug_on && !deshake_ctx->is_yuv && debug_matches.num_matches > 0) { | ^ libavfilter/vf_deshake_opencl.c: In function 'queue_frame': libavfilter/vf_deshake_opencl.c:1796:9: error: used vector type where scalar is required 1796 | if (deshake_ctx->is_yuv) { | ^~~~~~~~~~~ libavfilter/vf_deshake_opencl.c:1902:9: error: wrong type argument to unary exclamation mark 1902 | if (!estimate_affine_2d( | ^ libavfilter/vf_deshake_opencl.c:1922:9: error: wrong type argument to unary exclamation mark 1922 | if (!minimize_error( | ^ libavfilter/vf_deshake_opencl.c:1954:13: error: wrong type argument to unary exclamation mark 1954 | if (!deshake_ctx->is_yuv) { | ^ libavfilter/vf_deshake_opencl.c: In function 'activate': libavfilter/vf_deshake_opencl.c:2051:9: error: wrong type argument to unary exclamation mark 2051 | if (!deshake_ctx->eof) { | ^ libavfilter/vf_deshake_opencl.c:2086:9: error: wrong type argument to unary exclamation mark 2086 | if (!deshake_ctx->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { | ^ In file included from libavfilter/vf_deshake_opencl.c:48: libavfilter/vf_deshake_opencl.c:2088:32: error: incompatible types when assigning to type '__vector __bool int' {aka '__vector(4) __bool int'} from type 'int' 2088 | deshake_ctx->eof = true; | ^~~~ libavfilter/vf_deshake_opencl.c:2092:9: error: used vector type where scalar is required 2092 | if (deshake_ctx->eof) { | ^~~~~~~~~~~ libavfilter/vf_deshake_opencl.c:2132:9: error: wrong type argument to unary exclamation mark 2132 | if (!deshake_ctx->eof) { | ^ make: *** [ffbuild/common.mak:59: libavfilter/vf_deshake_opencl.o] Error 1 }}} Installed packages versions: http://koji.rpmfusion.org/kojifiles/work/tasks/8422/388422/root.log Full build log: http://koji.rpmfusion.org/kojifiles/work/tasks/8422/388422/build.log -- Ticket URL: <https://trac.ffmpeg.org/ticket/8591> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker