xref: /OK3568_Linux_fs/buildroot/package/quagga/0003-Fix-build-with-gcc-10.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom 7a446434302d7b71211b81b3c6cd12a7b35223d1 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3*4882a593SmuzhiyunDate: Sat, 6 Mar 2021 16:28:37 +0100
4*4882a593SmuzhiyunSubject: [PATCH] Fix build with gcc 10
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunFix the following build failure with gcc 10 (which defaults to
7*4882a593Smuzhiyun-fno-common):
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun  CCLD     pimd
10*4882a593Smuzhiyun/home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: pimd.o:(.bss+0x8): multiple definition of `qpim_static_route_list'; pim_main.o:(.bss+0x8): first defined here
11*4882a593Smuzhiyun/home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: pimd.o:(.bss+0x28): multiple definition of `qpim_mroute_del_last'; pim_main.o:(.bss+0x10): first defined here
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunFixes:
14*4882a593Smuzhiyun - http://autobuild.buildroot.org/results/fd5ee2b52a3cfaec268fafd3ffe4c30e51465c7e
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
17*4882a593Smuzhiyun[Upstream status: https://bugzilla.quagga.net/show_bug.cgi?id=1014]
18*4882a593Smuzhiyun---
19*4882a593Smuzhiyun pimd/pim_version.h |  2 +-
20*4882a593Smuzhiyun pimd/pimd.c        |  1 +
21*4882a593Smuzhiyun pimd/pimd.h        | 66 +++++++++++++++++++++++-----------------------
22*4882a593Smuzhiyun 3 files changed, 35 insertions(+), 34 deletions(-)
23*4882a593Smuzhiyun
24*4882a593Smuzhiyundiff --git a/pimd/pim_version.h b/pimd/pim_version.h
25*4882a593Smuzhiyunindex ef9f370c..891d4314 100644
26*4882a593Smuzhiyun--- a/pimd/pim_version.h
27*4882a593Smuzhiyun+++ b/pimd/pim_version.h
28*4882a593Smuzhiyun@@ -25,6 +25,6 @@
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun #define PIMD_VERSION_STR "0.166"
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun-const char * const PIMD_VERSION;
33*4882a593Smuzhiyun+extern const char * const PIMD_VERSION;
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun #endif /* PIM_VERSION_H */
36*4882a593Smuzhiyundiff --git a/pimd/pimd.c b/pimd/pimd.c
37*4882a593Smuzhiyunindex 97fb2233..d7340cc0 100644
38*4882a593Smuzhiyun--- a/pimd/pimd.c
39*4882a593Smuzhiyun+++ b/pimd/pimd.c
40*4882a593Smuzhiyun@@ -50,6 +50,7 @@ int64_t                   qpim_mroute_socket_creation = 0; /* timestamp of creat
41*4882a593Smuzhiyun struct thread            *qpim_mroute_socket_reader = 0;
42*4882a593Smuzhiyun int                       qpim_mroute_oif_highest_vif_index = -1;
43*4882a593Smuzhiyun struct list              *qpim_channel_oil_list = 0;
44*4882a593Smuzhiyun+struct in_addr            qpim_all_pim_routers_addr;
45*4882a593Smuzhiyun int                       qpim_t_periodic = PIM_DEFAULT_T_PERIODIC; /* Period between Join/Prune Messages */
46*4882a593Smuzhiyun struct list              *qpim_upstream_list = 0;
47*4882a593Smuzhiyun struct zclient           *qpim_zclient_update = 0;
48*4882a593Smuzhiyundiff --git a/pimd/pimd.h b/pimd/pimd.h
49*4882a593Smuzhiyunindex 9a7e6058..8b3496fd 100644
50*4882a593Smuzhiyun--- a/pimd/pimd.h
51*4882a593Smuzhiyun+++ b/pimd/pimd.h
52*4882a593Smuzhiyun@@ -68,39 +68,39 @@
53*4882a593Smuzhiyun #define PIM_MASK_PIM_J_P             (1 << 12)
54*4882a593Smuzhiyun #define PIM_MASK_STATIC              (1 << 13)
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun-const char *const PIM_ALL_SYSTEMS;
57*4882a593Smuzhiyun-const char *const PIM_ALL_ROUTERS;
58*4882a593Smuzhiyun-const char *const PIM_ALL_PIM_ROUTERS;
59*4882a593Smuzhiyun-const char *const PIM_ALL_IGMP_ROUTERS;
60*4882a593Smuzhiyun-
61*4882a593Smuzhiyun-struct thread_master     *master;
62*4882a593Smuzhiyun-uint32_t                  qpim_debugs;
63*4882a593Smuzhiyun-int                       qpim_mroute_socket_fd;
64*4882a593Smuzhiyun-int64_t                   qpim_mroute_socket_creation; /* timestamp of creation */
65*4882a593Smuzhiyun-struct thread            *qpim_mroute_socket_reader;
66*4882a593Smuzhiyun-int                       qpim_mroute_oif_highest_vif_index;
67*4882a593Smuzhiyun-struct list              *qpim_channel_oil_list; /* list of struct channel_oil */
68*4882a593Smuzhiyun-struct in_addr            qpim_all_pim_routers_addr;
69*4882a593Smuzhiyun-int                       qpim_t_periodic; /* Period between Join/Prune Messages */
70*4882a593Smuzhiyun-struct list              *qpim_upstream_list; /* list of struct pim_upstream */
71*4882a593Smuzhiyun-struct zclient           *qpim_zclient_update;
72*4882a593Smuzhiyun-struct zclient           *qpim_zclient_lookup;
73*4882a593Smuzhiyun-struct pim_assert_metric  qpim_infinite_assert_metric;
74*4882a593Smuzhiyun-long                      qpim_rpf_cache_refresh_delay_msec;
75*4882a593Smuzhiyun-struct thread            *qpim_rpf_cache_refresher;
76*4882a593Smuzhiyun-int64_t                   qpim_rpf_cache_refresh_requests;
77*4882a593Smuzhiyun-int64_t                   qpim_rpf_cache_refresh_events;
78*4882a593Smuzhiyun-int64_t                   qpim_rpf_cache_refresh_last;
79*4882a593Smuzhiyun-struct in_addr            qpim_inaddr_any;
80*4882a593Smuzhiyun-struct list              *qpim_ssmpingd_list; /* list of struct ssmpingd_sock */
81*4882a593Smuzhiyun-struct in_addr            qpim_ssmpingd_group_addr;
82*4882a593Smuzhiyun-int64_t                   qpim_scan_oil_events;
83*4882a593Smuzhiyun-int64_t                   qpim_scan_oil_last;
84*4882a593Smuzhiyun-int64_t                   qpim_mroute_add_events;
85*4882a593Smuzhiyun-int64_t                   qpim_mroute_add_last;
86*4882a593Smuzhiyun-int64_t                   qpim_mroute_del_events;
87*4882a593Smuzhiyun-int64_t                   qpim_mroute_del_last;
88*4882a593Smuzhiyun-struct list              *qpim_static_route_list; /* list of routes added statically */
89*4882a593Smuzhiyun+extern const char *const PIM_ALL_SYSTEMS;
90*4882a593Smuzhiyun+extern const char *const PIM_ALL_ROUTERS;
91*4882a593Smuzhiyun+extern const char *const PIM_ALL_PIM_ROUTERS;
92*4882a593Smuzhiyun+extern const char *const PIM_ALL_IGMP_ROUTERS;
93*4882a593Smuzhiyun+
94*4882a593Smuzhiyun+extern struct thread_master     *master;
95*4882a593Smuzhiyun+extern uint32_t                  qpim_debugs;
96*4882a593Smuzhiyun+extern int                       qpim_mroute_socket_fd;
97*4882a593Smuzhiyun+extern int64_t                   qpim_mroute_socket_creation; /* timestamp of creation */
98*4882a593Smuzhiyun+extern struct thread            *qpim_mroute_socket_reader;
99*4882a593Smuzhiyun+extern int                       qpim_mroute_oif_highest_vif_index;
100*4882a593Smuzhiyun+extern struct list              *qpim_channel_oil_list; /* list of struct channel_oil */
101*4882a593Smuzhiyun+extern struct in_addr            qpim_all_pim_routers_addr;
102*4882a593Smuzhiyun+extern int                       qpim_t_periodic; /* Period between Join/Prune Messages */
103*4882a593Smuzhiyun+extern struct list              *qpim_upstream_list; /* list of struct pim_upstream */
104*4882a593Smuzhiyun+extern struct zclient           *qpim_zclient_update;
105*4882a593Smuzhiyun+extern struct zclient           *qpim_zclient_lookup;
106*4882a593Smuzhiyun+extern struct pim_assert_metric  qpim_infinite_assert_metric;
107*4882a593Smuzhiyun+extern long                      qpim_rpf_cache_refresh_delay_msec;
108*4882a593Smuzhiyun+extern struct thread            *qpim_rpf_cache_refresher;
109*4882a593Smuzhiyun+extern int64_t                   qpim_rpf_cache_refresh_requests;
110*4882a593Smuzhiyun+extern int64_t                   qpim_rpf_cache_refresh_events;
111*4882a593Smuzhiyun+extern int64_t                   qpim_rpf_cache_refresh_last;
112*4882a593Smuzhiyun+extern struct in_addr            qpim_inaddr_any;
113*4882a593Smuzhiyun+extern struct list              *qpim_ssmpingd_list; /* list of struct ssmpingd_sock */
114*4882a593Smuzhiyun+extern struct in_addr            qpim_ssmpingd_group_addr;
115*4882a593Smuzhiyun+extern int64_t                   qpim_scan_oil_events;
116*4882a593Smuzhiyun+extern int64_t                   qpim_scan_oil_last;
117*4882a593Smuzhiyun+extern int64_t                   qpim_mroute_add_events;
118*4882a593Smuzhiyun+extern int64_t                   qpim_mroute_add_last;
119*4882a593Smuzhiyun+extern int64_t                   qpim_mroute_del_events;
120*4882a593Smuzhiyun+extern int64_t                   qpim_mroute_del_last;
121*4882a593Smuzhiyun+extern struct list              *qpim_static_route_list; /* list of routes added statically */
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun #define PIM_JP_HOLDTIME (qpim_t_periodic * 7 / 2)
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun--
126*4882a593Smuzhiyun2.30.0
127*4882a593Smuzhiyun
128