Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package smc-tools for openSUSE:Factory 
checked in at 2024-12-18 20:10:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/smc-tools (Old)
 and      /work/SRC/openSUSE:Factory/.smc-tools.new.29675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "smc-tools"

Wed Dec 18 20:10:48 2024 rev:16 rq:1231870 version:1.8.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/smc-tools/smc-tools.changes      2023-09-13 
20:48:10.309794643 +0200
+++ /work/SRC/openSUSE:Factory/.smc-tools.new.29675/smc-tools.changes   
2024-12-18 20:11:55.405758997 +0100
@@ -1,0 +2,12 @@
+Wed Dec 18 11:43:06 UTC 2024 - Nikolay Gueorguiev <[email protected]>
+
+- Upgrade smc-tools to v1.8.4 (jsc#PED-3280, jsc#PED-3227)
+  * Changes:
+   - smcd/smcr statistics: add statistics on sndbufs/RMBs usage
+  * Bug fixes:
+    - smc_rnics: Fix smc_rnics showing the wrong physical port
+    - util.h: Fix build with CFLAGS="-g"
+    - smc_run: Fix segfault issue during creating concurrent sockets
+    - Makefile: Make sure to show the right release number 
+
+-------------------------------------------------------------------

Old:
----
  smc-tools-1.8.3.tar.gz

New:
----
  smc-tools-1.8.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ smc-tools.spec ++++++
--- /var/tmp/diff_new_pack.zT9a0m/_old  2024-12-18 20:11:55.853777673 +0100
+++ /var/tmp/diff_new_pack.zT9a0m/_new  2024-12-18 20:11:55.857777839 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package smc-tools
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           smc-tools
-Version:        1.8.3
+Version:        1.8.4
 Release:        0
 Summary:        Shared Memory Communication via RDMA
 License:        EPL-1.0

++++++ smc-tools-1.8.3.tar.gz -> smc-tools-1.8.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/Makefile new/smc-tools-1.8.4/Makefile
--- old/smc-tools-1.8.3/Makefile        2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/Makefile        2024-12-18 11:27:51.000000000 +0100
@@ -9,7 +9,7 @@
 # http://www.eclipse.org/legal/epl-v10.html
 #
 
-SMC_TOOLS_RELEASE = 1.8.3
+SMC_TOOLS_RELEASE = 1.8.4
 VER_MAJOR         = $(shell echo $(SMC_TOOLS_RELEASE) | cut -d '.' -f 1)
 
 ARCHTYPE = $(shell uname -m)
@@ -106,13 +106,13 @@
 endif
 
 
-%d.o: %.c
+%d.o: %.c smctools_common.h
        ${CCC} ${ALL_CFLAGS} -DSMCD -c $< -o $@
 
-%r.o: %.c
+%r.o: %.c smctools_common.h
        ${CCC} ${ALL_CFLAGS} -DSMCR -c $< -o $@
 
-%.o: %.c
+%.o: %.c smctools_common.h
        ${CCC} ${ALL_CFLAGS} -c $< -o $@
 
 smc: smc.o info.o ueid.o seid.o dev.o linkgroup.o libnetlink.o util.o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/README.md 
new/smc-tools-1.8.4/README.md
--- old/smc-tools-1.8.3/README.md       2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/README.md       2024-12-18 11:27:51.000000000 +0100
@@ -39,6 +39,17 @@
 Release History:
 ================
 
+* __v1.8.4 (2024-12-17)__
+
+    Changes:
+    - `smcd`/`smcr` statistics: add statistics on sndbufs/RMBs usage
+
+    Bug fixes:
+    - `smc_rnics`: Fix smc_rnics showing the wrong physical port
+    - `util.h`:  Fix build with CFLAGS="-g"
+    - `smc_run`: Fix segfault issue during creating concurrent sockets
+    - `Makefile`: Make sure to show the right release number
+
 * __v1.8.3 (2023-07-28)__
 
     Bug fixes:
@@ -57,7 +68,7 @@
 * __v1.8.1 (2022-04-14)__
 
     Changes:
-    - `smc_rncs`: Recognize RoCE Express3 cards
+    - `smc_rnics`: Recognize RoCE Express3 cards
 
 * __v1.8.0 (2022-04-11)__
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/libnetlink.c 
new/smc-tools-1.8.4/libnetlink.c
--- old/smc-tools-1.8.3/libnetlink.c    2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/libnetlink.c    2024-12-18 11:27:51.000000000 +0100
@@ -302,3 +302,10 @@
                sk = NULL;
        }
 }
