diff --git a/net/netdiscover/Makefile b/net/netdiscover/Makefile
index dc6d36d14..9f930a485 100644
--- a/net/netdiscover/Makefile
+++ b/net/netdiscover/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=netdiscover
 PKG_VERSION:=0.3-pre-beta7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-LINUXONLY.tar.gz
 PKG_SOURCE_URL:=@SF/netdiscover
diff --git a/net/netdiscover/patches/010-gcc10.patch b/net/netdiscover/patches/010-gcc10.patch
new file mode 100644
index 000000000..9a679ec21
--- /dev/null
+++ b/net/netdiscover/patches/010-gcc10.patch
@@ -0,0 +1,111 @@
+--- a/src/data_al.h
++++ b/src/data_al.h
+@@ -35,7 +35,7 @@ extern "C"
+ {
+ #endif
+ 
+-pthread_mutex_t *data_access;
++extern pthread_mutex_t *data_access;
+ 
+ 
+ /* Holds each data type total counters */
+--- a/src/data_reply.c
++++ b/src/data_reply.c
+@@ -43,7 +43,7 @@ struct data_registry *current_reply;
+ struct data_counter reply_count;
+ 
+ /* Screen printing buffers */
+-char line[300], tline[300];
++extern char line[300], tline[300];
+ extern char blank[];
+ 
+ 
+--- a/src/data_request.c
++++ b/src/data_request.c
+@@ -43,7 +43,7 @@ struct data_registry *request_current;
+ struct data_counter request_count;
+ 
+ /* Screen printing buffers */
+-char line[300], tline[300];
++extern char line[300], tline[300];
+ extern char blank[];
+ 
+ 
+--- a/src/data_unique.c
++++ b/src/data_unique.c
+@@ -44,7 +44,7 @@ struct data_registry *current_unique;
+ struct data_counter unique_count;
+ 
+ /* Screen printing buffers */
+-char line[300], tline[300];
++extern char line[300], tline[300];
+ extern char blank[];
+ 
+ 
+--- a/src/ifaces.c
++++ b/src/ifaces.c
+@@ -73,7 +73,7 @@
+ pcap_t *inject;
+ unsigned char smac[] = { 0xCA, 0xFE, 0xCA, 0xFE, 0xCA, 0xFE };
+ struct p_header *temp_header;
+-
++char errbuf[PCAP_ERRBUF_SIZE];
+ 
+ /* Start Sniffing on given iface */
+ void *start_sniffer(void *args)
+--- a/src/ifaces.h
++++ b/src/ifaces.h
+@@ -51,7 +51,7 @@ extern "C"
+ 
+ 
+    /* Shitty globals */
+-   char errbuf[PCAP_ERRBUF_SIZE];
++   extern char errbuf[PCAP_ERRBUF_SIZE];
+ 
+    /* Threads data structure */
+    struct t_data {
+--- a/src/main.c
++++ b/src/main.c
+@@ -44,6 +44,7 @@
+ #define RPATH  "%s/.netdiscover/ranges"
+ #define FPATH  "%s/.netdiscover/fastips"
+ 
++int continue_listening;
+ 
+ extern void parseable_scan_end();
+ void *inject_arp(void *arg);
+@@ -52,6 +53,9 @@ void *parsable_screen_refresh(void *arg);
+ void scan_range(char *disp, char *sip);
+ void usage();
+ 
++char *current_network;
++int parsable_output;
++pthread_mutex_t *data_access;
+ 
+ /* Last octect of ips scaned in fast mode */
+ /* Add new addr if needed here */
+--- a/src/screen.c
++++ b/src/screen.c
+@@ -56,6 +56,7 @@ int smode, oldmode;
+ char line[300], tline[300];
+ char blank[] = " ";
+ 
++struct winsize win_sz;
+ 
+ /* Inits lists with null pointers, sighandlers, etc */
+ void init_screen()
+--- a/src/screen.h
++++ b/src/screen.h
+@@ -51,9 +51,9 @@ extern "C"
+ #define KNOWN_COLOR "\33[1m%s\33[0m\n"
+ 
+ /* Ohh no, more globals */
+-struct winsize win_sz;
+-char *current_network;
+-int parsable_output, continue_listening;
++extern struct winsize win_sz;
++extern char *current_network;
++extern int parsable_output, continue_listening;
+ 
+ 
+ /* Screen functions */