aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-connectivity/openssl/openssl/0001-Define-GCC_VERSION-macro-to-cover-upto-gcc-5.patch
blob: 46d1adf33bc1f012821a2cff9db8bb225be10d00 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
From 0aa68f7681a74f6ff80a80c5843bc35e5effffb9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 22 May 2015 12:43:39 -0700
Subject: [PATCH] Define GCC_VERSION macro to cover upto gcc-5

Current check is limited to gcc 4 with minor versions
but when we use gcc 5.1, then minor version check fails
with current setup and we end up with build errors like

| In file included from bn_div.c:62:0:
| bn_div.c: In function 'BN_div':
| bn_lcl.h:311:9: error: impossible constraint in 'asm'
|          asm ("dmultu    %2,%3"          \
|          ^
| bn_div.c:402:13: note: in expansion of macro 'BN_UMULT_LOHI'
|              BN_UMULT_LOHI(t2l, t2h, d1, q);
|              ^
| <builtin>: recipe for target 'bn_div.o' failed
| make[2]: *** [bn_div.o] Error 1

Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
Upstream-Status: [Submitted]
 crypto/bn/bn_lcl.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/crypto/bn/bn_lcl.h b/crypto/bn/bn_lcl.h
index 196df7e..e801ba7 100644
--- a/crypto/bn/bn_lcl.h
+++ b/crypto/bn/bn_lcl.h
@@ -118,6 +118,9 @@
 extern "C" {
 #endif
 
+#define GCC_VERSION (__GNUC__ * 10000 \
+                     + __GNUC_MINOR__ * 100 \
+                     + __GNUC_PATCHLEVEL__)
 /*-
  * Bignum consistency macros
  * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from
@@ -443,7 +446,7 @@ unsigned __int64 _umul128(unsigned __int64 a, unsigned __int64 b,
 #   endif
 #  elif defined(__mips) && (defined(SIXTY_FOUR_BIT) || defined(SIXTY_FOUR_BIT_LONG))
 #   if defined(__GNUC__) && __GNUC__>=2
-#    if __GNUC__>=4 && __GNUC_MINOR__>=4
+#    if GCC_VERSION > 40400
                                      /* "h" constraint is no more since 4.4 */
 #     define BN_UMULT_HIGH(a,b)          (((__uint128_t)(a)*(b))>>64)
 #     define BN_UMULT_LOHI(low,high,a,b) ({     \
-- 
2.1.4