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