From ce33b77707e708348311aea2a9b2401ed4685aa2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 20 Jul 2017 12:14:03 -0700 Subject: [PATCH 5/5] Pass -march=armv8.1-a instead of -mcrc When we pass -mcrc it does not cause driver to pass right options to assembler, especially when using GNU assembler, is used this causes assembler failures to recognise crc instructions since the default -march option passed it armv8-a /tmp/scudo_crc32-9e9612.s:14: Error: selected processor does not support `crc32cx w0,w0,x1' Adding -march=armv8.1-a forces the driver to pass -march=armv8.1-a to assembler as well, which fixes this issue Signed-off-by: Khem Raj --- lib/scudo/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: git/lib/scudo/CMakeLists.txt =================================================================== --- git.orig/lib/scudo/CMakeLists.txt +++ git/lib/scudo/CMakeLists.txt @@ -26,7 +26,9 @@ endif() # Enable the AArch64 CRC32 feature for scudo_crc32.cpp, if available. # Note that it is enabled by default starting with armv8.1-a. if (COMPILER_RT_HAS_MCRC_FLAG) - set_source_files_properties(scudo_crc32.cpp PROPERTIES COMPILE_FLAGS -mcrc) + if ("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "aarch64") + set_source_files_properties(scudo_crc32.cpp PROPERTIES COMPILE_FLAGS -march=armv8.1-a) + endif() endif() if(COMPILER_RT_HAS_SCUDO)