Source: ffmpeg Version: 7:4.3.1-2 Severity: important Tags: patch User: debian-powerpc@lists.debian.org Usertags: powerpc ppc64 X-Debbugs-Cc: debian-powerpc@lists.debian.org
Hello! ffmpeg currently FTBFS on powerpc and ppc64 [1]: src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_abgr’: src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: implicit declaration of function ‘vec_xl’; did you mean ‘vec_rl’? [-Werror=implicit-function-declaration] 338 | y0 = vec_xl(0, y1i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro ‘DEFCSP420_CVT’ 437 | DEFCSP420_CVT(yuv2_abgr, out_abgr) | ^~~~~~~~~~~~~ gcc -I. -Isrc/ -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -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_swscale -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-overflow -fstack-protector-all -fPIE -std=c11 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread -I/usr/include/p11-kit-1 -I/usr/include/lilv-0 -I/usr/include/sratom-0 -I/usr/include/sord-0 -I/usr/include/serd-0 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/bs2b -I/usr/include/libdrm -I/usr/include/uuid -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 -pthread -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/srt -I/usr/include/p11-kit-1 -isystem /usr/include/mit-krb5 -I/usr/include/pgm-5.2 -I/usr/include/libxml2 -g -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 -O3 -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 -D_REENTRANT -I/usr/include/SDL2 -MMD -MF libswscale/swscale_unscaled.d -MT libswscale/swscale_unscaled.o -c -o libswscale/swscale_unscaled.o src/libswscale/swscale_unscaled.c src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 338 | y0 = vec_xl(0, y1i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro ‘DEFCSP420_CVT’ 437 | DEFCSP420_CVT(yuv2_abgr, out_abgr) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 340 | y1 = vec_xl(0, y2i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro ‘DEFCSP420_CVT’ 437 | DEFCSP420_CVT(yuv2_abgr, out_abgr) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:437:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c:437:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_bgra’: src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 338 | y0 = vec_xl(0, y1i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:438:1: note: in expansion of macro ‘DEFCSP420_CVT’ 438 | DEFCSP420_CVT(yuv2_bgra, out_bgra) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 340 | y1 = vec_xl(0, y2i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:438:1: note: in expansion of macro ‘DEFCSP420_CVT’ 438 | DEFCSP420_CVT(yuv2_bgra, out_bgra) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:438:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c:438:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size gcc -I. -Isrc/ -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -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_swscale -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-overflow -fstack-protector-all -fPIE -std=c11 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread -I/usr/include/p11-kit-1 -I/usr/include/lilv-0 -I/usr/include/sratom-0 -I/usr/include/sord-0 -I/usr/include/serd-0 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/bs2b -I/usr/include/libdrm -I/usr/include/uuid -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 -pthread -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/srt -I/usr/include/p11-kit-1 -isystem /usr/include/mit-krb5 -I/usr/include/pgm-5.2 -I/usr/include/libxml2 -g -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 -O3 -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 -D_REENTRANT -I/usr/include/SDL2 -MMD -MF libswscale/utils.d -MT libswscale/utils.o -c -o libswscale/utils.o src/libswscale/utils.c src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_rgba’: src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 338 | y0 = vec_xl(0, y1i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:439:1: note: in expansion of macro ‘DEFCSP420_CVT’ 439 | DEFCSP420_CVT(yuv2_rgba, out_rgba) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 340 | y1 = vec_xl(0, y2i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:439:1: note: in expansion of macro ‘DEFCSP420_CVT’ 439 | DEFCSP420_CVT(yuv2_rgba, out_rgba) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:439:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c:439:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_argb’: src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 338 | y0 = vec_xl(0, y1i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:440:1: note: in expansion of macro ‘DEFCSP420_CVT’ 440 | DEFCSP420_CVT(yuv2_argb, out_argb) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 340 | y1 = vec_xl(0, y2i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:440:1: note: in expansion of macro ‘DEFCSP420_CVT’ 440 | DEFCSP420_CVT(yuv2_argb, out_argb) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:440:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c:440:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_rgb24’: src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 338 | y0 = vec_xl(0, y1i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:441:1: note: in expansion of macro ‘DEFCSP420_CVT’ 441 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 340 | y1 = vec_xl(0, y2i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:441:1: note: in expansion of macro ‘DEFCSP420_CVT’ 441 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:441:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c:441:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_bgr24’: src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 338 | y0 = vec_xl(0, y1i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:442:1: note: in expansion of macro ‘DEFCSP420_CVT’ 442 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} from type ‘int’ 340 | y1 = vec_xl(0, y2i); \ | ^~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:442:1: note: in expansion of macro ‘DEFCSP420_CVT’ 442 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24) | ^~~~~~~~~~~~~ src/libswscale/ppc/yuv2rgb_altivec.c:442:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size src/libswscale/ppc/yuv2rgb_altivec.c:442:1: error: cannot convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size gcc -I. -Isrc/ -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -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_swscale -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-overflow -fstack-protector-all -fPIE -std=c11 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread -I/usr/include/p11-kit-1 -I/usr/include/lilv-0 -I/usr/include/sratom-0 -I/usr/include/sord-0 -I/usr/include/serd-0 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/bs2b -I/usr/include/libdrm -I/usr/include/uuid -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 -pthread -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/srt -I/usr/include/p11-kit-1 -isystem /usr/include/mit-krb5 -I/usr/include/pgm-5.2 -I/usr/include/libxml2 -g -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 -O3 -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 -D_REENTRANT -I/usr/include/SDL2 -MMD -MF libswscale/vscale.d -MT libswscale/vscale.o -c -o libswscale/vscale.o src/libswscale/vscale.c gcc -I. -Isrc/ -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -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_swscale -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-overflow -fstack-protector-all -fPIE -std=c11 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread -I/usr/include/p11-kit-1 -I/usr/include/lilv-0 -I/usr/include/sratom-0 -I/usr/include/sord-0 -I/usr/include/serd-0 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/bs2b -I/usr/include/libdrm -I/usr/include/uuid -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 -pthread -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/srt -I/usr/include/p11-kit-1 -isystem /usr/include/mit-krb5 -I/usr/include/pgm-5.2 -I/usr/include/libxml2 -g -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 -O3 -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 -D_REENTRANT -I/usr/include/SDL2 -MMD -MF libswscale/yuv2rgb.d -MT libswscale/yuv2rgb.o -c -o libswscale/yuv2rgb.o src/libswscale/yuv2rgb.c cc1: some warnings being treated as errors make[2]: *** [/<<PKGBUILDDIR>>/ffbuild/common.mak:59: libswscale/ppc/yuv2rgb_altivec.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory '/<<PKGBUILDDIR>>/debian/standard' Upstream has a patch for that, see [2]. Could you backport that patch? Thanks, Adrian > [1] > https://buildd.debian.org/status/fetch.php?pkg=ffmpeg&arch=ppc64&ver=7%3A4.3.1-2&stamp=1597687204&raw=0 > [2] https://trac.ffmpeg.org/ticket/8750 -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c index 536545293d..930ef6b98f 100644 --- a/libswscale/ppc/yuv2rgb_altivec.c +++ b/libswscale/ppc/yuv2rgb_altivec.c @@ -283,6 +283,16 @@ static inline void cvtyuvtoRGB(SwsContext *c, vector signed short Y, * ------------------------------------------------------------------------------ */ +#if !HAVE_VSX +static inline vector unsigned char vec_xl(signed long long offset, const ubyte *addr) +{ + const vector unsigned char *v_addr = (const vector unsigned char *) (addr + offset); + vector unsigned char align_perm = vec_lvsl(offset, addr); + + return (vector unsigned char) vec_perm(v_addr[0], v_addr[1], align_perm); +} +#endif /* !HAVE_VSX */ + #define DEFCSP420_CVT(name, out_pixels) \ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \ int *instrides, int srcSliceY, int srcSliceH, \