-- 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()
 
