Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building on ARM64 shows "target architecture: GENERIC" #615

Open
JeffMill opened this issue Apr 6, 2023 · 1 comment
Open

Building on ARM64 shows "target architecture: GENERIC" #615

JeffMill opened this issue Apr 6, 2023 · 1 comment

Comments

@JeffMill
Copy link

JeffMill commented Apr 6, 2023

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.

This should also have a check for:

_M_ARM64: Defined as 1 for compilations that target ARM64. Otherwise, undefined.

@ewertons
Copy link
Contributor

I see, the description you mentioned is coming from https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants