-- Allow QNNPACK's own CMakeLists.txt platform check to accept FreeBSD on -- aarch64. Upstream only allow-lists Darwin/Linux/Android for -- CMAKE_SYSTEM_NAME here, causing configure to abort with -- "Unrecognized CMAKE_SYSTEM_NAME = FreeBSD" (see -- https://github.com/pytorch/pytorch/issues/144608). QNNPACK itself builds -- and runs fine on FreeBSD/aarch64 once this check is relaxed, so only widen -- it for that specific target; other platforms keep upstream's original -- behavior unchanged. --- aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt.orig 2026-09-02 17:43:46 UTC +++ aten/src/ATen/native/quantized/cpu/qnnpack/CMakeLists.txt @@ -54,13 +54,13 @@ if(NOT CMAKE_SYSTEM_PROCESSOR) else() message(FATAL_ERROR "CMAKE_SYSTEM_PROCESSOR is not defined") endif() -elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64|armv[5-8].*|aarch64|arm64)$") +elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64|AMD64|amd64|armv[5-8].*|aarch64|arm64)$") message(FATAL_ERROR "Unrecognized CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR}") endif() if(NOT CMAKE_SYSTEM_NAME) message(FATAL_ERROR "CMAKE_SYSTEM_NAME not defined") -elseif(NOT CMAKE_SYSTEM_NAME MATCHES "^(Darwin|Linux|Android)$") +elseif(NOT CMAKE_SYSTEM_NAME MATCHES "^(Darwin|Linux|FreeBSD|Android)$") message(FATAL_ERROR "Unrecognized CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}") endif() @@ -274,7 +274,7 @@ endif() list(APPEND PYTORCH_QNNPACK_UKERNELS ${PYTORCH_QNNPACK_ARM_NEON_UKERNELS}) list(APPEND PYTORCH_QNNPACK_UKERNELS ${PYTORCH_QNNPACK_AARCH64_ASM_UKERNELS}) endif() -if(PYTORCH_QNNPACK_TARGET_PROCESSOR MATCHES "^(i[3-6]86|x86_64)$" OR IOS_ARCH MATCHES "^(i386|x86_64)$") +if(PYTORCH_QNNPACK_TARGET_PROCESSOR MATCHES "^(i[3-6]86|x86_64|AMD64|amd64)$" OR IOS_ARCH MATCHES "^(i386|x86_64)$") list(APPEND PYTORCH_QNNPACK_UKERNELS ${PYTORCH_QNNPACK_X86_SSE2_UKERNELS}) endif()