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