[x265] x265_3.3 build fails on RPi4

John Frankish john.frankish at outlook.com
Mon May 4 07:08:52 CEST 2020


> 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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: x265-arm-asm-primitives.patch
Type: application/octet-stream
Size: 26210 bytes
Desc: x265-arm-asm-primitives.patch
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20200504/6e9b65d1/attachment-0001.obj>


More information about the x265-devel mailing list