From 7a446434302d7b71211b81b3c6cd12a7b35223d1 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine 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 [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