From a26ab27397c81928bdacc96473f80b2c47fc534d Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 23 Aug 2022 23:22:19 +0200 Subject: [PATCH] package/ffmpeg: altivec needs VSX with little endian Fix the following build failure: In file included from libavcodec/ppc/audiodsp.c:31: libavcodec/ppc/audiodsp.c: In function 'scalarproduct_int16_altivec': ./libavutil/ppc/util_altivec.h:123:5: error: implicit declaration of function 'vec_vsx_ld'; did you mean 'vec_vslh'? [-Werror=implicit-function-declaration] 123 | vec_vsx_ld(offset, b) | ^~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/b772d285f978ff9bc3b07872d009633c943f20b1 VSX is indeed an extension to AltiVec, so havinf VSX implies having AltiVec [0], so we can condition he altivec support on LE ,on VSX being available. To be noted, however, is that ffmpeg has a configre switch dedicated to VSX: --enable-vsx. We do not use it add support for that here, as we are just fixing the AltiVec support. Adding VSX configure flag is left as an excercise for a future feature addition. [0] https://en.wikipedia.org/wiki/AltiVec#VSX_(Vector_Scalar_Extension) Signed-off-by: Fabrice Fontaine [yann.morin.1998@free.fr: - add comment in .mk - exend commit log to explain VSX implies AltiVec ] Signed-off-by: Yann E. MORIN --- package/ffmpeg/ffmpeg.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package/ffmpeg/ffmpeg.mk b/package/ffmpeg/ffmpeg.mk index 82d229903f..ced5ce598f 100644 --- a/package/ffmpeg/ffmpeg.mk +++ b/package/ffmpeg/ffmpeg.mk @@ -511,7 +511,11 @@ endif FFMPEG_CONF_OPTS += --disable-asm endif # MIPS -ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y) +ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC):$(BR2_powerpc64le),y:) +FFMPEG_CONF_OPTS += --enable-altivec +else ifeq ($(BR2_POWERPC_CPU_HAS_VSX):$(BR2_powerpc64le),y:y) +# On LE, ffmpeg AltiVec support needs VSX intrinsics, and VSX +# is an extension to AltiVec. FFMPEG_CONF_OPTS += --enable-altivec else FFMPEG_CONF_OPTS += --disable-altivec