[FFmpeg-devel] [PATCH] lsws/ppc/yuv2rgb_altivec: Fix build in non-VSX environments with Clang

Brad Smith brad at comstyle.com
Sat Aug 12 02:49:39 EEST 2023


Just FYI, we have had this in the OpenBSD and FreeBSD packages for quite 
awhile
to be able to build on powerpc64.

On 2023-08-07 9:02 p.m., Brad Smith wrote:
> lsws/ppc/yuv2rgb_altivec: Fix build in non-VSX environments with Clang
>
> libswscale/ppc/yuv2rgb_altivec.c:288:36: error: redeclaration of 'vec_xl' must have the 'overloadable' attribute
> ---
>   libswscale/ppc/yuv2rgb_altivec.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
> index 5e1033a973..6ef2441d8a 100644
> --- a/libswscale/ppc/yuv2rgb_altivec.c
> +++ b/libswscale/ppc/yuv2rgb_altivec.c
> @@ -284,7 +284,7 @@ static inline void cvtyuvtoRGB(SwsContext *c, vector signed short Y,
>    * ------------------------------------------------------------------------------
>    */
>   
> -#if !HAVE_VSX
> +#if !HAVE_VSX && !defined(__clang__)
>   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);
> @@ -292,7 +292,7 @@ static inline vector unsigned char vec_xl(signed long long offset, const ubyte *
>   
>       return (vector unsigned char) vec_perm(v_addr[0], v_addr[1], align_perm);
>   }
> -#endif /* !HAVE_VSX */
> +#endif /* !HAVE_VSX && !__clang__ */
>   
>   #define DEFCSP420_CVT(name, out_pixels)                                       \
>   static int altivec_ ## name(SwsContext *c, const unsigned char **in,          \


More information about the ffmpeg-devel mailing list