FreeBSD just added -fcommon, but this doesn't look too bad.

Tests pass on my laptop.

Index: Makefile
===================================================================
RCS file: /cvs/ports/net/quagga/Makefile,v
retrieving revision 1.62
diff -u -p -r1.62 Makefile
--- Makefile    22 Jan 2021 15:58:13 -0000      1.62
+++ Makefile    3 Feb 2021 23:30:22 -0000
@@ -3,7 +3,7 @@
 COMMENT=       multi-threaded routing daemon
 
 DISTNAME=      quagga-1.2.4
-REVISION=      1
+REVISION=      2
 CATEGORIES=    net
 
 .for i in ospf ospfapiclient zebra fpm_pb quagga_pb
Index: patches/patch-pimd_pim_version_h
===================================================================
RCS file: patches/patch-pimd_pim_version_h
diff -N patches/patch-pimd_pim_version_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-pimd_pim_version_h    3 Feb 2021 23:31:18 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+Fix for -fno-common
+
+Index: pimd/pim_version.h
+--- pimd/pim_version.h.orig
++++ 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 */
Index: patches/patch-pimd_pimd_c
===================================================================
RCS file: patches/patch-pimd_pimd_c
diff -N patches/patch-pimd_pimd_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-pimd_pimd_c   3 Feb 2021 23:31:26 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+fix for -fno-common
+
+Index: pimd/pimd.c
+--- pimd/pimd.c.orig
++++ pimd/pimd.c
+@@ -63,6 +63,7 @@ int64_t                   qpim_rpf_cache_refresh_last 
+ struct in_addr            qpim_inaddr_any;
+ struct list              *qpim_ssmpingd_list = 0;
+ struct in_addr            qpim_ssmpingd_group_addr;
++struct in_addr            qpim_all_pim_routers_addr;
+ int64_t                   qpim_scan_oil_events = 0;
+ int64_t                   qpim_scan_oil_last = 0;
+ int64_t                   qpim_mroute_add_events = 0;
Index: patches/patch-pimd_pimd_h
===================================================================
RCS file: patches/patch-pimd_pimd_h
diff -N patches/patch-pimd_pimd_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-pimd_pimd_h   3 Feb 2021 23:31:51 -0000
@@ -0,0 +1,79 @@
+$OpenBSD$
+
+Fix for -fno-common
+
+Index: pimd/pimd.h
+--- pimd/pimd.h.orig
++++ 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;
++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;
+ 
+-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 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)
+ 
Index: patches/patch-tests_bgp_mpath_test_c
===================================================================
RCS file: patches/patch-tests_bgp_mpath_test_c
diff -N patches/patch-tests_bgp_mpath_test_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-tests_bgp_mpath_test_c        3 Feb 2021 23:30:52 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Fix for -fno-common
+
+Index: tests/bgp_mpath_test.c
+--- tests/bgp_mpath_test.c.orig
++++ tests/bgp_mpath_test.c
+@@ -73,7 +73,7 @@ struct testcase_t__ {
+ 
+ /* need these to link in libbgp */
+ struct thread_master *master = NULL;
+-struct zclient *zclient;
++extern struct zclient *zclient;
+ struct zebra_privs_t bgpd_privs =
+ {
+   .user = NULL,

Reply via email to