This prevents a linking error with gcc 10, which enables -fno-common by default.
ISO C requires exactly one definition of objects with external linkage throughout the entire program. `conf` is already defined in ntpd.c and declared extern in ntpd.h, so the definition in parse.y is redundant. The two definitions of `ibuf_dns` are distinct and local to their respective files, so make them static. --- It looks like while the ibuf_dns variables are distinct, only one or the other is used (one through ntp_main() and the other through ntp_dns()). So, an alternative is to add an extern declaration in ntpd.h. I noticed that there are quite a few places where static could be used, but isn't, so I'm not sure which approach is preferred. usr.sbin/ntpd/ntp.c | 2 +- usr.sbin/ntpd/ntp_dns.c | 2 +- usr.sbin/ntpd/parse.y | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/usr.sbin/ntpd/ntp.c b/usr.sbin/ntpd/ntp.c index ea9a4e92274..9cb74f1d8da 100644 --- a/usr.sbin/ntpd/ntp.c +++ b/usr.sbin/ntpd/ntp.c @@ -42,7 +42,7 @@ volatile sig_atomic_t ntp_quit = 0; struct imsgbuf *ibuf_main; -struct imsgbuf *ibuf_dns; +static struct imsgbuf *ibuf_dns; struct ntpd_conf *conf; struct ctl_conns ctl_conns; u_int peer_cnt; diff --git a/usr.sbin/ntpd/ntp_dns.c b/usr.sbin/ntpd/ntp_dns.c index 2e1a978338a..2dbd79dada6 100644 --- a/usr.sbin/ntpd/ntp_dns.c +++ b/usr.sbin/ntpd/ntp_dns.c @@ -39,7 +39,7 @@ #include "ntpd.h" volatile sig_atomic_t quit_dns = 0; -struct imsgbuf *ibuf_dns; +static struct imsgbuf *ibuf_dns; void sighdlr_dns(int); int dns_dispatch_imsg(struct ntpd_conf *); diff --git a/usr.sbin/ntpd/parse.y b/usr.sbin/ntpd/parse.y index 8d7ab09de34..533f67f1b8f 100644 --- a/usr.sbin/ntpd/parse.y +++ b/usr.sbin/ntpd/parse.y @@ -57,7 +57,6 @@ int lgetc(int); int lungetc(int); int findeol(void); -struct ntpd_conf *conf; struct sockaddr_in query_addr4; struct sockaddr_in6 query_addr6; int poolseqnum; -- 2.26.0
