aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2020-07-16 14:11:17 -0700
committerRosen Penev <rosenp@gmail.com>2020-07-16 14:31:54 -0700
commitcd3a4f473164b9ef478232f0358b22bef6018609 (patch)
tree248594ed3f69b7e0a096ba7a2b068faf2557ed8c /net
parent139d518599e8be9ed18d059d077e47f13f1e87fc (diff)
zerotier: fix compilation with GCC10
Patch taken from upstream. Signed-off-by: Rosen Penev <rosenp@gmail.com>
Diffstat (limited to 'net')
-rw-r--r--net/zerotier/Makefile2
-rw-r--r--net/zerotier/patches/030-gcc10.patch39
2 files changed, 40 insertions, 1 deletions
diff --git a/net/zerotier/Makefile b/net/zerotier/Makefile
index 4baee00d3..72712473a 100644
--- a/net/zerotier/Makefile
+++ b/net/zerotier/Makefile
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=zerotier
PKG_VERSION:=1.4.6
-PKG_RELEASE:=3
+PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/zerotier/ZeroTierOne/tar.gz/$(PKG_VERSION)?
diff --git a/net/zerotier/patches/030-gcc10.patch b/net/zerotier/patches/030-gcc10.patch
new file mode 100644
index 000000000..f55270db0
--- /dev/null
+++ b/net/zerotier/patches/030-gcc10.patch
@@ -0,0 +1,39 @@
+From cce4fa719d447c55d93458b25fa92717a2d61a60 Mon Sep 17 00:00:00 2001
+From: Jonas Witschel <diabonas@archlinux.org>
+Date: Tue, 14 Jul 2020 14:20:16 +0200
+Subject: [PATCH] Fix compilation with GCC 10 by providing explicit cast of
+ _bindingCount
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Compilation with GCC 10 fails with the following error:
+
+service/../osdep/Binder.hpp: In member function ‘void ZeroTier::Binder::refresh(ZeroTier::Phy<PHY_HANDLER_TYPE>&, unsigned int*, unsigned int, std::vector<ZeroTier::InetAddress>, INTERFACE_CHECKER&)’:
+service/../osdep/Binder.hpp:376:30: internal compiler error: unexpected expression ‘(std::__atomic_base<unsigned int>::__int_type)((ZeroTier::Binder*)this)->ZeroTier::Binder::_bindingCount’ of kind implicit_conv_expr
+ 376 | _bindings[_bindingCount].udpSock = udps;
+ | ^
+
+Help the compiler by providing an explicit cast to the appropriate type like it
+is already done in l. 338 of the same file.
+---
+ osdep/Binder.hpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/osdep/Binder.hpp b/osdep/Binder.hpp
+index 660e6f0c..a5bc85c9 100644
+--- a/osdep/Binder.hpp
++++ b/osdep/Binder.hpp
+@@ -373,9 +373,9 @@ class Binder
+ }
+ #endif // __LINUX__
+ if (_bindingCount < ZT_BINDER_MAX_BINDINGS) {
+- _bindings[_bindingCount].udpSock = udps;
+- _bindings[_bindingCount].tcpListenSock = tcps;
+- _bindings[_bindingCount].address = ii->first;
++ _bindings[(unsigned int)_bindingCount].udpSock = udps;
++ _bindings[(unsigned int)_bindingCount].tcpListenSock = tcps;
++ _bindings[(unsigned int)_bindingCount].address = ii->first;
+ phy.setIfName(udps,(char*)ii->second.c_str(),(int)ii->second.length());
+ ++_bindingCount;
+ }