aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-crypto/libkcapi/libkcapi/0001-Use-__builtin_bswap32-on-Clang-if-supported.patch
blob: e713665ab30e4281d6b4b8d633f9238fb92f42b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
From 7b5dd67fee58f9f54c8a676abe2131776c0a3c52 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 20 Nov 2019 13:41:39 -0800
Subject: [PATCH] Use __builtin_bswap32 on Clang if supported

clang pretends to be gcc 4.2.1 so GCC_VERSION macro will decide that
__builtin_bswap32 is not supported on clang, whereas in reality it might
so its better to add a check for enquiring clang if it supports
__builtin_bswap32 or not

Upstream-Status: Submitted [https://github.com/smuellerDD/libkcapi/pull/83]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 lib/kcapi-kdf.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/kcapi-kdf.c b/lib/kcapi-kdf.c
index 9e53a0b..f32fbe9 100644
--- a/lib/kcapi-kdf.c
+++ b/lib/kcapi-kdf.c
@@ -54,10 +54,14 @@
 #include "kcapi.h"
 #include "internal.h"
 
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
+
 #define GCC_VERSION (__GNUC__ * 10000		\
 		     + __GNUC_MINOR__ * 100	\
 		     + __GNUC_PATCHLEVEL__)
-#if GCC_VERSION >= 40400
+#if GCC_VERSION >= 40400 || (defined(__clang__) && __has_builtin(__builtin_bswap32))
 # define __HAVE_BUILTIN_BSWAP32__
 #endif
 
-- 
2.24.0