Open JeffMill opened 1 year ago
here's why GENERIC is showing. azure c isn't detecting ARM64: azure_c_shared_utility\azure_iot_build_rules.cmake has:
if (MSVC) detect_architecture("_M_AMD64" x86_64) detect_architecture("_M_IX86" x86) detect_architecture("_M_ARM" ARM) else() detect_architecture("__x86_64__" x86_64) detect_architecture("__i386__" x86) detect_architecture("__arm__" ARM) endif() if (NOT DEFINED ARCHITECTURE OR ARCHITECTURE STREQUAL "") set(ARCHITECTURE "GENERIC") endif() message(STATUS "target architecture: ${ARCHITECTURE}")
_M_ARM: Defined as the integer literal value 7 for compilations that target ARM processors. Undefined for ARM64, ARM64EC, and other targets.
_M_ARM
This should also have a check for:
_M_ARM64: Defined as 1 for compilations that target ARM64. Otherwise, undefined.
_M_ARM64
I see, the description you mentioned is coming from https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170
here's why GENERIC is showing. azure c isn't detecting ARM64: azure_c_shared_utility\azure_iot_build_rules.cmake has:
_M_ARM
: Defined as the integer literal value 7 for compilations that target ARM processors. Undefined for ARM64, ARM64EC, and other targets.This should also have a check for:
_M_ARM64
: Defined as 1 for compilations that target ARM64. Otherwise, undefined.