File owfs-fix-gcc10.patch of Package owfs

From 95f3676aaad77c3a2c19eec5db73b42d3762b53a Mon Sep 17 00:00:00 2001
From: Tomasz Torcz <tomek@pipebreaker.pl>
Date: Wed, 29 Jan 2020 20:28:56 +0100
Subject: [PATCH] move persistence_mutex variable to the file where it is used
 most

  GCC 10 default to -fno-common, which uncovers following errors:
/usr/bin/ld: from_client.o:/builddir/build/BUILD/owfs-3.2p3/module/owserver/src/c/../include/owserver.h:21:
multiple definition of `persistence_mutex';
owserver.o:/builddir/build/BUILD/owfs-3.2p3/module/owserver/src/c/../include/owserver.h:21: first defined here

  This can be fixed by moving variable definition from .h into .c file,
and using "extern" for other uses of the variable. For more info
see https://bugzilla.redhat.com/show_bug.cgi?id=1794368

Note: this commit partially reverts 34276f3412a3cdbe0f98142420ad271fab0ec5d3
---
 module/owserver/src/c/handler.c        | 4 ++++
 module/owserver/src/c/owserver.c       | 3 +++
 module/owserver/src/include/owserver.h | 4 ----
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/module/owserver/src/c/handler.c b/module/owserver/src/c/handler.c
index 56c2da1e..b6aa4d93 100644
--- a/module/owserver/src/c/handler.c
+++ b/module/owserver/src/c/handler.c
@@ -36,6 +36,10 @@
 
 #include "owserver.h"
 
+pthread_mutex_t persistence_mutex ;
+#define PERSISTENCELOCK    _MUTEX_LOCK(   persistence_mutex ) ;
+#define PERSISTENCEUNLOCK  _MUTEX_UNLOCK( persistence_mutex ) ;
+
 /* Counters for persistent connections */
 int persistent_connections = 0;
 int handler_count = 0 ;
diff --git a/module/owserver/src/c/owserver.c b/module/owserver/src/c/owserver.c
index db29988e..1714f459 100644
--- a/module/owserver/src/c/owserver.c
+++ b/module/owserver/src/c/owserver.c
@@ -36,6 +36,9 @@
 
 #include "owserver.h"
 
+/* defined in handler.c */
+extern pthread_mutex_t persistence_mutex ;
+
 /* --- Prototypes ------------ */
 static void SetupAntiloop(int argc, char **argv);
 
diff --git a/module/owserver/src/include/owserver.h b/module/owserver/src/include/owserver.h
index 8be582f0..a6f085a7 100644
--- a/module/owserver/src/include/owserver.h
+++ b/module/owserver/src/include/owserver.h
@@ -18,10 +18,6 @@
 #include "ow.h"
 #include "ow_connection.h"
 
-pthread_mutex_t persistence_mutex ;
-#define PERSISTENCELOCK    _MUTEX_LOCK(   persistence_mutex ) ;
-#define PERSISTENCEUNLOCK  _MUTEX_UNLOCK( persistence_mutex ) ;
-
 #define TOCLIENTLOCK(hd) _MUTEX_LOCK( (hd)->to_client )
 #define TOCLIENTUNLOCK(hd) _MUTEX_UNLOCK( (hd)->to_client )
 
openSUSE Build Service is sponsored by