1fix build with gcc 10 2 3gcc 10 is now defaulting to -fno-common resulting in the following build 4failures: 5 6/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g2 -D_FORTIFY_SOURCE=1 -DENABLE_IPV6 -DD_DNS_THREADED -D_REENTRANT -D_THREAD_SAFE -Wall -W -Wno-unused-parameter -Waggregate-return -o dpid dpi.o dpi_socket_dir.o dpid.o dpid_common.o main.o misc_new.o ../dpip/libDpip.a ../dlib/libDlib.a 7/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpi_socket_dir.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here 8/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here 9/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpid_common.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here 10/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:64: multiple definition of `sock_set'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:64: first defined here 11/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:61: multiple definition of `services_list'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:61: first defined here 12/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:58: multiple definition of `dpi_attr_list'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:58: first defined here 13/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:55: multiple definition of `numsocks'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:55: first defined here 14/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:52: multiple definition of `numdpis'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:52: first defined here 15/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:31: multiple definition of `srs_fd'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:31: first defined here 16/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:28: multiple definition of `srs_name'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:28: first defined here 17/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here 18/nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: misc_new.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here 19 20So add missing extern for srs_fd, numdpis, numsocks, dpi_attr_list, 21services_list and sock_set 22 23Also remove srs_name which is never used and give a name to dpi_errno 24enum 25 26Fixes: 27 - http://autobuild.buildroot.org/results/9c777af97fe50143c6a68f0170fc86c87d8ead3f 28 29Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 30[Upstream status: sent to jcid@dillo.org] 31 32diff -r f60d55c02567 dpid/dpid.c 33--- a/dpid/dpid.c Fri Oct 05 22:05:08 2018 +0200 34+++ b/dpid/dpid.c Thu Aug 27 18:16:50 2020 +0200 35@@ -38,6 +38,12 @@ 36 37 #define QUEUE 5 38 39+int srs_fd; 40+int numdpis; 41+int numsocks; 42+struct dp *dpi_attr_list; 43+Dlist *services_list; 44+fd_set sock_set; 45 volatile sig_atomic_t caught_sigchld = 0; 46 char *SharedKey = NULL; 47 48diff -r f60d55c02567 dpid/dpid.h 49--- a/dpid/dpid.h Fri Oct 05 22:05:08 2018 +0200 50+++ b/dpid/dpid.h Thu Aug 27 18:16:50 2020 +0200 51@@ -25,10 +25,9 @@ 52 53 /*! \TODO: Should read this from dillorc */ 54 #define SRS_NAME "dpid.srs" 55-char *srs_name; 56 57 /*! dpid's service request socket file descriptor */ 58-int srs_fd; 59+extern int srs_fd; 60 61 /*! plugin state information 62 */ 63@@ -49,19 +48,19 @@ 64 }; 65 66 /*! Number of available plugins */ 67-int numdpis; 68+extern int numdpis; 69 70 /*! Number of sockets being watched */ 71-int numsocks; 72+extern int numsocks; 73 74 /*! State information for each plugin. */ 75-struct dp *dpi_attr_list; 76+extern struct dp *dpi_attr_list; 77 78 /*! service served for each plugin */ 79-Dlist *services_list; 80+extern Dlist *services_list; 81 82 /*! Set of sockets watched for connections */ 83-fd_set sock_set; 84+extern fd_set sock_set; 85 86 /*! Set to 1 by the SIGCHLD handler dpi_sigchld */ 87 extern volatile sig_atomic_t caught_sigchld; 88diff -r f60d55c02567 dpid/dpid_common.h 89--- a/dpid/dpid_common.h Fri Oct 05 22:05:08 2018 +0200 90+++ b/dpid/dpid_common.h Thu Aug 27 18:16:50 2020 +0200 91@@ -37,10 +37,10 @@ 92 93 94 /*! Error codes for dpid */ 95-enum { 96+enum dpi_errno { 97 no_errors, 98 dpid_srs_addrinuse /* dpid service request socket address already in use */ 99-} dpi_errno; 100+}; 101 102 /*! Intended for identifying dillo plugins 103 * and related files 104diff -r f60d55c02567 dpid/main.c 105--- a/dpid/main.c Fri Oct 05 22:05:08 2018 +0200 106+++ b/dpid/main.c Thu Aug 27 18:16:50 2020 +0200 107@@ -231,7 +231,7 @@ 108 /* this sleep used to unmask a race condition */ 109 // sleep(2); 110 111- dpi_errno = no_errors; 112+ enum dpi_errno error_code = no_errors; 113 114 /* Get list of available dpis */ 115 numdpis = register_all(&dpi_attr_list); 116@@ -254,7 +254,7 @@ 117 118 /* Initialise sockets */ 119 if ((numsocks = init_ids_srs_socket()) == -1) { 120- switch (dpi_errno) { 121+ switch (error_code) { 122 case dpid_srs_addrinuse: 123 MSG_ERR("dpid refuses to start, possibly because:\n"); 124 MSG_ERR("\t1) An instance of dpid is already running.\n"); 125