[BIRD 1.6.x] Unix: fix compilation with GCC 10
Vincent Bernat
vincent at bernat.ch
Mon Sep 28 15:01:12 CEST 2020
GCC 10 will now error when declaring a global variable twice:
https://gcc.gnu.org/gcc-10/porting_to.html#common
Fix this issue by declaring the variable as `extern' in `krt.h'. The
variable is really declared in `krt.c'.
LD -r -o all.o cf-parse.tab.o cf-lex.o conf.o
/usr/bin/ld: cf-lex.o:/home/bernat/code/exoscale/bird/build~/conf/../lib/krt.h:115: multiple definition of `kif_proto'; cf-parse.tab.o:/home/bernat/code/exoscale/bird/build~/conf/../lib/krt.h:115: first defined here
This issue was already fixed in BIRD 2.x.
---
sysdep/unix/krt.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdep/unix/krt.h b/sysdep/unix/krt.h
index d4a8717e38ec..fe79efc3717d 100644
--- a/sysdep/unix/krt.h
+++ b/sysdep/unix/krt.h
@@ -112,7 +112,7 @@ struct kif_proto {
struct kif_state sys; /* Sysdep state */
};
-struct kif_proto *kif_proto;
+extern struct kif_proto *kif_proto;
#define KIF_CF ((struct kif_config *)p->p.cf)
--
2.28.0
More information about the Bird-users
mailing list