From d40944a256c8182a10f95f331de685a377e39d2e Mon Sep 17 00:00:00 2001 From: Richael Zhuang Date: Fri, 30 Aug 2019 09:18:05 +0800 Subject: [PATCH] util: Solve "invalid target attribute" building error When building SPDK on aarch64, met error about invalid target attribute 'bmi', 'arch=core2' and 'arch=atom'. Signed-off-by: Richael Zhuang Change-Id: I369e61005e6550045e24d84147a71b5dd25c4a52 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466848 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- include/spdk/util.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/spdk/util.h b/include/spdk/util.h index a23acfe31..2d5288d0b 100644 --- a/include/spdk/util.h +++ b/include/spdk/util.h @@ -60,7 +60,8 @@ extern "C" { /* The following will automatically generate several version of * this function, targeted at different architectures. This * is only supported by GCC 6 or newer. */ -#if defined(__GNUC__) && __GNUC__ >= 6 && !defined(__clang__) +#if defined(__GNUC__) && __GNUC__ >= 6 && !defined(__clang__) \ + && (defined(__i386__) || defined(__x86_64__)) __attribute__((target_clones("bmi", "arch=core2", "arch=atom", "default"))) #endif static inline uint32_t @@ -82,7 +83,8 @@ spdk_align32pow2(uint32_t x) /* The following will automatically generate several version of * this function, targeted at different architectures. This * is only supported by GCC 6 or newer. */ -#if defined(__GNUC__) && __GNUC__ >= 6 && !defined(__clang__) +#if defined(__GNUC__) && __GNUC__ >= 6 && !defined(__clang__) \ + && (defined(__i386__) || defined(__x86_64__)) __attribute__((target_clones("bmi", "arch=core2", "arch=atom", "default"))) #endif static inline uint64_t