package/open62541: fix build with nios2
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Tue, 27 Jul 2021 07:37:55 +0000 (09:37 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Wed, 28 Jul 2021 19:19:12 +0000 (21:19 +0200)
Fix the following build failure with nios2 raised since bump to version
1.2.2 in commit b436b82411305839abc76bb438fe92661a067526:

/home/buildroot/autobuild/instance-1/output-1/build/open62541-v1.2.2/src/ua_types_encoding_binary.c: In function 'unpack754':
/home/buildroot/autobuild/instance-1/output-1/build/open62541-v1.2.2/src/ua_types_encoding_binary.c:322:12: error: conversion to 'long double' from 'long long int' may alter its value [-Werror=conversion]
     result /= (1LL<<significandbits);
            ^~

Fixes:
 - http://autobuild.buildroot.org/results/c0a33dbada549c480bc741c1c8177b788ff053db

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/open62541/0003-fix-core-Explicit-cast-to-avoid-compiler-warning.patch [new file with mode: 0644]

diff --git a/package/open62541/0003-fix-core-Explicit-cast-to-avoid-compiler-warning.patch b/package/open62541/0003-fix-core-Explicit-cast-to-avoid-compiler-warning.patch
new file mode 100644 (file)
index 0000000..dea325c
--- /dev/null
@@ -0,0 +1,25 @@
+From 0c53fd776af9631c915c8722e1d68ce9a69fa3f6 Mon Sep 17 00:00:00 2001
+From: Andreas Walter <andreas.walter@waltronix.de>
+Date: Fri, 26 Feb 2021 11:49:25 +0100
+Subject: [PATCH] fix(core): Explicit cast to avoid compiler warning (#4203)
+
+[Retrieved from:
+https://github.com/open62541/open62541/commit/0c53fd776af9631c915c8722e1d68ce9a69fa3f6]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/ua_types_encoding_binary.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ua_types_encoding_binary.c b/src/ua_types_encoding_binary.c
+index 0fe88eb98e0..abbd23735d3 100644
+--- a/src/ua_types_encoding_binary.c
++++ b/src/ua_types_encoding_binary.c
+@@ -319,7 +319,7 @@ static long double
+ unpack754(uint64_t i, unsigned bits, unsigned expbits) {
+     unsigned significandbits = bits - expbits - 1;
+     long double result = (long double)(i&(uint64_t)((1LL<<significandbits)-1));
+-    result /= (1LL<<significandbits);
++    result /= (long double)(1LL<<significandbits);
+     result += 1.0f;
+     unsigned bias = (unsigned)(1<<(expbits-1)) - 1;
+     long long shift = (long long)((i>>significandbits) & (uint64_t)((1LL<<expbits)-1)) - bias;