> Trying to build x265_3.3 using gcc-9.2 on an RPi4 fails.
> 
> Using
> cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release 
> -DCMAKE_VERBOSE_MAKEFILE=TRUE ../source
> 
> ..fails as below (and also fails if I remove -DHAVE_ARMV6=1) If I compile 
> using armv6 cflags and remove -DHAVE_NEON
> it still fails with the same error
> 
> Is it possible that it is trying to use 64-bit neon instructions?
>
> ----
>
> [  1%] Building CXX object encoder/CMakeFiles/encoder.dir/analysis.cpp.o
> cd /usr/src/x265_3.3/build_x265/encoder && /usr/local/bin/c++  
> -DEXPORT_C_API=1 -DHAVE_ARMV6=1 -DHAVE_INT_TYPES_H=1
> -DHAVE_NEON -DHIGH_BIT_DEPTH=0 -DX265_ARCH_ARM=1 -DX265_DEPTH=8 
> -DX265_NS=x265 -D__STDC_LIMIT_MACROS=1
> -I/usr/src/x265_3.3/source/. -I/usr/src/x265_3.3/source/common 
> -I/usr/src/x265_3.3/source/encoder -I/usr/src/x265_3.3/build_x265
> -O3 -DNDEBUG   -Wall -Wextra -Wshadow -Wno-class-memaccess -std=gnu++98 
> -mcpu=native -mfloat-abi=hard -mfpu=neon
> -marm -fPIC -Wno-array-bounds -ffast-math -fno-exceptions -Wno-uninitialized 
> -o CMakeFiles/encoder.dir/analysis.cpp.o
> -c /usr/src/x265_3.3/source/encoder/analysis.cpp
> ...
> [ 24%] Building CXX object 
> common/CMakeFiles/common.dir/arm/asm-primitives.cpp.o                         
>                                        
> cd /usr/src/x265_3.3/build_x265/common && /usr/local/bin/c++  
> -DEXPORT_C_API=1  -DHAVE_INT_TYPES_H=1
> -DHAVE_NEON -DHIGH_BIT_DEPTH=0 -DX265_ARCH_ (truncated)
> In file included from /usr/src/x265_3.3/source/common/primitives.h:34,        
>                                                                   
>                 from 
> /usr/src/x265_3.3/source/common/arm/asm-primitives.cpp:28:                    
>                                             
> /usr/src/x265_3.3/source/common/arm/asm-primitives.cpp: In function
> 'void x265::setupAssemblyPrimitives(x265::EncoderPrimitives&, int)':        
> <command-line>: error: incompatible types in assignment of 'void(const 
> int16_t*, const int16_t*, pixel*, intptr_t, intptr_t, intptr_t)'
> {aka 'vo
> /usr/src/x265_3.3/source/common/cpu.h:30:28: note: in definition of macro 
> 'PFX3'      
>   30 | #define PFX3(prefix, name) prefix ## _ ## name                         
>    
>      |                            ^~~~~~                                      
>    
> /usr/src/x265_3.3/source/common/cpu.h:32:28: note: in expansion of macro 
> 'PFX2'   
>   32 | #define PFX(name)          PFX2(X265_NS, name)                         
>                 
>      |                            ^~~~                                        
>                 
> /usr/src/x265_3.3/source/common/cpu.h:32:33: note: in expansion of macro 
> 'X265_NS'             
>   32 | #define PFX(name)          PFX2(X265_NS, name)                         
>                                                                  
>      |                                 ^~~~~~~                                
>                                                                  
> /usr/src/x265_3.3/source/common/arm/asm-primitives.cpp:51:36: note: in 
> expansion of macro 'PFX'                                                 
>   51 |          p.pu[LUMA_4x4].addAvg   = PFX(addAvg_4x4_neon);               
>                                                                  
>      |                                    ^~~                   
> 
Using the attached patch, x265-arm-asm-primitives.patch, from:

https://git.pantherx.org/mirror/guix/blob/985d542e028517b2888fa61831233a2b60dc7d48/gnu/packages/patches/x265-arm-asm-primitives.patch

..fixes the problem.

This appears to be for x265_2.8, but it has not been applied to x265_3.3?

Regards
John


Attachment: x265-arm-asm-primitives.patch
Description: x265-arm-asm-primitives.patch

_______________________________________________
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel

Reply via email to