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