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