소스 검색

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 having VSX implies having
AltiVec [0], so we can condition the 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 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 <fontaine.fabrice@gmail.com>
[yann.morin.1998@free.fr:
  - add comment in .mk
  - exend commit log to explain VSX implies AltiVec
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
(cherry picked from commit a26ab27397c81928bdacc96473f80b2c47fc534d)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Fabrice Fontaine 2 년 전
부모
커밋
3d41bf63d2
1개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      package/ffmpeg/ffmpeg.mk

+ 5 - 1
package/ffmpeg/ffmpeg.mk

@@ -511,7 +511,11 @@ endif
 FFMPEG_CONF_OPTS += --disable-asm
 FFMPEG_CONF_OPTS += --disable-asm
 endif # MIPS
 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
 FFMPEG_CONF_OPTS += --enable-altivec
 else
 else
 FFMPEG_CONF_OPTS += --disable-altivec
 FFMPEG_CONF_OPTS += --disable-altivec