diff -urN a/source/CMakeLists.txt b/source/CMakeLists.txt --- a/source/CMakeLists.txt 2016-12-22 22:57:39.000000000 -0700 +++ b/source/CMakeLists.txt 2016-12-28 06:36:06.297232756 -0700 @@ -41,7 +41,7 @@ # System architecture detection string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSPROC) set(X86_ALIASES x86 i386 i686 x86_64 amd64) -set(ARM_ALIASES armv6l armv7l) +set(ARM_ALIASES armv5tel armv6l armv7l) list(FIND X86_ALIASES "${SYSPROC}" X86MATCH) list(FIND ARM_ALIASES "${SYSPROC}" ARMMATCH) set(POWER_ALIASES ppc64 ppc64le) @@ -71,9 +71,17 @@ else() set(CROSS_COMPILE_ARM 0) endif() - message(STATUS "Detected ARM target processor") + if(${SYSPROC} MATCHES "armv5.*") + message(STATUS "Detected ARMV5 system processor") + add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=0 -DHAVE_NEON=0) + elseif(${SYSPROC} STREQUAL "armv6l") + message(STATUS "Detected ARMV6 system processor") + add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1 -DHAVE_NEON=0) + elseif(${SYSPROC} STREQUAL "armv7l") + message(STATUS "Detected ARMV7 system processor") + add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1 -DHAVE_NEON=0 -fPIC) + endif() set(ARM 1) - add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1) else() message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown") message(STATUS "Please add this value near ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE}") @@ -208,18 +216,6 @@ endif() endif() endif() - if(ARM AND CROSS_COMPILE_ARM) - set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC) - elseif(ARM) - 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() - add_definitions(${ARM_ARGS}) if(FPROFILE_GENERATE) if(INTEL_CXX) add_definitions(-prof-gen -prof-dir="${CMAKE_CURRENT_BINARY_DIR}") diff -urN a/source/common/cpu.cpp b/source/common/cpu.cpp --- a/source/common/cpu.cpp 2016-12-22 22:57:39.000000000 -0700 +++ b/source/common/cpu.cpp 2016-12-28 06:36:06.297232756 -0700 @@ -37,7 +37,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;