fraunhoferhhi / vvenc

VVenC, the Fraunhofer Versatile Video Encoder
https://www.hhi.fraunhofer.de/en/departments/vca/technologies-and-solutions/h266-vvc.html
BSD 3-Clause Clear License
966 stars 173 forks source link

Unable to build on linux arm64/aarch64 #424

Closed aptalca closed 1 month ago

aptalca commented 1 month ago

Hi,

I'm trying to build v1.12.0 on arm64 but it is failing. #223 suggests support for arm on linux.

This is on Ubuntu Noble (24.04) and I'm simply cloning the v1.12.0 tag and using the makefile command make install install-prefix=/usr/local

Here is the build log:

# make install install-prefix=/usr/local
cmake -S . -B build/release-shared -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_MODULE_PATH: updating module path to: /tmp/vvenc/cmake/modules
-- Performing Test SUPPORTED_Werror_unused_command_line_argument
-- Performing Test SUPPORTED_Werror_unused_command_line_argument - Failed
-- Performing Test SUPPORTED_msse4_1
-- Performing Test SUPPORTED_msse4_1 - Failed
-- Performing Test SUPPORTED_mavx
-- Performing Test SUPPORTED_mavx - Failed
-- Performing Test HAVE_INTRIN_mm_storeu_si16
-- Performing Test HAVE_INTRIN_mm_storeu_si16 - Success
-- Performing Test HAVE_INTRIN_mm_storeu_si32
-- Performing Test HAVE_INTRIN_mm_storeu_si32 - Success
-- Performing Test HAVE_INTRIN_mm_storeu_si64
-- Performing Test HAVE_INTRIN_mm_storeu_si64 - Success
-- Performing Test HAVE_INTRIN_mm_loadu_si32
-- Performing Test HAVE_INTRIN_mm_loadu_si32 - Success
-- Performing Test HAVE_INTRIN_mm_loadu_si64
-- Performing Test HAVE_INTRIN_mm_loadu_si64 - Success
-- Performing Test HAVE_INTRIN_mm_cvtsi128_si64
-- Performing Test HAVE_INTRIN_mm_cvtsi128_si64 - Success
-- Performing Test HAVE_INTRIN_mm_cvtsi64_si128
-- Performing Test HAVE_INTRIN_mm_cvtsi64_si128 - Success
-- Performing Test HAVE_INTRIN_mm_extract_epi64
-- Performing Test HAVE_INTRIN_mm_extract_epi64 - Success
-- Performing Test HAVE_INTRIN_mm256_zeroupper
-- Performing Test HAVE_INTRIN_mm256_zeroupper - Failed
-- Performing Test HAVE_INTRIN_mm256_loadu2_m128i
-- Performing Test HAVE_INTRIN_mm256_loadu2_m128i - Success
-- Performing Test HAVE_INTRIN_mm256_set_m128i
-- Performing Test HAVE_INTRIN_mm256_set_m128i - Success
-- x86 SIMD intrinsics enabled (using SIMDE for non-x86 targets)
-- ARM SIMD intrinsics enabled
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- CMAKE_INSTALL_RPATH=$ORIGIN;$ORIGIN/../lib
-- Performing Test SUPPORTED_mxsave
-- Performing Test SUPPORTED_mxsave - Failed
-- Performing Test SUPPORTED_msse4_2
-- Performing Test SUPPORTED_msse4_2 - Failed
-- Performing Test SUPPORTED_mavx2
-- Performing Test SUPPORTED_mavx2 - Failed
-- Configuring done (5.5s)
-- Generating done (0.1s)
-- Build files have been written to: /tmp/vvenc/build/release-shared
cmake --build build/release-shared -j 4 
gmake[1]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[2]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
[  1%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_arm_simd.dir/__/CommonLib/arm/neon/Buffer_neon.cpp.o
[  2%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_arm_simd.dir/__/CommonLib/arm/neon/InterpolationFilter_neon.cpp.o
[  3%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_arm_simd.dir/__/CommonLib/arm/neon/RdCost_neon.cpp.o
[  4%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/AdaptiveLoopFilter_sse41.cpp.o
[  5%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/AffineGradientSearch_sse41.cpp.o
[  6%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/Buffer_sse41.cpp.o
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[  6%] Built target vvenc_arm_simd
[  7%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/DepQuant_sse41.cpp.o
[  8%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/InterPred_sse41.cpp.o
[  9%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/InterpolationFilter_sse41.cpp.o
[ 10%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/IntraPred_sse41.cpp.o
[ 11%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/LoopFilter_sse41.cpp.o
[ 11%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/MCTF_avx41.cpp.o
In file included from /tmp/vvenc/thirdparty/simde/simde-features.h:346,
                 from /tmp/vvenc/thirdparty/simde/simde-common.h:43,
                 from /tmp/vvenc/thirdparty/simde/x86/mmx.h:30,
                 from /tmp/vvenc/thirdparty/simde/x86/sse.h:33,
                 from /tmp/vvenc/thirdparty/simde/x86/sse2.h:35,
                 from /tmp/vvenc/source/Lib/CommonLib/x86/sse41/../FixMissingIntrin.h:47,
                 from /tmp/vvenc/source/Lib/CommonLib/x86/sse41/../CommonDefX86.h:65,
                 from /tmp/vvenc/source/Lib/CommonLib/x86/sse41/../InterpolationFilterX86.h:53,
                 from /tmp/vvenc/source/Lib/CommonLib/x86/sse41/InterpolationFilter_sse41.cpp:43:
In function ‘int64x1_t vld1_s64(const int64_t*)’,
    inlined from ‘simde__m128i simde_mm_loadl_epi64(const simde__m128i*)’ at /tmp/vvenc/thirdparty/simde/x86/sse2.h:3469:33,
    inlined from ‘void vvenc::simdFilter4x4_N4(const ClpRng&, const Pel*, int, Pel*, int, int, int, const TFilterCoeff*, const TFilterCoeff*) [with x86_simd::X86_VEXT vext = vvenc::x86_simd::SSE41; bool isLast = true]’ at /tmp/vvenc/source/Lib/CommonLib/x86/sse41/../InterpolationFilterX86.h:2122:12:
/usr/lib/gcc/aarch64-linux-gnu/13/include/arm_neon.h:12271:23: error: ‘coeffV’ is used uninitialized [-Werror=uninitialized]
12271 |   return (int64x1_t) {*__a};
      |                       ^~~~
In file included from /tmp/vvenc/source/Lib/CommonLib/x86/sse41/../CommonDefX86.h:48:
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../InterpolationFilterX86.h: In function ‘void vvenc::simdFilter4x4_N4(const ClpRng&, const Pel*, int, Pel*, int, int, int, const TFilterCoeff*, const TFilterCoeff*) [with x86_simd::X86_VEXT vext = vvenc::x86_simd::SSE41; bool isLast = true]’:
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../InterpolationFilterX86.h:2105:40: note: ‘coeffV’ declared here
 2105 |     ALIGN_DATA( 64, const TFilterCoeff coeffV[10] ) = { 0, 0, 0, _coeffV[3], _coeffV[2], _coeffV[1], _coeffV[0], 0 ,0,0};
      |                                        ^~~~~~
/tmp/vvenc/source/Lib/vvenc/../CommonLib/CommonDef.h:616:30: note: in definition of macro ‘ALIGN_DATA’
  616 | #define ALIGN_DATA(nBytes,v) v __attribute__ ((aligned (nBytes)))
      |                              ^
In function ‘int64x1_t vld1_s64(const int64_t*)’,
    inlined from ‘simde__m128i simde_mm_loadl_epi64(const simde__m128i*)’ at /tmp/vvenc/thirdparty/simde/x86/sse2.h:3469:33,
    inlined from ‘void vvenc::simdFilter4x4_N4(const ClpRng&, const Pel*, int, Pel*, int, int, int, const TFilterCoeff*, const TFilterCoeff*) [with x86_simd::X86_VEXT vext = vvenc::x86_simd::SSE41; bool isLast = false]’ at /tmp/vvenc/source/Lib/CommonLib/x86/sse41/../InterpolationFilterX86.h:2122:12:
/usr/lib/gcc/aarch64-linux-gnu/13/include/arm_neon.h:12271:23: error: ‘coeffV’ is used uninitialized [-Werror=uninitialized]
12271 |   return (int64x1_t) {*__a};
      |                       ^~~~
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../InterpolationFilterX86.h: In function ‘void vvenc::simdFilter4x4_N4(const ClpRng&, const Pel*, int, Pel*, int, int, int, const TFilterCoeff*, const TFilterCoeff*) [with x86_simd::X86_VEXT vext = vvenc::x86_simd::SSE41; bool isLast = false]’:
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../InterpolationFilterX86.h:2105:40: note: ‘coeffV’ declared here
 2105 |     ALIGN_DATA( 64, const TFilterCoeff coeffV[10] ) = { 0, 0, 0, _coeffV[3], _coeffV[2], _coeffV[1], _coeffV[0], 0 ,0,0};
      |                                        ^~~~~~
/tmp/vvenc/source/Lib/vvenc/../CommonLib/CommonDef.h:616:30: note: in definition of macro ‘ALIGN_DATA’
  616 | #define ALIGN_DATA(nBytes,v) v __attribute__ ((aligned (nBytes)))
      |                              ^
In file included from /tmp/vvenc/source/Lib/CommonLib/x86/sse41/IntraPred_sse41.cpp:43:
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../IntraPredX86.h: In function ‘void vvenc::IntraPredAngleLumaCore_SIMD(int16_t*, ptrdiff_t, int16_t*, int, int, int, int, const TFilterCoeff*, bool, const ClpRng&) [with x86_simd::X86_VEXT vext = vvenc::x86_simd::SSE41]’:
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../IntraPredX86.h:339:48: error: ‘intraSmoothingFilter’ may be used uninitialized [-Werror=maybe-uninitialized]
  339 |         const TFilterCoeff *f = useCubicFilter ? InterpolationFilter::getChromaFilterTable(deltaFract) : intraSmoothingFilter;
      |                                 ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../IntraPredX86.h:338:33: note: ‘intraSmoothingFilter’ declared here
  338 |         const TFilterCoeff      intraSmoothingFilter[4] = {TFilterCoeff(16 - (deltaFract >> 1)), TFilterCoeff(32 - (deltaFract >> 1)), TFilterCoeff(16 + (deltaFract >> 1)), TFilterCoeff(deltaFract >> 1)};
      |                                 ^~~~~~~~~~~~~~~~~~~~
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../IntraPredX86.h:396:46: error: ‘intraSmoothingFilter’ may be used uninitialized [-Werror=maybe-uninitialized]
  396 |       const TFilterCoeff *f = useCubicFilter ? InterpolationFilter::getChromaFilterTable(deltaFract) : intraSmoothingFilter;
      |                               ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/vvenc/source/Lib/CommonLib/x86/sse41/../IntraPredX86.h:395:31: note: ‘intraSmoothingFilter’ declared here
  395 |       const TFilterCoeff      intraSmoothingFilter[4] = {TFilterCoeff(16 - (deltaFract >> 1)), TFilterCoeff(32 - (deltaFract >> 1)), TFilterCoeff(16 + (deltaFract >> 1)), TFilterCoeff(deltaFract >> 1)};
      |                               ^~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
gmake[3]: *** [source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/build.make:160: source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/IntraPred_sse41.cpp.o] Error 1
gmake[3]: *** Waiting for unfinished jobs....
cc1plus: all warnings being treated as errors
gmake[3]: *** [source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/build.make:146: source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/InterpolationFilter_sse41.cpp.o] Error 1
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[2]: *** [CMakeFiles/Makefile2:174: source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/all] Error 2
gmake[2]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[1]: *** [Makefile:146: all] Error 2
gmake[1]: Leaving directory '/tmp/vvenc/build/release-shared'
make: *** [Makefile:180: release-shared] Error 2

Same environment and instructions work on amd64.

This is all part of a larger docker build for ffmpeg.

Here's the Dockerfile with the vvenc bits highlighted: https://github.com/linuxserver/docker-ffmpeg/blob/b50a8ac7c3fa796e3b5412219f87d9aa460fff32/Dockerfile.aarch64#L505-L516

Here's the full build log showing the failure: https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-ffmpeg/detail/7.1/2/pipeline/130/

Thanks

adamjw24 commented 1 month ago

All of those are false positives. Please try a different compiler version.

Otherwise please have a look at #422 and #423. Those options will be available in the next version, for which tho there isnt yet an exact timeline. You could easily backport the changes though to 1.12.0 with git.

aptalca commented 1 month ago

Thanks for pointing me in the right direction.

Gcc/g++ 12 on arm64 works. 13 works on amd64 but not on arm64.

I was able to do the following on ubuntu noble on arm64:

apt install gcc-12 g++-12
CC=/usr/bin/gcc-12 CXX=/usr/bin/g++-12 make install install-prefix=/usr/local

No idea why 13 craps out on arm64 but that's above my paygrade 😬

By the way, I noticed that those false positive warnings do not appear when building v1.12.0 with gcc/g++ 12. Not sure if they're simply hidden/skipped on a successful build or not (probably they are as the log message reads all warnings being treated as errors).

# CC=/usr/bin/gcc-12 CXX=/usr/bin/g++-12 make install install-prefix=/usr/local
cmake -S . -B build/release-shared -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc-12 - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++-12 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_MODULE_PATH: updating module path to: /tmp/vvenc/cmake/modules
-- Performing Test SUPPORTED_Werror_unused_command_line_argument
-- Performing Test SUPPORTED_Werror_unused_command_line_argument - Failed
-- Performing Test SUPPORTED_msse4_1
-- Performing Test SUPPORTED_msse4_1 - Failed
-- Performing Test SUPPORTED_mavx
-- Performing Test SUPPORTED_mavx - Failed
-- Performing Test HAVE_INTRIN_mm_storeu_si16
-- Performing Test HAVE_INTRIN_mm_storeu_si16 - Success
-- Performing Test HAVE_INTRIN_mm_storeu_si32
-- Performing Test HAVE_INTRIN_mm_storeu_si32 - Success
-- Performing Test HAVE_INTRIN_mm_storeu_si64
-- Performing Test HAVE_INTRIN_mm_storeu_si64 - Success
-- Performing Test HAVE_INTRIN_mm_loadu_si32
-- Performing Test HAVE_INTRIN_mm_loadu_si32 - Success
-- Performing Test HAVE_INTRIN_mm_loadu_si64
-- Performing Test HAVE_INTRIN_mm_loadu_si64 - Success
-- Performing Test HAVE_INTRIN_mm_cvtsi128_si64
-- Performing Test HAVE_INTRIN_mm_cvtsi128_si64 - Success
-- Performing Test HAVE_INTRIN_mm_cvtsi64_si128
-- Performing Test HAVE_INTRIN_mm_cvtsi64_si128 - Success
-- Performing Test HAVE_INTRIN_mm_extract_epi64
-- Performing Test HAVE_INTRIN_mm_extract_epi64 - Success
-- Performing Test HAVE_INTRIN_mm256_zeroupper
-- Performing Test HAVE_INTRIN_mm256_zeroupper - Failed
-- Performing Test HAVE_INTRIN_mm256_loadu2_m128i
-- Performing Test HAVE_INTRIN_mm256_loadu2_m128i - Success
-- Performing Test HAVE_INTRIN_mm256_set_m128i
-- Performing Test HAVE_INTRIN_mm256_set_m128i - Success
-- x86 SIMD intrinsics enabled (using SIMDE for non-x86 targets)
-- ARM SIMD intrinsics enabled
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- CMAKE_INSTALL_RPATH=$ORIGIN;$ORIGIN/../lib
-- Performing Test SUPPORTED_mxsave
-- Performing Test SUPPORTED_mxsave - Failed
-- Performing Test SUPPORTED_msse4_2
-- Performing Test SUPPORTED_msse4_2 - Failed
-- Performing Test SUPPORTED_mavx2
-- Performing Test SUPPORTED_mavx2 - Failed
-- Configuring done (4.6s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/vvenc/build/release-shared
cmake --build build/release-shared -j 4 
gmake[1]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[2]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
[  1%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_arm_simd.dir/__/CommonLib/arm/neon/Buffer_neon.cpp.o
[  2%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_arm_simd.dir/__/CommonLib/arm/neon/InterpolationFilter_neon.cpp.o
[  3%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/AdaptiveLoopFilter_sse41.cpp.o
[  4%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_arm_simd.dir/__/CommonLib/arm/neon/RdCost_neon.cpp.o
[  5%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/AffineGradientSearch_sse41.cpp.o
[  6%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/Buffer_sse41.cpp.o
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[  6%] Built target vvenc_arm_simd
[  7%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/DepQuant_sse41.cpp.o
[  8%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/InterPred_sse41.cpp.o
[  9%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/InterpolationFilter_sse41.cpp.o
[ 10%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/IntraPred_sse41.cpp.o
[ 11%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/LoopFilter_sse41.cpp.o
[ 11%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/MCTF_avx41.cpp.o
[ 12%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/Quant_sse41.cpp.o
[ 13%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/RdCost_sse41.cpp.o
[ 14%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/SampleAdaptiveOffset_sse41.cpp.o
[ 15%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse41/Trafo_sse41.cpp.o
[ 16%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/sse42/DepQuant_sse42.cpp.o
[ 17%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/AdaptiveLoopFilter_avx2.cpp.o
[ 18%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/AffineGradientSearch_avx2.cpp.o
[ 19%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/Buffer_avx2.cpp.o
[ 20%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/DepQuant_avx2.cpp.o
[ 21%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/InterPred_avx2.cpp.o
[ 22%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/InterpolationFilter_avx2.cpp.o
[ 22%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/IntraPred_avx2.cpp.o
[ 23%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/LoopFilter_avx2.cpp.o
[ 24%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/MCTF_avx2.cpp.o
[ 25%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/Quant_avx2.cpp.o
[ 26%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/RdCost_avx2.cpp.o
[ 27%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/SampleAdaptiveOffset_avx2.cpp.o
[ 28%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc_x86_simd.dir/__/CommonLib/x86/avx2/Trafo_avx2.cpp.o
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 28%] Built target vvenc_x86_simd
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
[ 28%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/AdaptiveLoopFilter.cpp.o
[ 29%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/AffineGradientSearch.cpp.o
[ 30%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/BitStream.cpp.o
[ 31%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Buffer.cpp.o
[ 32%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/CodingStructure.cpp.o
[ 33%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/ContextModelling.cpp.o
[ 34%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Contexts.cpp.o
[ 35%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/DepQuant.cpp.o
[ 36%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/InterPrediction.cpp.o
[ 37%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/InterpolationFilter.cpp.o
[ 38%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/IntraPrediction.cpp.o
[ 39%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/LoopFilter.cpp.o
[ 39%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/MCTF.cpp.o
[ 40%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/MatrixIntraPrediction.cpp.o
[ 41%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Mv.cpp.o
[ 42%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/PicYuvMD5.cpp.o
[ 43%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Picture.cpp.o
[ 44%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/ProfileLevelTier.cpp.o
[ 45%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Quant.cpp.o
[ 46%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/QuantRDOQ.cpp.o
[ 47%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/QuantRDOQ2.cpp.o
[ 48%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/RdCost.cpp.o
[ 49%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Reshape.cpp.o
[ 50%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Rom.cpp.o
[ 50%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/RomTr.cpp.o
[ 51%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/SEI.cpp.o
[ 52%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/SampleAdaptiveOffset.cpp.o
[ 53%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/SearchSpaceCounter.cpp.o
[ 54%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Slice.cpp.o
[ 55%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/StatCounter.cpp.o
[ 56%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/TimeProfiler.cpp.o
[ 57%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/TrQuant.cpp.o
[ 58%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/TrQuant_EMT.cpp.o
[ 59%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/Unit.cpp.o
[ 60%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/UnitPartitioner.cpp.o
[ 61%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/UnitTools.cpp.o
[ 61%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/dtrace.cpp.o
[ 62%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/DecoderLib/DecCu.cpp.o
[ 63%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/BinEncoder.cpp.o
[ 64%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/BitAllocation.cpp.o
[ 65%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/CABACWriter.cpp.o
[ 66%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncAdaptiveLoopFilter.cpp.o
[ 67%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncCfg.cpp.o
[ 68%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncCu.cpp.o
[ 69%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncGOP.cpp.o
[ 70%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncHRD.cpp.o
[ 71%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncLib.cpp.o
[ 72%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncModeCtrl.cpp.o
[ 72%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncPicture.cpp.o
[ 73%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncReshape.cpp.o
[ 74%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncSampleAdaptiveOffset.cpp.o
[ 75%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/EncSlice.cpp.o
[ 76%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/GOPCfg.cpp.o
[ 77%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/InterSearch.cpp.o
[ 78%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/IntraSearch.cpp.o
[ 79%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/NALwrite.cpp.o
[ 80%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/PreProcess.cpp.o
[ 81%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/RateCtrl.cpp.o
[ 82%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/SEIEncoder.cpp.o
[ 83%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/SEIwrite.cpp.o
[ 83%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/EncoderLib/VLCWriter.cpp.o
[ 84%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/Utilities/NoMallocThreadPool.cpp.o
[ 85%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/vvenc.cpp.o
[ 86%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/vvencCfg.cpp.o
[ 87%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/vvencimpl.cpp.o
[ 88%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/CommonDefX86.cpp.o
[ 89%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/x86/InitX86.cpp.o
[ 90%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/arm/CommonDefARM.cpp.o
[ 91%] Building CXX object source/Lib/vvenc/CMakeFiles/vvenc.dir/__/CommonLib/arm/InitARM.cpp.o
[ 92%] Linking CXX shared library /tmp/vvenc/lib/release-shared/libvvenc.so
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 92%] Built target vvenc
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
[ 94%] Building CXX object test/vvenclibtest/CMakeFiles/vvenclibtest.dir/vvenclibtest.cpp.o
[ 94%] Building CXX object source/App/vvencapp/CMakeFiles/vvencapp.dir/vvencapp.cpp.o
[ 96%] Building CXX object source/App/vvencFFapp/CMakeFiles/vvencFFapp.dir/EncApp.cpp.o
[ 96%] Building C object test/vvencinterfacetest/CMakeFiles/vvencinterfacetest.dir/vvencinterfacetest.c.o
[ 97%] Linking C executable /tmp/vvenc/bin/release-shared/vvencinterfacetest
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 97%] Built target vvencinterfacetest
[ 98%] Building CXX object source/App/vvencFFapp/CMakeFiles/vvencFFapp.dir/encmain.cpp.o
[ 99%] Linking CXX executable /tmp/vvenc/bin/release-shared/vvenclibtest
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 99%] Built target vvenclibtest
[100%] Linking CXX executable /tmp/vvenc/bin/release-shared/vvencapp
[100%] Linking CXX executable /tmp/vvenc/bin/release-shared/vvencFFapp
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[100%] Built target vvencFFapp
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[100%] Built target vvencapp
gmake[2]: Leaving directory '/tmp/vvenc/build/release-shared'
gmake[1]: Leaving directory '/tmp/vvenc/build/release-shared'
cmake --build build/release-shared --target install
gmake[1]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[2]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 25%] Built target vvenc_x86_simd
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 28%] Built target vvenc_arm_simd
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 92%] Built target vvenc
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 94%] Built target vvencapp
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 96%] Built target vvencFFapp
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[ 98%] Built target vvenclibtest
gmake[3]: Entering directory '/tmp/vvenc/build/release-shared'
gmake[3]: Leaving directory '/tmp/vvenc/build/release-shared'
[100%] Built target vvencinterfacetest
gmake[2]: Leaving directory '/tmp/vvenc/build/release-shared'
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/include/vvenc/version.h
-- Up-to-date: /usr/local/include/vvenc
-- Installing: /usr/local/include/vvenc/vvenc.h
-- Installing: /usr/local/include/vvenc/vvencCfg.h
-- Installing: /usr/local/include/vvenc/vvencDecl.h
-- Installing: /usr/local/lib/libvvenc.so.1.12.0
-- Up-to-date: /usr/local/lib/libvvenc.so.1.12
-- Set non-toolchain portion of runtime path of "/usr/local/lib/libvvenc.so.1.12.0" to "$ORIGIN:$ORIGIN/../lib"
-- Up-to-date: /usr/local/lib/libvvenc.so
-- Installing: /usr/local/bin/vvencapp
-- Set non-toolchain portion of runtime path of "/usr/local/bin/vvencapp" to "$ORIGIN:$ORIGIN/../lib"
-- Installing: /usr/local/lib/cmake/vvenc/vvencConfig.cmake
-- Installing: /usr/local/lib/cmake/vvenc/vvencConfigVersion.cmake
-- Installing: /usr/local/lib/cmake/vvenc/vvencTargets-shared.cmake
-- Installing: /usr/local/lib/cmake/vvenc/vvencTargets-shared-release.cmake
-- Installing: /usr/local/lib/pkgconfig/libvvenc.pc
gmake[1]: Leaving directory '/tmp/vvenc/build/release-shared'
adamjw24 commented 1 month ago

I mark it as closed as the new version will come with a workaround (make ... enable-werror=0) and it seems other compilers work fine, giving you two ways to deal with this issue.