+
+uint64_t nl_attr_get_uint(const struct nlattr *nla)
+{
+       if (nla && nla_len(nla) == sizeof(uint32_t))
+               return nla_get_u32(nla);
+       return nla_get_u64(nla);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/libnetlink.h 
new/smc-tools-1.8.4/libnetlink.h
--- old/smc-tools-1.8.3/libnetlink.h    2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/libnetlink.h    2024-12-18 11:27:51.000000000 +0100
@@ -65,4 +65,5 @@
 int gen_nl_handle(int cmd, int nlmsg_flags,
                  int (*cb_handler)(struct nl_msg *msg, void *arg), void *arg);
 int gen_nl_handle_dump(int cmd, int (*cb_handler)(struct nl_msg *msg, void 
*arg), void *arg);
+uint64_t nl_attr_get_uint(const struct nlattr *nla);
 #endif /* SMC_LIBNETLINK_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/linkgroup.c 
new/smc-tools-1.8.4/linkgroup.c
--- old/smc-tools-1.8.3/linkgroup.c     2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/linkgroup.c     2024-12-18 11:27:51.000000000 +0100
@@ -319,6 +319,10 @@
        if (lgr_attrs[SMC_NLA_LGR_R_PNETID])
                snprintf((char*)lgr->pnet_id, sizeof(lgr->pnet_id), "%s",
                         nla_get_string(lgr_attrs[SMC_NLA_LGR_R_PNETID]));
+       if (lgr_attrs[SMC_NLA_LGR_R_SNDBUF_ALLOC])
+               lgr->sndbuf_alloc = 
nl_attr_get_uint(lgr_attrs[SMC_NLA_LGR_R_SNDBUF_ALLOC]);
+       if (lgr_attrs[SMC_NLA_LGR_R_RMB_ALLOC])
+               lgr->rmb_alloc = 
nl_attr_get_uint(lgr_attrs[SMC_NLA_LGR_R_RMB_ALLOC]);
        if (lgr_attrs[SMC_NLA_LGR_R_V2_COMMON]) {
                struct nlattr *v2_lgr_attrs[SMC_NLA_LGR_V2_MAX + 1];
 
@@ -365,6 +369,10 @@
        if (lgr_attrs[SMC_NLA_LGR_D_PNETID])
                snprintf((char*)lgr->pnet_id, sizeof(lgr->pnet_id), "%s",
                         nla_get_string(lgr_attrs[SMC_NLA_LGR_D_PNETID]));
+       if (lgr_attrs[SMC_NLA_LGR_D_SNDBUF_ALLOC])
+               lgr->sndbuf_alloc = 
nl_attr_get_uint(lgr_attrs[SMC_NLA_LGR_D_SNDBUF_ALLOC]);
+       if (lgr_attrs[SMC_NLA_LGR_D_DMB_ALLOC])
+               lgr->dmb_alloc = 
nl_attr_get_uint(lgr_attrs[SMC_NLA_LGR_D_DMB_ALLOC]);
        if (lgr_attrs[SMC_NLA_LGR_D_V2_COMMON]) {
                struct nlattr *v2_lgr_attrs[SMC_NLA_LGR_V2_MAX + 1];
 
@@ -402,6 +410,8 @@
                printf("EID      : %s\n", lgr->v2_lgr_info.negotiated_eid);
        }
        printf("#Conns   : %d\n", lgr->conns_num);
+       printf("Sndbuf   : %lld B\n", lgr->sndbuf_alloc);
+       printf("RMB      : %lld B\n", lgr->rmb_alloc);
 }
 
 static int show_lgr_smcr_info(struct nlattr **attr)
@@ -482,6 +492,8 @@
                printf("EID      : %s\n", lgr->v2_lgr_info.negotiated_eid);
        }
        printf("#Conns   : %d\n", lgr->conns_num);
+       printf("Sndbuf   : %lld B\n", lgr->sndbuf_alloc);
+       printf("DMB      : %lld B\n", lgr->dmb_alloc);
 }
 
 static int show_lgr_smcd_info(struct nlattr **attr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/smc-preload.c 
new/smc-tools-1.8.4/smc-preload.c
--- old/smc-tools-1.8.3/smc-preload.c   2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/smc-preload.c   2024-12-18 11:27:51.000000000 +0100
@@ -22,6 +22,7 @@
 #include <errno.h>
 #include <search.h>
 #include <ctype.h>
+#include <pthread.h>
 
 #define DLOPEN_FLAG RTLD_LAZY
 
@@ -34,8 +35,9 @@
 #define SMCPROTO_SMC6          1       /* SMC protocol, IPv6 */
 #endif
 
-int (*orig_socket)(int domain, int type, int protocol);
+int (*orig_socket)(int domain, int type, int protocol) = NULL;
 static void *dl_handle = NULL;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 
 static void initialize(void);
 
@@ -97,7 +99,7 @@
 {
        int rc;
 
-       if (!dl_handle)
+       if (!orig_socket)
                initialize();
 
        /* check if socket is eligible for AF_SMC */
@@ -135,10 +137,17 @@
 
 static void initialize(void)
 {
+       pthread_mutex_lock(&mutex);
+       if (orig_socket) {
+               pthread_mutex_unlock(&mutex);
+               return;
+       }
+
        set_debug_mode("SMC_DEBUG");
 
        dl_handle = dlopen(LIBC_SO, DLOPEN_FLAG);
        if (!dl_handle)
                dbg_msg(stderr, "dlopen failed: %s\n", dlerror());
        GET_FUNC(socket);
+       pthread_mutex_unlock(&mutex);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/smc_chk new/smc-tools-1.8.4/smc_chk
--- old/smc-tools-1.8.3/smc_chk 2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/smc_chk 2024-12-18 11:27:51.000000000 +0100
@@ -2,7 +2,7 @@
 
 # Copyright IBM Corp. 2021
 
-VERSION="1.8.3";
+VERSION="1.8.4";
 
 
 function usage() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/smc_dbg new/smc-tools-1.8.4/smc_dbg
--- old/smc-tools-1.8.3/smc_dbg 2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/smc_dbg 2024-12-18 11:27:51.000000000 +0100
@@ -2,7 +2,7 @@
 
 # Copyright IBM Corp. 2019
 
-VERSION="1.8.3";
+VERSION="1.8.4";
 
 
 function usage() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/smc_rnics 
new/smc-tools-1.8.4/smc_rnics
--- old/smc-tools-1.8.3/smc_rnics       2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/smc_rnics       2024-12-18 11:27:51.000000000 +0100
@@ -2,7 +2,7 @@
 
 # Copyright IBM Corp. 2018, 2022
 
-VERSION="1.8.3";
+VERSION="1.8.4";
 
 
 function usage() {
@@ -86,10 +86,14 @@
        dev_type="$1";
        if [ -e port ]; then
                port=`cat port`;
-               if [ $IBdev -eq 0 ]; then
-                       let port=$port-1;
+               if [ $port -eq 0 ]; then
+                       port="n/a";
                else
-                       port=1;
+                       if [ $IBdev -eq 0 ]; then
+                               let port=$port-1;
+                       else
+                               port=1;
+                       fi
                fi
        fi;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/smc_run new/smc-tools-1.8.4/smc_run
--- old/smc-tools-1.8.3/smc_run 2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/smc_run 2024-12-18 11:27:51.000000000 +0100
@@ -10,7 +10,7 @@
 # http://www.eclipse.org/legal/epl-v10.html
 #
 LIB_NAME="libsmc-preload.so"
-VERSION="1.8.3";
+VERSION="1.8.4";
 
 
 function usage() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/smctools_common.h 
new/smc-tools-1.8.4/smctools_common.h
--- old/smc-tools-1.8.3/smctools_common.h       2023-07-28 13:40:47.000000000 
+0200
+++ new/smc-tools-1.8.4/smctools_common.h       2024-12-18 11:27:51.000000000 
+0100
@@ -19,7 +19,7 @@
 #define STRINGIFY_1(x)         #x
 #define STRINGIFY(x)           STRINGIFY_1(x)
 
-#define RELEASE_STRING         "1.8.3"
+#define RELEASE_STRING         "1.8.4"
 
 #define PF_SMC 43
 
@@ -140,6 +140,11 @@
        SMC_NLA_LGR_R_CONNS_NUM,        /* u32 */
        SMC_NLA_LGR_R_V2_COMMON,        /* nest */
        SMC_NLA_LGR_R_V2,               /* nest */
+       SMC_NLA_LGR_R_NET_COOKIE,       /* u64 */
+       SMC_NLA_LGR_R_PAD,              /* flag */
+       SMC_NLA_LGR_R_BUF_TYPE,         /* u8 */
+       SMC_NLA_LGR_R_SNDBUF_ALLOC,     /* uint */
+       SMC_NLA_LGR_R_RMB_ALLOC,        /* uint */
        __SMC_NLA_LGR_R_MAX,
        SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
 };
@@ -173,6 +178,10 @@
        SMC_NLA_LGR_D_CHID,             /* u16 */
        SMC_NLA_LGR_D_PAD,              /* flag */
        SMC_NLA_LGR_D_V2_COMMON,        /* nest */
+       SMC_NLA_LGR_D_EXT_GID,          /* u64 */
+       SMC_NLA_LGR_D_PEER_EXT_GID,     /* u64 */
+       SMC_NLA_LGR_D_SNDBUF_ALLOC,     /* uint */
+       SMC_NLA_LGR_D_DMB_ALLOC,        /* uint */
        __SMC_NLA_LGR_D_MAX,
        SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 };
@@ -260,6 +269,8 @@
        SMC_NLA_STATS_T_TX_BYTES,       /* u64 */
        SMC_NLA_STATS_T_RX_CNT,         /* u64 */
        SMC_NLA_STATS_T_TX_CNT,         /* u64 */
+       SMC_NLA_STATS_T_RX_RMB_USAGE,   /* uint */
+       SMC_NLA_STATS_T_TX_RMB_USAGE,   /* uint */
        __SMC_NLA_STATS_T_MAX,
        SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
 };
@@ -497,6 +508,8 @@
        __u32           conns_num;
        __u16           chid;
        __u8            vlan_id;
+       __u64           sndbuf_alloc;
+       __u64           dmb_alloc;
        struct smc_v2_lgr_info v2_lgr_info;
 };
 
@@ -525,6 +538,8 @@
        __u8            pnet_id[SMC_MAX_PNETID_LEN];
        __u8            vlan_id;
        __u32           conns_num;
+       __u64           sndbuf_alloc;
+       __u64           rmb_alloc;
        struct smc_v2_lgr_info v2_lgr_info;
 };
 #endif /* SMCTOOLS_COMMON_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/stats.c new/smc-tools-1.8.4/stats.c
--- old/smc-tools-1.8.3/stats.c 2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/stats.c 2024-12-18 11:27:51.000000000 +0100
@@ -47,7 +47,7 @@
 FILE *cache_fp = NULL;
 char *cache_file_path = NULL;
 
-static char* j_output[63] = {"SMC_INT_TX_BUF_8K", "SMC_INT_TX_BUF_16K", 
"SMC_INT_TX_BUF_32K", "SMC_INT_TX_BUF_64K", "SMC_INT_TX_BUF_128K",
+static char* j_output[65] = {"SMC_INT_TX_BUF_8K", "SMC_INT_TX_BUF_16K", 
"SMC_INT_TX_BUF_32K", "SMC_INT_TX_BUF_64K", "SMC_INT_TX_BUF_128K",
                            "SMC_INT_TX_BUF_256K", "SMC_INT_TX_BUF_512K", 
"SMC_INT_TX_BUF_1024K", "SMC_INT_TX_BUF_G_1024K",
                            "SMC_INT_RX_BUF_8K", "SMC_INT_RX_BUF_16K", 
"SMC_INT_RX_BUF_32K", "SMC_INT_RX_BUF_64K", "SMC_INT_RX_BUF_128K",
                            "SMC_INT_RX_BUF_256K", "SMC_INT_RX_BUF_512K", 
"SMC_INT_RX_BUF_1024K", "SMC_INT_RX_BUF_G_1024K",
@@ -61,7 +61,7 @@
                            "SMC_INT_RX_BUF_FULL_CNT", 
"SMC_INT_RX_BUF_REUSE_CNT", "SMC_INT_RX_BUF_ALLOC_CNT", 
"SMC_INT_RX_BUF_DGRADE_CNT",
                            "SMC_CLNT_V1_SUCC_CNT", "SMC_CLNT_V2_SUCC_CNT", 
"SMC_SRV_V1_SUCC_CNT", "SMC_SRV_V2_SUCC_CNT",
                            "SMC_SENDPAGE_CNT", "SMC_URG_DATA_CNT", 
"SMC_SPLICE_CNT", "SMC_CORK_CNT", "SMC_NDLY_CNT",
-                           "SMC_RX_BYTES", "SMC_TX_BYTES", "SMC_RX_CNT", 
"SMC_TX_CNT"
+                           "SMC_RX_BYTES", "SMC_TX_BYTES", "SMC_RX_CNT", 
"SMC_TX_CNT", "SMC_RX_RMB_USAGE", "SMC_TX_RMB_USAGE"
 };
 
 static struct nla_policy smc_gen_stats_policy[SMC_NLA_STATS_MAX + 1] = {
@@ -399,6 +399,8 @@
        printf("  Data transmitted (Bytes) %14llu (%s)\n",
                smc_stat.smc[tech_type].rx_bytes, temp_str);
        printf("  Total requests             %12llu\n", tech->rx_cnt);
+       get_abbreviated(smc_stat.smc[tech_type].rx_rmbuse, 6, temp_str);
+       printf("  Buffer usage (Bytes)       %12llu (%s)\n", tech->rx_rmbuse, 
temp_str);
        printf("  Buffer full                %12llu (%.2f%%)\n", 
tech->rmb_rx.buf_full_cnt,
                        buf_rx_full);
        if (d_level) {
@@ -420,6 +422,8 @@
        printf("  Data transmitted (Bytes) %14llu (%s)\n",
                smc_stat.smc[tech_type].tx_bytes, temp_str);
        printf("  Total requests             %12llu\n", tech->tx_cnt);
+       get_abbreviated(smc_stat.smc[tech_type].tx_rmbuse, 6, temp_str);
+       printf("  Buffer usage (Bytes)       %12llu (%s)\n", tech->tx_rmbuse, 
temp_str);
        printf("  Buffer full                %12llu (%.2f%%)\n", 
tech->rmb_tx.buf_full_cnt,
                        buf_full);
        printf("  Buffer full (remote)       %12llu (%.2f%%)\n", 
tech->rmb_tx.buf_full_peer_cnt,
@@ -622,6 +626,14 @@
                trgt = nla_get_u64(tech_attrs[SMC_NLA_STATS_T_TX_BYTES]);
                smc_stat.smc[tech_type].tx_bytes = trgt;
        }
+       if (tech_attrs[SMC_NLA_STATS_T_RX_RMB_USAGE]) {
+               trgt = 
nl_attr_get_uint(tech_attrs[SMC_NLA_STATS_T_RX_RMB_USAGE]);
+               smc_stat.smc[tech_type].rx_rmbuse = trgt;
+       }
+       if (tech_attrs[SMC_NLA_STATS_T_TX_RMB_USAGE]) {
+               trgt = 
nl_attr_get_uint(tech_attrs[SMC_NLA_STATS_T_TX_RMB_USAGE]);
+               smc_stat.smc[tech_type].tx_rmbuse = trgt;
+       }
        if (tech_attrs[SMC_NLA_STATS_T_RX_CNT]) {
                trgt = nla_get_u64(tech_attrs[SMC_NLA_STATS_T_RX_CNT]);
                smc_stat.smc[tech_type].rx_cnt = trgt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/stats.h new/smc-tools-1.8.4/stats.h
--- old/smc-tools-1.8.3/stats.h 2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/stats.h 2024-12-18 11:27:51.000000000 +0100
@@ -113,6 +113,8 @@
        __u64   tx_bytes;
        __u64   rx_cnt;
        __u64   tx_cnt;
+       __u64   rx_rmbuse;
+       __u64   tx_rmbuse;
 };
 
 struct smc_stats {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/smc-tools-1.8.3/util.h new/smc-tools-1.8.4/util.h
--- old/smc-tools-1.8.3/util.h  2023-07-28 13:40:47.000000000 +0200
+++ new/smc-tools-1.8.4/util.h  2024-12-18 11:27:51.000000000 +0100
@@ -33,7 +33,7 @@
 int get_abbreviated(uint64_t num, int max_digs, char *res);
 int contains(const char *prfx, const char *str);
 
-inline int is_str_empty(char *str)
+static inline int is_str_empty(char *str)
 {
        if (str && str[0] == '\0')
                return 1;

Reply via email to