xref: /OK3568_Linux_fs/buildroot/package/dillo/0004-fix-build-with-gcc-10.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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