Index: clang/CMakeLists.txt =================================================================== --- clang/CMakeLists.txt +++ clang/CMakeLists.txt @@ -238,6 +238,10 @@ set(CLANG_SYSTEMZ_DEFAULT_ARCH "z10" CACHE STRING "SystemZ Default Arch") +if (NOT (CLANG_AARCH64_DEFAULT_CPU)) + set(CLANG_AARCH64_DEFAULT_CPU "generic" CACHE STRING "AArch64 Default CPU") +endif() + set(CLANG_VENDOR ${PACKAGE_VENDOR} CACHE STRING "Vendor-specific text for showing with version information.") Index: clang/include/clang/Config/config.h.cmake =================================================================== --- clang/include/clang/Config/config.h.cmake +++ clang/include/clang/Config/config.h.cmake @@ -32,6 +32,9 @@ /* Default architecture for SystemZ. */ #define CLANG_SYSTEMZ_DEFAULT_ARCH "${CLANG_SYSTEMZ_DEFAULT_ARCH}" +/* Default CPU for AArch64. */ +#define CLANG_AARCH64_DEFAULT_CPU "${CLANG_AARCH64_DEFAULT_CPU}" + /* Multilib basename for libdir. */ #define CLANG_INSTALL_LIBDIR_BASENAME "${CLANG_INSTALL_LIBDIR_BASENAME}" Index: clang/lib/Driver/ToolChains/Arch/AArch64.cpp =================================================================== --- clang/lib/Driver/ToolChains/Arch/AArch64.cpp +++ clang/lib/Driver/ToolChains/Arch/AArch64.cpp @@ -8,6 +8,7 @@ #include "AArch64.h" #include "../CommonArgs.h" +#include "clang/Config/config.h" #include "clang/Driver/Driver.h" #include "clang/Driver/DriverDiagnostic.h" #include "clang/Driver/Options.h" @@ -63,7 +64,7 @@ return Triple.getArch() == llvm::Triple::aarch64_32 ? "apple-s4" : "apple-a7"; - return "generic"; + return CLANG_AARCH64_DEFAULT_CPU; } // Decode AArch64 features from string like +[no]featureA+[no]featureB+...