# Set architecture alignment requirements
if(WITH_UNALIGNED)
- if(BASEARCH_ARM_FOUND OR (BASEARCH_PPC_FOUND AND "${ARCH}" MATCHES "powerpc64le") OR BASEARCH_X86_FOUND)
+ if((BASEARCH_ARM_FOUND AND NOT "${ARCH}" MATCHES "armv[2-7]") OR (BASEARCH_PPC_FOUND AND "${ARCH}" MATCHES "powerpc64le") OR BASEARCH_X86_FOUND)
if(NOT DEFINED UNALIGNED_OK)
set(UNALIGNED_OK TRUE)
endif()
endif()
if(BASEARCH_ARM_FOUND)
if(NOT DEFINED UNALIGNED64_OK)
- if("${ARCH}" MATCHES "(arm(v[8-9])?|aarch64)")
+ if("${ARCH}" MATCHES "armv[2-7]")
+ set(UNALIGNED64_OK FALSE)
+ elseif("${ARCH}" MATCHES "(arm(v[8-9])?|aarch64)")
set(UNALIGNED64_OK TRUE)
endif()
endif()
endif()
list(APPEND ZLIB_ARCH_HDRS ${ARCHDIR}/arm.h)
list(APPEND ZLIB_ARCH_SRCS ${ARCHDIR}/armfeature.c)
- if(WITH_ACLE AND NOT MSVC)
+ if(WITH_ACLE AND NOT MSVC AND NOT "${ARCH}" MATCHES "armv[2-7]")
check_acle_intrinsics()
if(HAVE_ACLE_INTRIN)
add_definitions(-DARM_ACLE_CRC_HASH)
add_feature_info(WITH_CODE_COVERAGE WITH_CODE_COVERAGE "Enable code coverage reporting")
add_feature_info(WITH_INFLATE_STRICT WITH_INFLATE_STRICT "Build with strict inflate distance checking")
add_feature_info(WITH_INFLATE_ALLOW_INVALID_DIST WITH_INFLATE_ALLOW_INVALID_DIST "Build with zero fill for inflate invalid distances")
-add_feature_info(WITH_UNALIGNED WITH_UNALIGNED "Support unaligned reads on platforms that support it")
+add_feature_info(WITH_UNALIGNED UNALIGNED_OK "Support unaligned reads on platforms that support it")
+add_feature_info(WITH_UNALIGNED64 UNALIGNED64_OK "Support unaligned 64-bit reads on platforms that support it")
if(BASEARCH_ARM_FOUND)
add_feature_info(WITH_ACLE WITH_ACLE "Build with ACLE")