[meta-webserver] netdata: Fix build errors with clang

Message ID 20220424165834.4071907-1-raj.khem@gmail.com
State New
Headers show
Series [meta-webserver] netdata: Fix build errors with clang | expand

Commit Message

Khem Raj April 24, 2022, 4:58 p.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...plicit-typecast-to-enum-rrdset_flags.patch | 44 +++++++++++++++++++
 .../netdata/netdata_1.34.1.bb                 |  4 +-
 2 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100644 meta-webserver/recipes-webadmin/netdata/netdata/0001-Use-explicit-typecast-to-enum-rrdset_flags.patch

Patch

diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/0001-Use-explicit-typecast-to-enum-rrdset_flags.patch b/meta-webserver/recipes-webadmin/netdata/netdata/0001-Use-explicit-typecast-to-enum-rrdset_flags.patch
new file mode 100644
index 0000000000..d0002887e1
--- /dev/null
+++ b/meta-webserver/recipes-webadmin/netdata/netdata/0001-Use-explicit-typecast-to-enum-rrdset_flags.patch
@@ -0,0 +1,44 @@ 
+From e8ec0a0f3a353a8167687a8fdb26773e45927aac Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 24 Apr 2022 09:49:12 -0700
+Subject: [PATCH] Use explicit typecast to enum rrdset_flags
+
+specifications say
+An enumerator can be promoted to an integer value. However,
+converting an integer to an enumerator requires an explicit
+cast, and the results are not defined.
+
+Therefore The bitwise OR operation you are performing results
+in an int, which you then attempt to assign to a variable of
+type rrdset_flags without a cast.
+
+Fixes
+| ml/Host.cc:167:9: error: assigning to 'RRDSET_FLAGS' (aka 'rrdset_flags') from incompatible type 'int'
+|         rrdset_flag_set(RS, RRDSET_FLAG_ANOMALY_DETECTION);
+|         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/netdata/netdata/pull/12750]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ database/rrd.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/database/rrd.h b/database/rrd.h
+index 071e1d0..dc8e39f 100644
+--- a/database/rrd.h
++++ b/database/rrd.h
+@@ -489,8 +489,8 @@ typedef enum rrdset_flags {
+ #define rrdset_flag_clear(st, flag) __atomic_and_fetch(&((st)->flags), ~flag, __ATOMIC_SEQ_CST)
+ #else
+ #define rrdset_flag_check(st, flag) ((st)->flags & (flag))
+-#define rrdset_flag_set(st, flag)   (st)->flags |= (flag)
+-#define rrdset_flag_clear(st, flag) (st)->flags &= ~(flag)
++#define rrdset_flag_set(st, flag)   (st)->flags = (rrdset_flags)((st)->flags | flag)
++#define rrdset_flag_clear(st, flag) (st)->flags = (rrdset_flags)((st)->flags & ~(flag))
+ #endif
+ #define rrdset_flag_check_noatomic(st, flag) ((st)->flags & (flag))
+ 
+-- 
+2.36.0
+
diff --git a/meta-webserver/recipes-webadmin/netdata/netdata_1.34.1.bb b/meta-webserver/recipes-webadmin/netdata/netdata_1.34.1.bb
index 71fb0783b6..b777d20897 100644
--- a/meta-webserver/recipes-webadmin/netdata/netdata_1.34.1.bb
+++ b/meta-webserver/recipes-webadmin/netdata/netdata_1.34.1.bb
@@ -7,7 +7,9 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=fc9b848046ef54b5eaee6071947abd24"
 
 DEPENDS += "libuv util-linux zlib"
 
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BPN}-v${PV}.tar.gz"
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BPN}-v${PV}.tar.gz \
+           file://0001-Use-explicit-typecast-to-enum-rrdset_flags.patch \
+"
 SRC_URI[sha256sum] = "8ea0786df0e952209c14efeb02e25339a0769aa3edc029e12816b8ead24a82d7"
 
 # default netdata.conf for netdata configuration