diff -r 2a65b7209850 source/CMakeLists.txt --- a/source/CMakeLists.txt Fri May 29 23:09:35 2020 +0530 +++ b/source/CMakeLists.txt Tue Jun 09 12:49:19 2020 -0600 @@ -40,7 +40,7 @@ # System architecture detection string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSPROC) set(X86_ALIASES x86 i386 i686 x86_64 amd64) -set(ARM_ALIASES armv6l armv7l aarch64) +set(ARM_ALIASES armv5tel armv6l armv7l aarch64) list(FIND X86_ALIASES "${SYSPROC}" X86MATCH) list(FIND ARM_ALIASES "${SYSPROC}" ARMMATCH) set(POWER_ALIASES ppc64 ppc64le) @@ -76,8 +76,16 @@ set(ARM64 1) add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=1 -DHAVE_ARMV6=0) else() - message(STATUS "Detected ARM target processor") - add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=1) + if(${SYSPROC} MATCHES "armv5.*") + message(STATUS "Detected ARMV5 system processor") + add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=0 -DHAVE_NEON=0) + elseif(${SYSPROC} STREQUAL "armv6l") + message(STATUS "Detected ARMV6 system processor") + add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=0 -DHAVE_NEON=0) + elseif(${SYSPROC} STREQUAL "armv7l") + message(STATUS "Detected ARMV7 system processor") + add_definitions(-DX265_ARCH_ARM=1 -DX265_ARCH_ARM64=0 -DHAVE_ARMV6=0 -DHAVE_NEON=0 -fPIC) + endif() endif() else() message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown") @@ -238,28 +246,11 @@ endif() endif() endif() - if(ARM AND CROSS_COMPILE_ARM) - if(ARM64) - set(ARM_ARGS -fPIC) - else() - set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC) - endif() - message(STATUS "cross compile arm") - elseif(ARM) - if(ARM64) - set(ARM_ARGS -fPIC) - add_definitions(-DHAVE_NEON) - else() - find_package(Neon) - if(CPU_HAS_NEON) - set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC) - add_definitions(-DHAVE_NEON) - else() - set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm) - endif() - endif() + if(ARM64) + set(ARM_ARGS -fPIC) + add_definitions(-DHAVE_NEON) + add_definitions(${ARM_ARGS}) endif() - add_definitions(${ARM_ARGS}) if(FPROFILE_GENERATE) if(INTEL_CXX) add_definitions(-prof-gen -prof-dir="${CMAKE_CURRENT_BINARY_DIR}") diff -r 2a65b7209850 source/common/cpu.cpp --- a/source/common/cpu.cpp Fri May 29 23:09:35 2020 +0530 +++ b/source/common/cpu.cpp Tue Jun 09 12:49:19 2020 -0600 @@ -39,7 +39,7 @@ #include #endif -#if X265_ARCH_ARM && !defined(HAVE_NEON) +#if X265_ARCH_ARM && (!defined(HAVE_NEON) || HAVE_NEON==0) #include #include static sigjmp_buf jmpbuf;