[OE-core] [PATCH 1/3] openssl: Fix build with gcc5 on mips64

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Mon May 25 19:22:03 UTC 2015


On May 22, 2015 9:56:51 PM GMT+02:00, Khem Raj <raj.khem at gmail.com> wrote:
>Patch is submitted upstream as well
>
>Signed-off-by: Khem Raj <raj.khem at gmail.com>
>---
>...ine-GCC_VERSION-macro-to-cover-upto-gcc-5.patch | 53
>++++++++++++++++++++++
> .../recipes-connectivity/openssl/openssl_1.0.2a.bb |  1 +
> 2 files changed, 54 insertions(+)
>create mode 100644
>meta/recipes-connectivity/openssl/openssl/0001-Define-GCC_VERSION-macro-to-cover-upto-gcc-5.patch
>
>diff --git
>a/meta/recipes-connectivity/openssl/openssl/0001-Define-GCC_VERSION-macro-to-cover-upto-gcc-5.patch
>b/meta/recipes-connectivity/openssl/openssl/0001-Define-GCC_VERSION-macro-to-cover-upto-gcc-5.patch
>new file mode 100644
>index 0000000..46d1adf
>--- /dev/null
>+++
>b/meta/recipes-connectivity/openssl/openssl/0001-Define-GCC_VERSION-macro-to-cover-upto-gcc-5.patch
>@@ -0,0 +1,53 @@
>+From 0aa68f7681a74f6ff80a80c5843bc35e5effffb9 Mon Sep 17 00:00:00 2001
>+From: Khem Raj <raj.khem at 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 at 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

Not that it would really matter nowadays, but this should likely be >=

Cheers,

>+                                      /* "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
>+
>diff --git a/meta/recipes-connectivity/openssl/openssl_1.0.2a.bb
>b/meta/recipes-connectivity/openssl/openssl_1.0.2a.bb
>index 9a218be..c05be1f 100644
>--- a/meta/recipes-connectivity/openssl/openssl_1.0.2a.bb
>+++ b/meta/recipes-connectivity/openssl/openssl_1.0.2a.bb
>@@ -37,6 +37,7 @@ SRC_URI += "file://configure-targets.patch \
>             file://ptest-deps.patch \
>             file://run-ptest \
>             file://crypto_use_bigint_in_x86-64_perl.patch \
>+           
>file://0001-Define-GCC_VERSION-macro-to-cover-upto-gcc-5.patch \
>            "
> 
> SRC_URI[md5sum] = "a06c547dac9044161a477211049f60ef"





More information about the Openembedded-core mailing list