Sun Jun 21 15:10:47 2020 UTC ()
net/ntp4: update to 4.2.8p14

Updaet ntp4 to 4.2.8p14.

pkgsrc changes:
* Incorporate several changes from NetBSD base.
* few pkglint fixes.

Quote from release announce:

NTP 4.2.8p14 (Harlan Stenn <stenn@ntp.org>, 2020 Mar 03)

Focus: Security, Bug fixes, enhancements.

Severity: MEDIUM

This release fixes three vulnerabilities: a bug that causes causes an ntpd
instance that is explicitly configured to override the default and allow
ntpdc (mode 7) connections to be made to a server to read some uninitialized
memory; fixes the case where an unmonitored ntpd using an unauthenticated
association to its servers may be susceptible to a forged packet DoS attack;
and fixes an attack against a client instance that uses a single
unauthenticated time source.  It also fixes 46 other bugs and addresses
4 other issues.


(taca)
diff -r1.103 -r1.104 pkgsrc/net/ntp4/Makefile
diff -r1.30 -r1.31 pkgsrc/net/ntp4/distinfo
diff -r1.3 -r1.4 pkgsrc/net/ntp4/options.mk
diff -r0 -r1.4 pkgsrc/net/ntp4/patches/patch-configure
diff -r1.1 -r1.2 pkgsrc/net/ntp4/patches/patch-include-ntp__syscall.h
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-include_ntp__md5.h
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-include_ntp__request.h
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-include_refclock__atom.h
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-lib_isc_inet__ntop.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-lib_isc_unix_net.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-libntp_ntp__calendar.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-libntp_socktoa.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-libntp_timexsup.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-libntp_work__fork.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_ntp__config.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_ntp__control.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_ntp__keyword.h
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_ntp__loopfilter.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_ntp__proto.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_ntp__restrict.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_refclock__jjy.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_refclock__jupiter.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_refclock__neoclock4x.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_refclock__oncore.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_refclock__ulink.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpd_refclock__wwvb.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpdate_ntpdate.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpdc_Makefile.in
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-ntpq_ntpq.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-sntp_libevent_build-aux_config.guess
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-sntp_libevent_build-aux_config.sub
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-sntp_libopts_autoopts.h
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-sntp_libopts_enum.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-sntp_libopts_usage.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-util_ntp-keygen.c
diff -r0 -r1.1 pkgsrc/net/ntp4/patches/patch-util_ntptime.c
diff -r0 -r1.3 pkgsrc/net/ntp4/patches/patch-ntpd_ntp__io.c

cvs diff -r1.103 -r1.104 pkgsrc/net/ntp4/Makefile (expand / switch to unified diff)

--- pkgsrc/net/ntp4/Makefile 2020/01/18 21:50:21 1.103
+++ pkgsrc/net/ntp4/Makefile 2020/06/21 15:10:47 1.104
@@ -1,19 +1,17 @@ @@ -1,19 +1,17 @@
1# $NetBSD: Makefile,v 1.103 2020/01/18 21:50:21 jperkin Exp $ 1# $NetBSD: Makefile,v 1.104 2020/06/21 15:10:47 taca Exp $
2# 2#
3 3
4DISTNAME= ntp-4.2.8p13 4DISTNAME= ntp-4.2.8p14
5PKGNAME= ${DISTNAME:S/-dev-/-/} 
6PKGREVISION= 2 
7CATEGORIES= net time 5CATEGORIES= net time
8MASTER_SITES= http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ 6MASTER_SITES= http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/
9 7
10MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= http://www.ntp.org/ 9HOMEPAGE= http://www.ntp.org/
12COMMENT= Network Time Protocol Version 4 10COMMENT= Network Time Protocol Version 4
13 11
14CONFLICTS+= openntpd-[0-9]* 12CONFLICTS+= openntpd-[0-9]*
15 13
16GNU_CONFIGURE= YES 14GNU_CONFIGURE= YES
17USE_LIBTOOL= YES 15USE_LIBTOOL= YES
18USE_TOOLS+= pax perl:run 16USE_TOOLS+= pax perl:run
19 17
@@ -32,27 +30,27 @@ INSTALLATION_DIRS= ${DOCDIR} ${EXAMPLESD @@ -32,27 +30,27 @@ INSTALLATION_DIRS= ${DOCDIR} ${EXAMPLESD
32 30
33RCD_SCRIPTS= ntpd ntpdate 31RCD_SCRIPTS= ntpd ntpdate
34 32
35post-install: 33post-install:
36 cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DESTDIR}${PREFIX}/${DOCDIR} 34 cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DESTDIR}${PREFIX}/${DOCDIR}
37 cd ${WRKSRC}/conf && pax -rw -pm . ${DESTDIR}${PREFIX}/${EXAMPLESDIR} 35 cd ${WRKSRC}/conf && pax -rw -pm . ${DESTDIR}${PREFIX}/${EXAMPLESDIR}
38 ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${ALL_NTP_DOCS} 36 ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${ALL_NTP_DOCS}
39 ${FIND} ${ALL_NTP_DOCS} -type d -print | ${XARGS} ${CHMOD} ${PKGDIRMODE} 37 ${FIND} ${ALL_NTP_DOCS} -type d -print | ${XARGS} ${CHMOD} ${PKGDIRMODE}
40 ${FIND} ${ALL_NTP_DOCS} -type f -print | ${XARGS} ${CHMOD} ${SHAREMODE} 38 ${FIND} ${ALL_NTP_DOCS} -type f -print | ${XARGS} ${CHMOD} ${SHAREMODE}
41 39
42.include "../../mk/bsd.prefs.mk" 40.include "../../mk/bsd.prefs.mk"
43.include "options.mk" 41.include "options.mk"
44 42
45PLIST_VARS+= ntpsnmpd ntptime tickadj timetrim 43PLIST_VARS+= ntptime tickadj timetrim
46 44
47.if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "Linux" || ${OPSYS} == "SunOS" 45.if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "Linux" || ${OPSYS} == "SunOS"
48PLIST.ntptime= yes 46PLIST.ntptime= yes
49PLIST.tickadj= yes 47PLIST.tickadj= yes
50.elif ${OPSYS} == "IRIX" 48.elif ${OPSYS} == "IRIX"
51PLIST.timetrim= yes 49PLIST.timetrim= yes
52.elif ${OPSYS} == "Darwin" 50.elif ${OPSYS} == "Darwin"
53PLIST.tickadj= yes 51PLIST.tickadj= yes
54.endif 52.endif
55 53
56# chroot jail support 54# chroot jail support
57.if ${OPSYS} == "NetBSD" 55.if ${OPSYS} == "NetBSD"
58CONFIGURE_ARGS+= --enable-clockctl 56CONFIGURE_ARGS+= --enable-clockctl

cvs diff -r1.30 -r1.31 pkgsrc/net/ntp4/distinfo (expand / switch to unified diff)

--- pkgsrc/net/ntp4/distinfo 2019/03/25 17:19:59 1.30
+++ pkgsrc/net/ntp4/distinfo 2020/06/21 15:10:47 1.31
@@ -1,8 +1,41 @@ @@ -1,8 +1,41 @@
1$NetBSD: distinfo,v 1.30 2019/03/25 17:19:59 tnn Exp $ 1$NetBSD: distinfo,v 1.31 2020/06/21 15:10:47 taca Exp $
2 2
3SHA1 (ntp-4.2.8p13.tar.gz) = cff200a987d64e891fb349a22313ecb0feaea090 3SHA1 (ntp-4.2.8p14.tar.gz) = c6f353278cd5b7c8aa11e1189d3ac80985370b8f
4RMD160 (ntp-4.2.8p13.tar.gz) = 5d85e2a01bafa0bb755ab49e462f6dd7f96ce3d0 4RMD160 (ntp-4.2.8p14.tar.gz) = c49cb8138678b246661cc1afe68d38f255756a7e
5SHA512 (ntp-4.2.8p13.tar.gz) = afbdbb8a37b8f4040a8a6939a3a85ad0350d359c153c297b32b8a013c7b7061fd925fa3e6e103671c5901e169156e22497813c654195ba50f890a7170b2f2075 5SHA512 (ntp-4.2.8p14.tar.gz) = b0183b4b2f2c6ea0a49d0aca1fa28a7b5cd21e20696a2f633f5afa37c4ea2c59fa7769af82a55c626db49b9eb5a531608710dc1977c4d518583577ef95940ae8
6Size (ntp-4.2.8p13.tar.gz) = 6949363 bytes 6Size (ntp-4.2.8p14.tar.gz) = 7007263 bytes
7SHA1 (patch-include-ntp__syscall.h) = b247569339d09a88f2e143e355033ce7635ffe92 7SHA1 (patch-configure) = cd2b6d9353282b574eea117b4b6e391a39a6267b
 8SHA1 (patch-include-ntp__syscall.h) = b0587655e707b9a2e0eb9c937be47fd27e8d5435
 9SHA1 (patch-include_ntp__md5.h) = 1bde85704e539ab40133f498409294d071df0cc8
 10SHA1 (patch-include_ntp__request.h) = f76caeaaed595d32f249d493571f24410170e7bd
 11SHA1 (patch-include_refclock__atom.h) = 72ab4f018356a006c41d041ed064072d99e75bbb
 12SHA1 (patch-lib_isc_inet__ntop.c) = 8feef4a19e7762d0739345fa45aecea5b68c834a
 13SHA1 (patch-lib_isc_unix_net.c) = abbe0dbc424666ef4c564870a65155cf5d355504
 14SHA1 (patch-libntp_ntp__calendar.c) = f7e6a1cd37026a51288825a8a41d6337e0e10d86
 15SHA1 (patch-libntp_socktoa.c) = ff469782951666834b753a55993fdd6a2f1f4f74
 16SHA1 (patch-libntp_timexsup.c) = 385461d1049611921e19e7c75b94ed2788f7b1b7
 17SHA1 (patch-libntp_work__fork.c) = f46501017291a0764db2240e258ae511a55baba7
 18SHA1 (patch-ntpd_ntp__config.c) = 5b2107ab8ea5cac590b897b1e6709c47bce5b5d8
 19SHA1 (patch-ntpd_ntp__control.c) = 3c6267aa5c36bd1d2e0fa729be86875436812783
 20SHA1 (patch-ntpd_ntp__io.c) = 0ad70fe53d3c0f779842fb71ba60b8c2cbb1e456
 21SHA1 (patch-ntpd_ntp__keyword.h) = 158f7e93459ea30bbf87830b939a81071fa13eaa
 22SHA1 (patch-ntpd_ntp__loopfilter.c) = 381e44622a25351c470dbc7bfaef353e47370d79
 23SHA1 (patch-ntpd_ntp__proto.c) = 5e5629cc5b8dc785427bc9b267d0cac6fc7b1b39
 24SHA1 (patch-ntpd_ntp__restrict.c) = b659db3d7913a72f3a36c3a33ef47cfaf4545095
 25SHA1 (patch-ntpd_refclock__jjy.c) = 592d010d2e19bb47beefdcb3fe5645271e2645bb
 26SHA1 (patch-ntpd_refclock__jupiter.c) = bb248d2766cadddacdf9cb56bf9b29cbc538bbcb
 27SHA1 (patch-ntpd_refclock__neoclock4x.c) = 66c38ba21572cb8804a39766f3b32d1b65cb0946
 28SHA1 (patch-ntpd_refclock__oncore.c) = d93efa11cadc37fd9e600f80f2cbf0280be969c6
 29SHA1 (patch-ntpd_refclock__ulink.c) = 55003f758fd71621db60ffad8a1880588098389e
 30SHA1 (patch-ntpd_refclock__wwvb.c) = e1a7fc80df6dba9595788a8b8c56729619048ee4
 31SHA1 (patch-ntpdate_ntpdate.c) = 17e2534ab7a54e5af16059ca8c02c9995d79d83c
 32SHA1 (patch-ntpdc_Makefile.in) = 6afaf915ee8c6b244f94d3733545231e69dfd14d
 33SHA1 (patch-ntpq_ntpq.c) = 0776827a712e2f6636b9d322ae7445d184f3709f
 34SHA1 (patch-sntp_libevent_build-aux_config.guess) = 5f5fff42d04daef5fcbba2bc09b015fb4489ca59
 35SHA1 (patch-sntp_libevent_build-aux_config.sub) = 178e8b39138e49db7702c4bb84fe92550d14a978
 36SHA1 (patch-sntp_libopts_autoopts.h) = d4cbaa31df97e04f3637349a3d5eb1addfa847db
 37SHA1 (patch-sntp_libopts_enum.c) = 7d6624ed84a6ea6f85b4de4c37480041a7603252
 38SHA1 (patch-sntp_libopts_usage.c) = ec77942c98965c13de625b930db3458d5b81d28b
8SHA1 (patch-sntp_loc_pkgsrc) = 6e46ffc0cc2afcfdc1d01297cbe04cb80d103575 39SHA1 (patch-sntp_loc_pkgsrc) = 6e46ffc0cc2afcfdc1d01297cbe04cb80d103575
 40SHA1 (patch-util_ntp-keygen.c) = e66348e2fcf7da4bf9ee35e66e3f891cb436f338
 41SHA1 (patch-util_ntptime.c) = 897c3986661a9e655eeb7a7eeb10816996c31301

cvs diff -r1.3 -r1.4 pkgsrc/net/ntp4/options.mk (expand / switch to unified diff)

--- pkgsrc/net/ntp4/options.mk 2016/05/14 08:13:49 1.3
+++ pkgsrc/net/ntp4/options.mk 2020/06/21 15:10:47 1.4
@@ -1,26 +1,29 @@ @@ -1,26 +1,29 @@
1# $NetBSD: options.mk,v 1.3 2016/05/14 08:13:49 bsiegert Exp $ 1# $NetBSD: options.mk,v 1.4 2020/06/21 15:10:47 taca Exp $
2 2
3PKG_OPTIONS_VAR= PKG_OPTIONS.ntp4 3PKG_OPTIONS_VAR= PKG_OPTIONS.ntp4
4PKG_SUPPORTED_OPTIONS= inet6 snmp 4PKG_SUPPORTED_OPTIONS= inet6 snmp
5PKG_SUGGESTED_OPTIONS= 5PKG_SUGGESTED_OPTIONS=
6 6
 7PLIST_VARS+= ntpsnmpd
 8
7.if empty(MISSING_FEATURES:Minet6) 9.if empty(MISSING_FEATURES:Minet6)
8PKG_SUGGESTED_OPTIONS+= inet6 10PKG_SUGGESTED_OPTIONS+= inet6
9.endif 11.endif
10 12
11.include "../../mk/bsd.options.mk" 13.include "../../mk/bsd.options.mk"
12 14
13.if !empty(PKG_OPTIONS:Minet6) 15.if !empty(PKG_OPTIONS:Minet6)
14CONFIGURE_ARGS+= --enable-ipv6 16CONFIGURE_ARGS+= --enable-ipv6
15.else 17.else
16CONFIGURE_ARGS+= --disable-ipv6 18CONFIGURE_ARGS+= --disable-ipv6
17.endif 19.endif
18 20
19.if !empty(PKG_OPTIONS:Msnmp) 21.if !empty(PKG_OPTIONS:Msnmp)
20CONFIGURE_ARGS+= --with-ntpsnmpd 22CONFIGURE_ARGS+= --with-ntpsnmpd
21PLIST.ntpsnmpd= yes 23PLIST.ntpsnmpd= yes
 24USE_TOOLS+= perl
22. include "../../net/net-snmp/buildlink3.mk" 25. include "../../net/net-snmp/buildlink3.mk"
23.else 26.else
24CONFIGURE_ARGS+= --without-ntpsnmpd 27CONFIGURE_ARGS+= --without-ntpsnmpd
25CONFIGURE_ARGS+= --with-net-snmp-config=false 28CONFIGURE_ARGS+= --with-net-snmp-config=false
26.endif 29.endif

File Added: pkgsrc/net/ntp4/patches/patch-configure
$NetBSD: patch-configure,v 1.4 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base; add support for setproctitle(3).

--- configure.orig	2020-03-04 01:40:14.000000000 +0000
+++ configure
@@ -27148,7 +27148,7 @@ fi
 done
 
 
-for ac_func in fnmatch getbootfile getuid getrusage nanosleep strsignal
+for ac_func in fnmatch getbootfile getuid getrusage nanosleep strsignal setproctitle
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"

cvs diff -r1.1 -r1.2 pkgsrc/net/ntp4/patches/patch-include-ntp__syscall.h (expand / switch to unified diff)

--- pkgsrc/net/ntp4/patches/patch-include-ntp__syscall.h 2015/10/29 11:23:47 1.1
+++ pkgsrc/net/ntp4/patches/patch-include-ntp__syscall.h 2020/06/21 15:10:47 1.2
@@ -1,14 +1,16 @@ @@ -1,14 +1,16 @@
1$NetBSD: patch-include-ntp__syscall.h,v 1.1 2015/10/29 11:23:47 christos Exp $ 1$NetBSD: patch-include-ntp__syscall.h,v 1.2 2020/06/21 15:10:47 taca Exp $
 2
 3* Changes from NetBSD base.
2 4
3--- include/ntp_syscall.h.orig 2011-03-31 10:03:53.000000000 +0000 5--- include/ntp_syscall.h.orig 2011-03-31 10:03:53.000000000 +0000
4+++ include/ntp_syscall.h 6+++ include/ntp_syscall.h
5@@ -10,6 +10,14 @@ 7@@ -10,6 +10,14 @@
6 # include <sys/timex.h> 8 # include <sys/timex.h>
7 #endif 9 #endif
8  10
9+#if defined(ADJ_NANO) && !defined(MOD_NANO) 11+#if defined(ADJ_NANO) && !defined(MOD_NANO)
10+#define MOD_NANO ADJ_NANO 12+#define MOD_NANO ADJ_NANO
11+#endif 13+#endif
12+ 14+
13+#if defined(ADJ_TAI) && !defined(MOD_TAI) 15+#if defined(ADJ_TAI) && !defined(MOD_TAI)
14+#define MOD_TAI ADJ_TAI 16+#define MOD_TAI ADJ_TAI

File Added: pkgsrc/net/ntp4/patches/patch-include_ntp__md5.h
$NetBSD: patch-include_ntp__md5.h,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- include/ntp_md5.h.orig	2018-08-14 11:51:07.000000000 +0000
+++ include/ntp_md5.h
@@ -36,8 +36,8 @@
 # define EVP_md5()			NULL
 # define EVP_MD_CTX_init(c)
 # define EVP_MD_CTX_set_flags(c, f)
-# define EVP_DigestInit(c, dt)		(MD5Init(c), 1)
-# define EVP_DigestInit_ex(c, dt, i)	(MD5Init(c), 1)
+# define EVP_DigestInit(c, dt)		(MD5Init(c), (dt ? 1 : 1))
+# define EVP_DigestInit_ex(c, dt, i)	(MD5Init(c), (dt ? 1 : 1))
 # define EVP_DigestUpdate(c, p, s)	MD5Update(c, (const void *)(p), \
 						  s)
 # define EVP_DigestFinal(c, d, pdl)	\

File Added: pkgsrc/net/ntp4/patches/patch-include_ntp__request.h
$NetBSD: patch-include_ntp__request.h,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- include/ntp_request.h.orig	2020-03-03 23:41:29.000000000 +0000
+++ include/ntp_request.h
@@ -129,6 +129,25 @@ typedef union req_data_u_tag {
 } req_data_u;				/* struct conf_peer must fit */
 
 /*
+ * Structure for carrying system flags.
+ */
+struct conf_sys_flags {
+	u_int32 flags;
+};
+
+/*
+ * System flags we can set/clear
+ */
+#define	SYS_FLAG_BCLIENT	0x01
+#define	SYS_FLAG_PPS		0x02
+#define SYS_FLAG_NTP		0x04
+#define SYS_FLAG_KERNEL		0x08
+#define SYS_FLAG_MONITOR	0x10
+#define SYS_FLAG_FILEGEN	0x20
+#define SYS_FLAG_AUTH		0x40
+#define SYS_FLAG_CAL		0x80
+
+/*
  * A request packet.  These are almost a fixed length.
  */
 struct req_pkt {
@@ -226,8 +245,8 @@ struct resp_pkt {
 
 #define	INFO_ERR(err_nitems)	((u_short)((ntohs(err_nitems)>>12)&0xf))
 #define	INFO_NITEMS(err_nitems)	((u_short)(ntohs(err_nitems)&0xfff))
-#define	ERR_NITEMS(err, nitems)	(htons((u_short)((((u_short)(err)<<12)&0xf000)\
-				|((u_short)(nitems)&0xfff))))
+#define _ERR_EN(err)		((u_short)(((err)&0xf)<<12))
+#define	ERR_NITEMS(err, nitems)	((u_short)htons(_ERR_EN(err)|(nitems&0xfff)))
 
 #define	INFO_MBZ(mbz_itemsize)	((ntohs(mbz_itemsize)>>12)&0xf)
 #define	INFO_ITEMSIZE(mbz_itemsize)	((u_short)(ntohs(mbz_itemsize)&0xfff))
@@ -629,25 +648,6 @@ struct conf_unpeer {
 };
 
 /*
- * Structure for carrying system flags.
- */
-struct conf_sys_flags {
-	u_int32 flags;
-};
-
-/*
- * System flags we can set/clear
- */
-#define	SYS_FLAG_BCLIENT	0x01
-#define	SYS_FLAG_PPS		0x02
-#define SYS_FLAG_NTP		0x04
-#define SYS_FLAG_KERNEL		0x08
-#define SYS_FLAG_MONITOR	0x10
-#define SYS_FLAG_FILEGEN	0x20
-#define SYS_FLAG_AUTH		0x40
-#define SYS_FLAG_CAL		0x80
-
-/*
  * Structure used for returning restrict entries
  */
 struct info_restrict {

File Added: pkgsrc/net/ntp4/patches/patch-include_refclock__atom.h
$NetBSD: patch-include_refclock__atom.h,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- include/refclock_atom.h.orig	2011-10-09 05:08:20.000000000 +0000
+++ include/refclock_atom.h
@@ -1,8 +1,10 @@
 /*
  * Definitions for the atom driver and its friends
  */
-#undef NANOSECOND	/* some systems define it differently */
+#ifndef NANOSECOND
 #define NANOSECOND	1000000000 /* one second (ns) */
+#endif
+#define RANGEGATE	500000  /* range gate (ns) */
 
 struct refclock_atom {
 	pps_handle_t handle;

File Added: pkgsrc/net/ntp4/patches/patch-lib_isc_inet__ntop.c
$NetBSD: patch-lib_isc_inet__ntop.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- lib/isc/inet_ntop.c.orig	2015-02-28 09:44:07.000000000 +0000
+++ lib/isc/inet_ntop.c
@@ -88,11 +88,11 @@ isc_net_ntop(int af, const void *src, ch
 static const char *
 inet_ntop4(const unsigned char *src, char *dst, size_t size)
 {
-	static const char *fmt = "%u.%u.%u.%u";
+#define	FMT "%u.%u.%u.%u"
 	char tmp[sizeof("255.255.255.255")];
 	int len;
 
-	len = snprintf(tmp, sizeof(tmp), fmt, src[0], src[1], src[2], src[3]);
+	len = snprintf(tmp, sizeof(tmp), FMT, src[0], src[1], src[2], src[3]);
 	if (len < 0 || (size_t)len >= size)
 	{
 		errno = ENOSPC;

File Added: pkgsrc/net/ntp4/patches/patch-lib_isc_unix_net.c
$NetBSD: patch-lib_isc_unix_net.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- lib/isc/unix/net.c.orig	2015-02-21 10:33:37.000000000 +0000
+++ lib/isc/unix/net.c
@@ -104,12 +104,12 @@ const struct in6_addr isc_net_in6addrloo
 
 # if defined(WANT_IPV6)
 static isc_once_t 	once_ipv6only = ISC_ONCE_INIT;
-# endif
 
 # if defined(ISC_PLATFORM_HAVEIPV6) && \
      defined(WANT_IPV6) && defined(ISC_PLATFORM_HAVEIN6PKTINFO)
 static isc_once_t 	once_ipv6pktinfo = ISC_ONCE_INIT;
 # endif
+# endif
 #endif /* ISC_PLATFORM_HAVEIPV6 */
 
 static isc_once_t 	once = ISC_ONCE_INIT;

File Added: pkgsrc/net/ntp4/patches/patch-libntp_ntp__calendar.c
$NetBSD: patch-libntp_ntp__calendar.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- libntp/ntp_calendar.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ libntp/ntp_calendar.c
@@ -2223,10 +2223,10 @@ ntpcal_iso8601std(
 		len = LIB_BUFLENGTH;
 	}
 	if (len) {
-		len = snprintf(buf, len, "%04u-%02u-%02uT%02u:%02u:%02u",
+		int slen = snprintf(buf, len, "%04u-%02u-%02uT%02u:%02u:%02u",
 			       cdp->year, cdp->month, cdp->monthday,
 			       cdp->hour, cdp->minute, cdp->second);
-		if (len < 0)
+		if (slen < 0)
 			*buf = '\0';
 	}
 	return buf;

File Added: pkgsrc/net/ntp4/patches/patch-libntp_socktoa.c
$NetBSD: patch-libntp_socktoa.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- libntp/socktoa.c.orig	2011-11-03 10:46:37.000000000 +0000
+++ libntp/socktoa.c
@@ -91,8 +91,8 @@ sockporttoa(
 	LIB_GETBUF(buf);
 	snprintf(buf, LIB_BUFLENGTH,
 		 (IS_IPV6(sock))
-		     ? "[%s]:%hu"
-		     : "%s:%hu",
+		     ? "[%s]:%u"
+		     : "%s:%u",
 		 atext, SRCPORT(sock));
 	errno = saved_errno;
 

File Added: pkgsrc/net/ntp4/patches/patch-libntp_timexsup.c
$NetBSD: patch-libntp_timexsup.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- libntp/timexsup.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ libntp/timexsup.c
@@ -11,6 +11,7 @@
 #include <math.h>
 
 #ifdef HAVE_SYS_TIMEX_H
+# include <time.h>
 # include <sys/timex.h>
 #endif
 

File Added: pkgsrc/net/ntp4/patches/patch-libntp_work__fork.c
$NetBSD: patch-libntp_work__fork.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base; add support for setproctitle(3).

--- libntp/work_fork.c.orig	2019-03-09 08:15:34.000000000 +0000
+++ libntp/work_fork.c
@@ -434,6 +434,32 @@ fork_deferred_worker(void)
 }
 #endif
 
+#if HAVE_SETPROCTITLE == 0
+static void
+setproctitle(const char *fmt, ...)
+{
+	va_list ap;
+	char b1[128];
+	int argcc, argvlen, l;
+
+	if (saved_argc == 0)
+		return;
+
+	va_start(ap, fmt);
+	vsnprintf(b1, sizeof(b1), fmt, ap);
+	va_end(ap);
+
+	/* Clear argv */
+	for (argvlen = 0, argcc = 0; argcc < saved_argc; argcc++) {
+		l = strlen(saved_argv[argcc]);
+		argvlen += l + 1;
+		memset(saved_argv[argcc], 0, l);
+	}
+	l = snprintf(saved_argv[0], argvlen, "ntpd: %s", b1);
+	for (argcc = 1; argcc < saved_argc; argcc++)
+		saved_argv[argcc] = &saved_argv[0][l];
+}
+#endif
 
 static void
 fork_blocking_child(
@@ -545,17 +571,7 @@ fork_blocking_child(
 	 * Change the process name of the child to avoid confusion
 	 * about ntpd trunning twice.
 	 */
-	if (saved_argc != 0) {
-		int argcc;
-		int argvlen = 0;
-		/* Clear argv */
-		for (argcc = 0; argcc < saved_argc; argcc++) {
-			int l = strlen(saved_argv[argcc]);
-			argvlen += l + 1;
-			memset(saved_argv[argcc], 0, l);
-		}
-		strlcpy(saved_argv[0], "ntpd: asynchronous dns resolver", argvlen);
-	}
+	setproctitle("asynchronous dns resolver");
 
 	/*
 	 * In the child, close all files except stdin, stdout, stderr,

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_ntp__config.c
$NetBSD: patch-ntpd_ntp__config.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/ntp_config.c.orig	2020-03-04 01:38:14.000000000 +0000
+++ ntpd/ntp_config.c
@@ -2986,7 +2986,7 @@ void
 attrtopsl(int poll, attr_val *avp)
 {
 
-	DEBUG_INSIST((poll - 3) < sizeof psl);
+	DEBUG_INSIST((size_t)(poll - 3) < sizeof psl);
 	if (poll < 3 || poll > 17) {
 		msyslog(LOG_ERR, "attrtopsl(%d, ...): Poll value is out of range - ignoring", poll);
 	} else {
@@ -3836,6 +3836,7 @@ config_fudge(
 	address_node *addr_node;
 	struct refclockstat clock_stat;
 	int err_flag;
+	size_t len;
 
 	curr_fudge = HEAD_PFIFO(ptree->fudge);
 	for (; curr_fudge != NULL; curr_fudge = curr_fudge->link) {
@@ -3889,9 +3890,13 @@ config_fudge(
 
 			case T_Refid:
 				clock_stat.haveflags |= CLK_HAVEVAL2;
-				/* strncpy() does exactly what we want here: */
-				strncpy((char*)&clock_stat.fudgeval2,
-					curr_opt->value.s, 4);
+				/* avoid using strncpy because gcc warns */
+				len = strlen(curr_opt->value.s);
+				if (len > sizeof(clock_stat.fudgeval2))
+					len = sizeof(clock_stat.fudgeval2);
+				clock_stat.fudgeval2 = 0;
+				memcpy(&clock_stat.fudgeval2,
+				    curr_opt->value.s, len);
 				break;
 
 			case T_Flag1:
@@ -4998,7 +5003,7 @@ getconfig(
 
 
 	/*** BULK OF THE PARSER ***/
-#ifdef DEBUG
+#if defined(DEBUG) && defined(YYDEBUG)
 	yydebug = !!(debug >= 5);
 #endif
 	yyparse();
@@ -5461,7 +5466,7 @@ ntp_rlimit(
 			(int)(rl_value / rl_scale), rl_sstr));
 		rl.rlim_cur = rl.rlim_max = rl_value;
 		if (setrlimit(RLIMIT_MEMLOCK, &rl) == -1)
-			msyslog(LOG_ERR, "Cannot set RLIMIT_MEMLOCK: %m");
+			msyslog(LOG_DEBUG, "Cannot set RLIMIT_MEMLOCK: %m");
 		break;
 # endif /* RLIMIT_MEMLOCK */
 

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_ntp__control.c
$NetBSD: patch-ntpd_ntp__control.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/ntp_control.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ ntpd/ntp_control.c
@@ -1910,7 +1910,11 @@ ctl_putsys(
 	)
 {
 	l_fp tmp;
+#ifndef HAVE_UNAME
 	char str[256];
+#else
+	char str[sizeof utsnamebuf.sysname + sizeof utsnamebuf.release];
+#endif
 	u_int u;
 	double kb;
 	double dtemp;

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_ntp__keyword.h
$NetBSD: patch-ntpd_ntp__keyword.h,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/ntp_keyword.h.orig	2020-03-04 01:38:17.000000000 +0000
+++ ntpd/ntp_keyword.h
@@ -2,224 +2,224 @@
  * ntp_keyword.h
  * 
  * NOTE: edit this file with caution, it is generated by keyword-gen.c
- *	 Generated 2020-02-13 08:56:28 UTC	  diff_ignore_line
+ *	 Generated 2020-05-25 20:05:29 UTC	  diff_ignore_line
  *
  */
 #include "ntp_scanner.h"
 #include "ntp_parser.h"
 
-#define LOWEST_KEYWORD_ID 258
+#define LOWEST_KEYWORD_ID 257
 
 const char * const keyword_text[209] = {
-	/* 0       258             T_Abbrev */	"abbrev",
-	/* 1       259                T_Age */	"age",
-	/* 2       260                T_All */	"all",
-	/* 3       261              T_Allan */	"allan",
-	/* 4       262           T_Allpeers */	"allpeers",
-	/* 5       263               T_Auth */	"auth",
-	/* 6       264            T_Autokey */	"autokey",
-	/* 7       265            T_Automax */	"automax",
-	/* 8       266            T_Average */	"average",
-	/* 9       267           T_Basedate */	"basedate",
-	/* 10      268            T_Bclient */	"bclient",
-	/* 11      269        T_Bcpollbstep */	"bcpollbstep",
-	/* 12      270             T_Beacon */	"beacon",
-	/* 13      271          T_Broadcast */	"broadcast",
-	/* 14      272    T_Broadcastclient */	"broadcastclient",
-	/* 15      273     T_Broadcastdelay */	"broadcastdelay",
-	/* 16      274              T_Burst */	"burst",
-	/* 17      275          T_Calibrate */	"calibrate",
-	/* 18      276            T_Ceiling */	"ceiling",
-	/* 19      277          T_Checkhash */	"checkhash",
-	/* 20      278         T_Clockstats */	"clockstats",
-	/* 21      279             T_Cohort */	"cohort",
-	/* 22      280         T_ControlKey */	"controlkey",
-	/* 23      281             T_Crypto */	"crypto",
-	/* 24      282        T_Cryptostats */	"cryptostats",
-	/* 25      283                T_Ctl */	"ctl",
-	/* 26      284                T_Day */	"day",
-	/* 27      285            T_Default */	"default",
-	/* 28      286             T_Digest */	"digest",
-	/* 29      287            T_Disable */	"disable",
-	/* 30      288            T_Discard */	"discard",
-	/* 31      289         T_Dispersion */	"dispersion",
-	/* 32      290             T_Double */	NULL,
-	/* 33      291          T_Driftfile */	"driftfile",
-	/* 34      292               T_Drop */	"drop",
-	/* 35      293               T_Dscp */	"dscp",
-	/* 36      294           T_Ellipsis */	"...",
-	/* 37      295             T_Enable */	"enable",
-	/* 38      296                T_End */	"end",
-	/* 39      297              T_Epeer */	"epeer",
-	/* 40      298              T_False */	NULL,
-	/* 41      299               T_File */	"file",
-	/* 42      300            T_Filegen */	"filegen",
-	/* 43      301            T_Filenum */	"filenum",
-	/* 44      302              T_Flag1 */	"flag1",
-	/* 45      303              T_Flag2 */	"flag2",
-	/* 46      304              T_Flag3 */	"flag3",
-	/* 47      305              T_Flag4 */	"flag4",
-	/* 48      306              T_Flake */	"flake",
-	/* 49      307              T_Floor */	"floor",
-	/* 50      308               T_Freq */	"freq",
-	/* 51      309              T_Fudge */	"fudge",
-	/* 52      310               T_Fuzz */	"fuzz",
-	/* 53      311               T_Host */	"host",
-	/* 54      312           T_Huffpuff */	"huffpuff",
-	/* 55      313             T_Iburst */	"iburst",
-	/* 56      314              T_Ident */	"ident",
-	/* 57      315             T_Ignore */	"ignore",
-	/* 58      316         T_Ignorehash */	"ignorehash",
-	/* 59      317           T_Incalloc */	"incalloc",
-	/* 60      318             T_Incmem */	"incmem",
-	/* 61      319          T_Initalloc */	"initalloc",
-	/* 62      320            T_Initmem */	"initmem",
-	/* 63      321        T_Includefile */	"includefile",
-	/* 64      322            T_Integer */	NULL,
-	/* 65      323          T_Interface */	"interface",
-	/* 66      324           T_Intrange */	NULL,
-	/* 67      325                 T_Io */	"io",
-	/* 68      326        T_Ippeerlimit */	"ippeerlimit",
-	/* 69      327               T_Ipv4 */	"ipv4",
-	/* 70      328          T_Ipv4_flag */	"-4",
-	/* 71      329               T_Ipv6 */	"ipv6",
-	/* 72      330          T_Ipv6_flag */	"-6",
-	/* 73      331             T_Kernel */	"kernel",
-	/* 74      332                T_Key */	"key",
-	/* 75      333               T_Keys */	"keys",
-	/* 76      334            T_Keysdir */	"keysdir",
-	/* 77      335                T_Kod */	"kod",
-	/* 78      336           T_Leapfile */	"leapfile",
-	/* 79      337  T_Leapsmearinterval */	"leapsmearinterval",
-	/* 80      338            T_Limited */	"limited",
-	/* 81      339               T_Link */	"link",
-	/* 82      340             T_Listen */	"listen",
-	/* 83      341          T_Logconfig */	"logconfig",
-	/* 84      342            T_Logfile */	"logfile",
-	/* 85      343          T_Loopstats */	"loopstats",
-	/* 86      344        T_Lowpriotrap */	"lowpriotrap",
-	/* 87      345     T_Manycastclient */	"manycastclient",
-	/* 88      346     T_Manycastserver */	"manycastserver",
-	/* 89      347               T_Mask */	"mask",
-	/* 90      348             T_Maxage */	"maxage",
-	/* 91      349           T_Maxclock */	"maxclock",
-	/* 92      350           T_Maxdepth */	"maxdepth",
-	/* 93      351            T_Maxdist */	"maxdist",
-	/* 94      352             T_Maxmem */	"maxmem",
-	/* 95      353            T_Maxpoll */	"maxpoll",
-	/* 96      354          T_Mdnstries */	"mdnstries",
-	/* 97      355                T_Mem */	"mem",
-	/* 98      356            T_Memlock */	"memlock",
-	/* 99      357           T_Minclock */	"minclock",
-	/* 100     358           T_Mindepth */	"mindepth",
-	/* 101     359            T_Mindist */	"mindist",
-	/* 102     360            T_Minimum */	"minimum",
-	/* 103     361          T_Minjitter */	"minjitter",
-	/* 104     362            T_Minpoll */	"minpoll",
-	/* 105     363            T_Minsane */	"minsane",
-	/* 106     364               T_Mode */	"mode",
-	/* 107     365              T_Mode7 */	"mode7",
-	/* 108     366            T_Monitor */	"monitor",
-	/* 109     367              T_Month */	"month",
-	/* 110     368                T_Mru */	"mru",
-	/* 111     369             T_Mssntp */	"mssntp",
-	/* 112     370    T_Multicastclient */	"multicastclient",
-	/* 113     371                T_Nic */	"nic",
-	/* 114     372             T_Nolink */	"nolink",
-	/* 115     373           T_Nomodify */	"nomodify",
-	/* 116     374          T_Nomrulist */	"nomrulist",
-	/* 117     375               T_None */	"none",
-	/* 118     376        T_Nonvolatile */	"nonvolatile",
-	/* 119     377            T_Noepeer */	"noepeer",
-	/* 120     378             T_Nopeer */	"nopeer",
-	/* 121     379            T_Noquery */	"noquery",
-	/* 122     380           T_Noselect */	"noselect",
-	/* 123     381            T_Noserve */	"noserve",
-	/* 124     382             T_Notrap */	"notrap",
-	/* 125     383            T_Notrust */	"notrust",
-	/* 126     384                T_Ntp */	"ntp",
-	/* 127     385            T_Ntpport */	"ntpport",
-	/* 128     386     T_NtpSignDsocket */	"ntpsigndsocket",
-	/* 129     387             T_Orphan */	"orphan",
-	/* 130     388         T_Orphanwait */	"orphanwait",
-	/* 131     389          T_PCEdigest */	"peer_clear_digest_early",
-	/* 132     390              T_Panic */	"panic",
-	/* 133     391               T_Peer */	"peer",
-	/* 134     392          T_Peerstats */	"peerstats",
-	/* 135     393              T_Phone */	"phone",
-	/* 136     394                T_Pid */	"pid",
-	/* 137     395            T_Pidfile */	"pidfile",
-	/* 138     396               T_Poll */	"poll",
-	/* 139     397       T_PollSkewList */	"pollskewlist",
-	/* 140     398               T_Pool */	"pool",
-	/* 141     399               T_Port */	"port",
-	/* 142     400            T_Preempt */	"preempt",
-	/* 143     401             T_Prefer */	"prefer",
-	/* 144     402         T_Protostats */	"protostats",
-	/* 145     403                 T_Pw */	"pw",
-	/* 146     404           T_Randfile */	"randfile",
-	/* 147     405           T_Rawstats */	"rawstats",
-	/* 148     406              T_Refid */	"refid",
-	/* 149     407         T_Requestkey */	"requestkey",
-	/* 150     408              T_Reset */	"reset",
-	/* 151     409           T_Restrict */	"restrict",
-	/* 152     410             T_Revoke */	"revoke",
-	/* 153     411             T_Rlimit */	"rlimit",
-	/* 154     412      T_Saveconfigdir */	"saveconfigdir",
-	/* 155     413             T_Server */	"server",
-	/* 156     414     T_Serverresponse */	"serverresponse",
-	/* 157     415 T_ServerresponseFuzz */	NULL,
-	/* 158     416             T_Setvar */	"setvar",
-	/* 159     417             T_Source */	"source",
-	/* 160     418          T_Stacksize */	"stacksize",
-	/* 161     419         T_Statistics */	"statistics",
-	/* 162     420              T_Stats */	"stats",
-	/* 163     421           T_Statsdir */	"statsdir",
-	/* 164     422               T_Step */	"step",
-	/* 165     423           T_Stepback */	"stepback",
-	/* 166     424            T_Stepfwd */	"stepfwd",
-	/* 167     425            T_Stepout */	"stepout",
-	/* 168     426            T_Stratum */	"stratum",
-	/* 169     427             T_String */	NULL,
-	/* 170     428                T_Sys */	"sys",
-	/* 171     429           T_Sysstats */	"sysstats",
-	/* 172     430               T_Tick */	"tick",
-	/* 173     431              T_Time1 */	"time1",
-	/* 174     432              T_Time2 */	"time2",
-	/* 175     433              T_Timer */	"timer",
-	/* 176     434        T_Timingstats */	"timingstats",
-	/* 177     435             T_Tinker */	"tinker",
-	/* 178     436                T_Tos */	"tos",
-	/* 179     437               T_Trap */	"trap",
-	/* 180     438               T_True */	"true",
-	/* 181     439         T_Trustedkey */	"trustedkey",
-	/* 182     440                T_Ttl */	"ttl",
-	/* 183     441               T_Type */	"type",
-	/* 184     442              T_U_int */	NULL,
-	/* 185     443           T_UEcrypto */	"unpeer_crypto_early",
-	/* 186     444        T_UEcryptonak */	"unpeer_crypto_nak_early",
-	/* 187     445           T_UEdigest */	"unpeer_digest_early",
-	/* 188     446           T_Unconfig */	"unconfig",
-	/* 189     447             T_Unpeer */	"unpeer",
-	/* 190     448            T_Version */	"version",
-	/* 191     449    T_WanderThreshold */	NULL,
-	/* 192     450               T_Week */	"week",
-	/* 193     451           T_Wildcard */	"wildcard",
-	/* 194     452             T_Xleave */	"xleave",
-	/* 195     453           T_Xmtnonce */	"xmtnonce",
-	/* 196     454               T_Year */	"year",
-	/* 197     455               T_Flag */	NULL,
-	/* 198     456                T_EOC */	NULL,
-	/* 199     457           T_Simulate */	"simulate",
-	/* 200     458         T_Beep_Delay */	"beep_delay",
-	/* 201     459       T_Sim_Duration */	"simulation_duration",
-	/* 202     460      T_Server_Offset */	"server_offset",
-	/* 203     461           T_Duration */	"duration",
-	/* 204     462        T_Freq_Offset */	"freq_offset",
-	/* 205     463             T_Wander */	"wander",
-	/* 206     464             T_Jitter */	"jitter",
-	/* 207     465         T_Prop_Delay */	"prop_delay",
-	/* 208     466         T_Proc_Delay */	"proc_delay"
+	/* 0       257                  257 */	"abbrev",
+	/* 1       258                  258 */	"age",
+	/* 2       259                  259 */	"all",
+	/* 3       260                  260 */	"allan",
+	/* 4       261                  261 */	"allpeers",
+	/* 5       262                  262 */	"auth",
+	/* 6       263                  263 */	"autokey",
+	/* 7       264                  264 */	"automax",
+	/* 8       265                  265 */	"average",
+	/* 9       266                  266 */	"basedate",
+	/* 10      267                  267 */	"bclient",
+	/* 11      268                  268 */	"bcpollbstep",
+	/* 12      269                  269 */	"beacon",
+	/* 13      270                  270 */	"broadcast",
+	/* 14      271                  271 */	"broadcastclient",
+	/* 15      272                  272 */	"broadcastdelay",
+	/* 16      273                  273 */	"burst",
+	/* 17      274                  274 */	"calibrate",
+	/* 18      275                  275 */	"ceiling",
+	/* 19      276                  276 */	"checkhash",
+	/* 20      277                  277 */	"clockstats",
+	/* 21      278                  278 */	"cohort",
+	/* 22      279                  279 */	"controlkey",
+	/* 23      280                  280 */	"crypto",
+	/* 24      281                  281 */	"cryptostats",
+	/* 25      282                  282 */	"ctl",
+	/* 26      283                  283 */	"day",
+	/* 27      284                  284 */	"default",
+	/* 28      285                  285 */	"digest",
+	/* 29      286                  286 */	"disable",
+	/* 30      287                  287 */	"discard",
+	/* 31      288                  288 */	"dispersion",
+	/* 32      289                  289 */	NULL,
+	/* 33      290                  290 */	"driftfile",
+	/* 34      291                  291 */	"drop",
+	/* 35      292                  292 */	"dscp",
+	/* 36      293                  293 */	"...",
+	/* 37      294                  294 */	"enable",
+	/* 38      295                  295 */	"end",
+	/* 39      296                  296 */	"epeer",
+	/* 40      297                  297 */	NULL,
+	/* 41      298                  298 */	"file",
+	/* 42      299                  299 */	"filegen",
+	/* 43      300                  300 */	"filenum",
+	/* 44      301                  301 */	"flag1",
+	/* 45      302                  302 */	"flag2",
+	/* 46      303                  303 */	"flag3",
+	/* 47      304                  304 */	"flag4",
+	/* 48      305                  305 */	"flake",
+	/* 49      306                  306 */	"floor",
+	/* 50      307                  307 */	"freq",
+	/* 51      308                  308 */	"fudge",
+	/* 52      309                  309 */	"fuzz",
+	/* 53      310                  310 */	"host",
+	/* 54      311                  311 */	"huffpuff",
+	/* 55      312                  312 */	"iburst",
+	/* 56      313                  313 */	"ident",
+	/* 57      314                  314 */	"ignore",
+	/* 58      315                  315 */	"ignorehash",
+	/* 59      316                  316 */	"incalloc",
+	/* 60      317                  317 */	"incmem",
+	/* 61      318                  318 */	"initalloc",
+	/* 62      319                  319 */	"initmem",
+	/* 63      320                  320 */	"includefile",
+	/* 64      321                  321 */	NULL,
+	/* 65      322                  322 */	"interface",
+	/* 66      323                  323 */	NULL,
+	/* 67      324                  324 */	"io",
+	/* 68      325                  325 */	"ippeerlimit",
+	/* 69      326                  326 */	"ipv4",
+	/* 70      327                  327 */	"-4",
+	/* 71      328                  328 */	"ipv6",
+	/* 72      329                  329 */	"-6",
+	/* 73      330                  330 */	"kernel",
+	/* 74      331                  331 */	"key",
+	/* 75      332                  332 */	"keys",
+	/* 76      333                  333 */	"keysdir",
+	/* 77      334                  334 */	"kod",
+	/* 78      335                  335 */	"leapfile",
+	/* 79      336                  336 */	"leapsmearinterval",
+	/* 80      337                  337 */	"limited",
+	/* 81      338                  338 */	"link",
+	/* 82      339                  339 */	"listen",
+	/* 83      340                  340 */	"logconfig",
+	/* 84      341                  341 */	"logfile",
+	/* 85      342                  342 */	"loopstats",
+	/* 86      343                  343 */	"lowpriotrap",
+	/* 87      344                  344 */	"manycastclient",
+	/* 88      345                  345 */	"manycastserver",
+	/* 89      346                  346 */	"mask",
+	/* 90      347                  347 */	"maxage",
+	/* 91      348                  348 */	"maxclock",
+	/* 92      349                  349 */	"maxdepth",
+	/* 93      350                  350 */	"maxdist",
+	/* 94      351                  351 */	"maxmem",
+	/* 95      352                  352 */	"maxpoll",
+	/* 96      353                  353 */	"mdnstries",
+	/* 97      354                  354 */	"mem",
+	/* 98      355                  355 */	"memlock",
+	/* 99      356                  356 */	"minclock",
+	/* 100     357                  357 */	"mindepth",
+	/* 101     358                  358 */	"mindist",
+	/* 102     359                  359 */	"minimum",
+	/* 103     360                  360 */	"minjitter",
+	/* 104     361                  361 */	"minpoll",
+	/* 105     362                  362 */	"minsane",
+	/* 106     363                  363 */	"mode",
+	/* 107     364                  364 */	"mode7",
+	/* 108     365                  365 */	"monitor",
+	/* 109     366                  366 */	"month",
+	/* 110     367                  367 */	"mru",
+	/* 111     368                  368 */	"mssntp",
+	/* 112     369                  369 */	"multicastclient",
+	/* 113     370                  370 */	"nic",
+	/* 114     371                  371 */	"nolink",
+	/* 115     372                  372 */	"nomodify",
+	/* 116     373                  373 */	"nomrulist",
+	/* 117     374                  374 */	"none",
+	/* 118     375                  375 */	"nonvolatile",
+	/* 119     376                  376 */	"noepeer",
+	/* 120     377                  377 */	"nopeer",
+	/* 121     378                  378 */	"noquery",
+	/* 122     379                  379 */	"noselect",
+	/* 123     380                  380 */	"noserve",
+	/* 124     381                  381 */	"notrap",
+	/* 125     382                  382 */	"notrust",
+	/* 126     383                  383 */	"ntp",
+	/* 127     384                  384 */	"ntpport",
+	/* 128     385                  385 */	"ntpsigndsocket",
+	/* 129     386                  386 */	"orphan",
+	/* 130     387                  387 */	"orphanwait",
+	/* 131     388                  388 */	"peer_clear_digest_early",
+	/* 132     389                  389 */	"panic",
+	/* 133     390                  390 */	"peer",
+	/* 134     391                  391 */	"peerstats",
+	/* 135     392                  392 */	"phone",
+	/* 136     393                  393 */	"pid",
+	/* 137     394                  394 */	"pidfile",
+	/* 138     395                  395 */	"poll",
+	/* 139     396                  396 */	"pollskewlist",
+	/* 140     397                  397 */	"pool",
+	/* 141     398                  398 */	"port",
+	/* 142     399                  399 */	"preempt",
+	/* 143     400                  400 */	"prefer",
+	/* 144     401                  401 */	"protostats",
+	/* 145     402                  402 */	"pw",
+	/* 146     403                  403 */	"randfile",
+	/* 147     404                  404 */	"rawstats",
+	/* 148     405                  405 */	"refid",
+	/* 149     406                  406 */	"requestkey",
+	/* 150     407                  407 */	"reset",
+	/* 151     408                  408 */	"restrict",
+	/* 152     409                  409 */	"revoke",
+	/* 153     410                  410 */	"rlimit",
+	/* 154     411                  411 */	"saveconfigdir",
+	/* 155     412                  412 */	"server",
+	/* 156     413                  413 */	"serverresponse",
+	/* 157     414                  414 */	NULL,
+	/* 158     415                  415 */	"setvar",
+	/* 159     416                  416 */	"source",
+	/* 160     417                  417 */	"stacksize",
+	/* 161     418                  418 */	"statistics",
+	/* 162     419                  419 */	"stats",
+	/* 163     420                  420 */	"statsdir",
+	/* 164     421                  421 */	"step",
+	/* 165     422                  422 */	"stepback",
+	/* 166     423                  423 */	"stepfwd",
+	/* 167     424                  424 */	"stepout",
+	/* 168     425                  425 */	"stratum",
+	/* 169     426                  426 */	NULL,
+	/* 170     427                  427 */	"sys",
+	/* 171     428                  428 */	"sysstats",
+	/* 172     429                  429 */	"tick",
+	/* 173     430                  430 */	"time1",
+	/* 174     431                  431 */	"time2",
+	/* 175     432                  432 */	"timer",
+	/* 176     433                  433 */	"timingstats",
+	/* 177     434                  434 */	"tinker",
+	/* 178     435                  435 */	"tos",
+	/* 179     436                  436 */	"trap",
+	/* 180     437                  437 */	"true",
+	/* 181     438                  438 */	"trustedkey",
+	/* 182     439                  439 */	"ttl",
+	/* 183     440                  440 */	"type",
+	/* 184     441                  441 */	NULL,
+	/* 185     442                  442 */	"unpeer_crypto_early",
+	/* 186     443                  443 */	"unpeer_crypto_nak_early",
+	/* 187     444                  444 */	"unpeer_digest_early",
+	/* 188     445                  445 */	"unconfig",
+	/* 189     446                  446 */	"unpeer",
+	/* 190     447                  447 */	"version",
+	/* 191     448                  448 */	NULL,
+	/* 192     449                  449 */	"week",
+	/* 193     450                  450 */	"wildcard",
+	/* 194     451                  451 */	"xleave",
+	/* 195     452                  452 */	"xmtnonce",
+	/* 196     453                  453 */	"year",
+	/* 197     454                  454 */	NULL,
+	/* 198     455                  455 */	NULL,
+	/* 199     456                  456 */	"simulate",
+	/* 200     457                  457 */	"beep_delay",
+	/* 201     458                  458 */	"simulation_duration",
+	/* 202     459                  459 */	"server_offset",
+	/* 203     460                  460 */	"duration",
+	/* 204     461                  461 */	"freq_offset",
+	/* 205     462                  462 */	"wander",
+	/* 206     463                  463 */	"jitter",
+	/* 207     464                  464 */	"prop_delay",
+	/* 208     465                  465 */	"proc_delay"
 };
 
 #define SCANNER_INIT_S 985
@@ -227,45 +227,45 @@ const char * const keyword_text[209] = {
 const scan_state sst[988] = {
 /*SS_T( ch,	f-by, match, other ),				 */
   0,				      /*     0                   */
-  S_ST( '-',	3,      330,     0 ), /*     1                   */
+  S_ST( '-',	3,      329,     0 ), /*     1                   */
   S_ST( '.',	3,        3,     1 ), /*     2                   */
-  S_ST( '.',	3,      294,     0 ), /*     3 .                 */
+  S_ST( '.',	3,      293,     0 ), /*     3 .                 */
   S_ST( 'a',	3,       23,     2 ), /*     4                   */
   S_ST( 'b',	3,        6,     0 ), /*     5 a                 */
   S_ST( 'b',	3,        7,     0 ), /*     6 ab                */
   S_ST( 'r',	3,        8,     0 ), /*     7 abb               */
-  S_ST( 'e',	3,      258,     0 ), /*     8 abbr              */
-  S_ST( 'g',	3,      259,     5 ), /*     9 a                 */
-  S_ST( 'l',	3,      260,     9 ), /*    10 a                 */
-  S_ST( 'a',	3,      261,     0 ), /*    11 all               */
+  S_ST( 'e',	3,      257,     0 ), /*     8 abbr              */
+  S_ST( 'g',	3,      258,     5 ), /*     9 a                 */
+  S_ST( 'l',	3,      259,     9 ), /*    10 a                 */
+  S_ST( 'a',	3,      260,     0 ), /*    11 all               */
   S_ST( 'p',	3,       13,    11 ), /*    12 all               */
   S_ST( 'e',	3,       14,     0 ), /*    13 allp              */
   S_ST( 'e',	3,       15,     0 ), /*    14 allpe             */
-  S_ST( 'r',	3,      262,     0 ), /*    15 allpee            */
+  S_ST( 'r',	3,      261,     0 ), /*    15 allpee            */
   S_ST( 'u',	3,       17,    10 ), /*    16 a                 */
   S_ST( 't',	3,       18,     0 ), /*    17 au                */
-  S_ST( 'o',	3,       21,   263 ), /*    18 aut               */
+  S_ST( 'o',	3,       21,   262 ), /*    18 aut               */
   S_ST( 'k',	3,       20,     0 ), /*    19 auto              */
-  S_ST( 'e',	3,      264,     0 ), /*    20 autok             */
+  S_ST( 'e',	3,      263,     0 ), /*    20 autok             */
   S_ST( 'm',	3,       22,    19 ), /*    21 auto              */
-  S_ST( 'a',	3,      265,     0 ), /*    22 autom             */
+  S_ST( 'a',	3,      264,     0 ), /*    22 autom             */
   S_ST( 'v',	3,       24,    16 ), /*    23 a                 */
   S_ST( 'e',	3,       25,     0 ), /*    24 av                */
   S_ST( 'r',	3,       26,     0 ), /*    25 ave               */
   S_ST( 'a',	3,       27,     0 ), /*    26 aver              */
-  S_ST( 'g',	3,      266,     0 ), /*    27 avera             */
+  S_ST( 'g',	3,      265,     0 ), /*    27 avera             */
   S_ST( 'b',	3,       75,     4 ), /*    28                   */
   S_ST( 'a',	3,       30,     0 ), /*    29 b                 */
   S_ST( 's',	3,       31,     0 ), /*    30 ba                */
   S_ST( 'e',	3,       32,     0 ), /*    31 bas               */
   S_ST( 'd',	3,       33,     0 ), /*    32 base              */
   S_ST( 'a',	3,       34,     0 ), /*    33 based             */
-  S_ST( 't',	3,      267,     0 ), /*    34 baseda            */
+  S_ST( 't',	3,      266,     0 ), /*    34 baseda            */
   S_ST( 'c',	3,       40,    29 ), /*    35 b                 */
   S_ST( 'l',	3,       37,     0 ), /*    36 bc                */
   S_ST( 'i',	3,       38,     0 ), /*    37 bcl               */
   S_ST( 'e',	3,       39,     0 ), /*    38 bcli              */
-  S_ST( 'n',	3,      268,     0 ), /*    39 bclie             */
+  S_ST( 'n',	3,      267,     0 ), /*    39 bclie             */
   S_ST( 'p',	3,       41,    36 ), /*    40 bc                */
   S_ST( 'o',	3,       42,     0 ), /*    41 bcp               */
   S_ST( 'l',	3,       43,     0 ), /*    42 bcpo              */
@@ -273,37 +273,37 @@ const scan_state sst[988] = {
   S_ST( 'b',	3,       45,     0 ), /*    44 bcpoll            */
   S_ST( 's',	3,       46,     0 ), /*    45 bcpollb           */
   S_ST( 't',	3,       47,     0 ), /*    46 bcpollbs          */
-  S_ST( 'e',	3,      269,     0 ), /*    47 bcpollbst         */
+  S_ST( 'e',	3,      268,     0 ), /*    47 bcpollbst         */
   S_ST( 'e',	3,       52,    35 ), /*    48 b                 */
   S_ST( 'a',	3,       50,     0 ), /*    49 be                */
   S_ST( 'c',	3,       51,     0 ), /*    50 bea               */
-  S_ST( 'o',	3,      270,     0 ), /*    51 beac              */
+  S_ST( 'o',	3,      269,     0 ), /*    51 beac              */
   S_ST( 'e',	3,       53,    49 ), /*    52 be                */
   S_ST( 'p',	3,       54,     0 ), /*    53 bee               */
   S_ST( '_',	3,       55,     0 ), /*    54 beep              */
   S_ST( 'd',	3,       56,     0 ), /*    55 beep_             */
   S_ST( 'e',	3,       57,     0 ), /*    56 beep_d            */
   S_ST( 'l',	3,       58,     0 ), /*    57 beep_de           */
-  S_ST( 'a',	3,      458,     0 ), /*    58 beep_del          */
+  S_ST( 'a',	3,      457,     0 ), /*    58 beep_del          */
   S_ST( 'r',	3,       60,    48 ), /*    59 b                 */
   S_ST( 'o',	3,       61,     0 ), /*    60 br                */
   S_ST( 'a',	3,       62,     0 ), /*    61 bro               */
   S_ST( 'd',	3,       63,     0 ), /*    62 broa              */
   S_ST( 'c',	3,       64,     0 ), /*    63 broad             */
   S_ST( 'a',	3,       65,     0 ), /*    64 broadc            */
-  S_ST( 's',	3,      271,     0 ), /*    65 broadca           */
+  S_ST( 's',	3,      270,     0 ), /*    65 broadca           */
   S_ST( 'c',	3,       67,     0 ), /*    66 broadcast         */
   S_ST( 'l',	3,       68,     0 ), /*    67 broadcastc        */
   S_ST( 'i',	3,       69,     0 ), /*    68 broadcastcl       */
   S_ST( 'e',	3,       70,     0 ), /*    69 broadcastcli      */
-  S_ST( 'n',	3,      272,     0 ), /*    70 broadcastclie     */
+  S_ST( 'n',	3,      271,     0 ), /*    70 broadcastclie     */
   S_ST( 'd',	3,       72,    66 ), /*    71 broadcast         */
   S_ST( 'e',	3,       73,     0 ), /*    72 broadcastd        */
   S_ST( 'l',	3,       74,     0 ), /*    73 broadcastde       */
-  S_ST( 'a',	3,      273,     0 ), /*    74 broadcastdel      */
+  S_ST( 'a',	3,      272,     0 ), /*    74 broadcastdel      */
   S_ST( 'u',	3,       76,    59 ), /*    75 b                 */
   S_ST( 'r',	3,       77,     0 ), /*    76 bu                */
-  S_ST( 's',	3,      274,     0 ), /*    77 bur               */
+  S_ST( 's',	3,      273,     0 ), /*    77 bur               */
   S_ST( 'c',	3,      125,    28 ), /*    78                   */
   S_ST( 'a',	3,       80,     0 ), /*    79 c                 */
   S_ST( 'l',	3,       81,     0 ), /*    80 ca                */
@@ -311,19 +311,19 @@ const scan_state sst[988] = {
   S_ST( 'b',	3,       83,     0 ), /*    82 cali              */
   S_ST( 'r',	3,       84,     0 ), /*    83 calib             */
   S_ST( 'a',	3,       85,     0 ), /*    84 calibr            */
-  S_ST( 't',	3,      275,     0 ), /*    85 calibra           */
+  S_ST( 't',	3,      274,     0 ), /*    85 calibra           */
   S_ST( 'e',	3,       87,    79 ), /*    86 c                 */
   S_ST( 'i',	3,       88,     0 ), /*    87 ce                */
   S_ST( 'l',	3,       89,     0 ), /*    88 cei               */
   S_ST( 'i',	3,       90,     0 ), /*    89 ceil              */
-  S_ST( 'n',	3,      276,     0 ), /*    90 ceili             */
+  S_ST( 'n',	3,      275,     0 ), /*    90 ceili             */
   S_ST( 'h',	3,       92,    86 ), /*    91 c                 */
   S_ST( 'e',	3,       93,     0 ), /*    92 ch                */
   S_ST( 'c',	3,       94,     0 ), /*    93 che               */
   S_ST( 'k',	3,       95,     0 ), /*    94 chec              */
   S_ST( 'h',	3,       96,     0 ), /*    95 check             */
   S_ST( 'a',	3,       97,     0 ), /*    96 checkh            */
-  S_ST( 's',	3,      277,     0 ), /*    97 checkha           */
+  S_ST( 's',	3,      276,     0 ), /*    97 checkha           */
   S_ST( 'l',	3,       99,    91 ), /*    98 c                 */
   S_ST( 'o',	3,      100,     0 ), /*    99 cl                */
   S_ST( 'c',	3,      101,     0 ), /*   100 clo               */
@@ -331,382 +331,382 @@ const scan_state sst[988] = {
   S_ST( 's',	3,      103,     0 ), /*   102 clock             */
   S_ST( 't',	3,      104,     0 ), /*   103 clocks            */
   S_ST( 'a',	3,      105,     0 ), /*   104 clockst           */
-  S_ST( 't',	3,      278,     0 ), /*   105 clocksta          */
+  S_ST( 't',	3,      277,     0 ), /*   105 clocksta          */
   S_ST( 'o',	3,      110,    98 ), /*   106 c                 */
   S_ST( 'h',	3,      108,     0 ), /*   107 co                */
   S_ST( 'o',	3,      109,     0 ), /*   108 coh               */
-  S_ST( 'r',	3,      279,     0 ), /*   109 coho              */
+  S_ST( 'r',	3,      278,     0 ), /*   109 coho              */
   S_ST( 'n',	3,      111,   107 ), /*   110 co                */
   S_ST( 't',	3,      112,     0 ), /*   111 con               */
   S_ST( 'r',	3,      113,     0 ), /*   112 cont              */
   S_ST( 'o',	3,      114,     0 ), /*   113 contr             */
   S_ST( 'l',	3,      115,     0 ), /*   114 contro            */
   S_ST( 'k',	3,      116,     0 ), /*   115 control           */
-  S_ST( 'e',	3,      280,     0 ), /*   116 controlk          */
+  S_ST( 'e',	3,      279,     0 ), /*   116 controlk          */
   S_ST( 'r',	3,      118,   106 ), /*   117 c                 */
   S_ST( 'y',	3,      119,     0 ), /*   118 cr                */
   S_ST( 'p',	3,      120,     0 ), /*   119 cry               */
-  S_ST( 't',	3,      281,     0 ), /*   120 cryp              */
+  S_ST( 't',	3,      280,     0 ), /*   120 cryp              */
   S_ST( 's',	3,      122,     0 ), /*   121 crypto            */
   S_ST( 't',	3,      123,     0 ), /*   122 cryptos           */
   S_ST( 'a',	3,      124,     0 ), /*   123 cryptost          */
-  S_ST( 't',	3,      282,     0 ), /*   124 cryptosta         */
-  S_ST( 't',	3,      283,   117 ), /*   125 c                 */
+  S_ST( 't',	3,      281,     0 ), /*   124 cryptosta         */
+  S_ST( 't',	3,      282,   117 ), /*   125 c                 */
   S_ST( 'd',	3,      160,    78 ), /*   126                   */
-  S_ST( 'a',	3,      284,     0 ), /*   127 d                 */
+  S_ST( 'a',	3,      283,     0 ), /*   127 d                 */
   S_ST( 'e',	3,      129,   127 ), /*   128 d                 */
   S_ST( 'f',	3,      130,     0 ), /*   129 de                */
   S_ST( 'a',	3,      131,     0 ), /*   130 def               */
   S_ST( 'u',	3,      132,     0 ), /*   131 defa              */
-  S_ST( 'l',	3,      285,     0 ), /*   132 defau             */
+  S_ST( 'l',	3,      284,     0 ), /*   132 defau             */
   S_ST( 'i',	3,      137,   128 ), /*   133 d                 */
   S_ST( 'g',	3,      135,     0 ), /*   134 di                */
   S_ST( 'e',	3,      136,     0 ), /*   135 dig               */
-  S_ST( 's',	3,      286,     0 ), /*   136 dige              */
+  S_ST( 's',	3,      285,     0 ), /*   136 dige              */
   S_ST( 's',	3,      144,   134 ), /*   137 di                */
   S_ST( 'a',	3,      139,     0 ), /*   138 dis               */
   S_ST( 'b',	3,      140,     0 ), /*   139 disa              */
-  S_ST( 'l',	3,      287,     0 ), /*   140 disab             */
+  S_ST( 'l',	3,      286,     0 ), /*   140 disab             */
   S_ST( 'c',	3,      142,   138 ), /*   141 dis               */
   S_ST( 'a',	3,      143,     0 ), /*   142 disc              */
-  S_ST( 'r',	3,      288,     0 ), /*   143 disca             */
+  S_ST( 'r',	3,      287,     0 ), /*   143 disca             */
   S_ST( 'p',	3,      145,   141 ), /*   144 dis               */
   S_ST( 'e',	3,      146,     0 ), /*   145 disp              */
   S_ST( 'r',	3,      147,     0 ), /*   146 dispe             */
   S_ST( 's',	3,      148,     0 ), /*   147 disper            */
   S_ST( 'i',	3,      149,     0 ), /*   148 dispers           */
-  S_ST( 'o',	3,      289,     0 ), /*   149 dispersi          */
+  S_ST( 'o',	3,      288,     0 ), /*   149 dispersi          */
   S_ST( 'r',	3,      157,   133 ), /*   150 d                 */
   S_ST( 'i',	3,      152,     0 ), /*   151 dr                */
   S_ST( 'f',	3,      153,     0 ), /*   152 dri               */
   S_ST( 't',	3,      154,     0 ), /*   153 drif              */
   S_ST( 'f',	3,      155,     0 ), /*   154 drift             */
   S_ST( 'i',	3,      156,     0 ), /*   155 driftf            */
-  S_ST( 'l',	3,      291,     0 ), /*   156 driftfi           */
-  S_ST( 'o',	3,      292,   151 ), /*   157 dr                */
+  S_ST( 'l',	3,      290,     0 ), /*   156 driftfi           */
+  S_ST( 'o',	3,      291,   151 ), /*   157 dr                */
   S_ST( 's',	3,      159,   150 ), /*   158 d                 */
-  S_ST( 'c',	3,      293,     0 ), /*   159 ds                */
+  S_ST( 'c',	3,      292,     0 ), /*   159 ds                */
   S_ST( 'u',	3,      161,   158 ), /*   160 d                 */
   S_ST( 'r',	3,      162,     0 ), /*   161 du                */
   S_ST( 'a',	3,      163,     0 ), /*   162 dur               */
   S_ST( 't',	3,      164,     0 ), /*   163 dura              */
   S_ST( 'i',	3,      165,     0 ), /*   164 durat             */
-  S_ST( 'o',	3,      461,     0 ), /*   165 durati            */
+  S_ST( 'o',	3,      460,     0 ), /*   165 durati            */
   S_ST( 'e',	3,      171,   126 ), /*   166                   */
-  S_ST( 'n',	3,      296,     0 ), /*   167 e                 */
+  S_ST( 'n',	3,      295,     0 ), /*   167 e                 */
   S_ST( 'a',	3,      169,     0 ), /*   168 en                */
   S_ST( 'b',	3,      170,     0 ), /*   169 ena               */
-  S_ST( 'l',	3,      295,     0 ), /*   170 enab              */
+  S_ST( 'l',	3,      294,     0 ), /*   170 enab              */
   S_ST( 'p',	3,      172,   167 ), /*   171 e                 */
   S_ST( 'e',	3,      173,     0 ), /*   172 ep                */
-  S_ST( 'e',	3,      297,     0 ), /*   173 epe               */
+  S_ST( 'e',	3,      296,     0 ), /*   173 epe               */
   S_ST( 'f',	3,      195,   166 ), /*   174                   */
   S_ST( 'i',	3,      176,     0 ), /*   175 f                 */
-  S_ST( 'l',	3,      299,     0 ), /*   176 fi                */
+  S_ST( 'l',	3,      298,     0 ), /*   176 fi                */
   S_ST( 'g',	3,      178,     0 ), /*   177 file              */
-  S_ST( 'e',	3,      300,     0 ), /*   178 fileg             */
+  S_ST( 'e',	3,      299,     0 ), /*   178 fileg             */
   S_ST( 'n',	3,      180,   177 ), /*   179 file              */
-  S_ST( 'u',	3,      301,     0 ), /*   180 filen             */
+  S_ST( 'u',	3,      300,     0 ), /*   180 filen             */
   S_ST( 'l',	3,      185,   175 ), /*   181 f                 */
   S_ST( 'a',	3,      184,     0 ), /*   182 fl                */
-  S_ST( 'g',	3,      305,     0 ), /*   183 fla               */
-  S_ST( 'k',	3,      306,   183 ), /*   184 fla               */
+  S_ST( 'g',	3,      304,     0 ), /*   183 fla               */
+  S_ST( 'k',	3,      305,   183 ), /*   184 fla               */
   S_ST( 'o',	3,      186,   182 ), /*   185 fl                */
-  S_ST( 'o',	3,      307,     0 ), /*   186 flo               */
+  S_ST( 'o',	3,      306,     0 ), /*   186 flo               */
   S_ST( 'r',	3,      188,   181 ), /*   187 f                 */
-  S_ST( 'e',	3,      308,     0 ), /*   188 fr                */
+  S_ST( 'e',	3,      307,     0 ), /*   188 fr                */
   S_ST( '_',	3,      190,     0 ), /*   189 freq              */
   S_ST( 'o',	3,      191,     0 ), /*   190 freq_             */
   S_ST( 'f',	3,      192,     0 ), /*   191 freq_o            */
   S_ST( 'f',	3,      193,     0 ), /*   192 freq_of           */
   S_ST( 's',	3,      194,     0 ), /*   193 freq_off          */
-  S_ST( 'e',	3,      462,     0 ), /*   194 freq_offs         */
+  S_ST( 'e',	3,      461,     0 ), /*   194 freq_offs         */
   S_ST( 'u',	3,      198,   187 ), /*   195 f                 */
   S_ST( 'd',	3,      197,     0 ), /*   196 fu                */
-  S_ST( 'g',	3,      309,     0 ), /*   197 fud               */
-  S_ST( 'z',	3,      310,   196 ), /*   198 fu                */
+  S_ST( 'g',	3,      308,     0 ), /*   197 fud               */
+  S_ST( 'z',	3,      309,   196 ), /*   198 fu                */
   S_ST( 'h',	3,      202,   174 ), /*   199                   */
   S_ST( 'o',	3,      201,     0 ), /*   200 h                 */
-  S_ST( 's',	3,      311,     0 ), /*   201 ho                */
+  S_ST( 's',	3,      310,     0 ), /*   201 ho                */
   S_ST( 'u',	3,      203,   200 ), /*   202 h                 */
   S_ST( 'f',	3,      204,     0 ), /*   203 hu                */
   S_ST( 'f',	3,      205,     0 ), /*   204 huf               */
   S_ST( 'p',	3,      206,     0 ), /*   205 huff              */
   S_ST( 'u',	3,      207,     0 ), /*   206 huffp             */
-  S_ST( 'f',	3,      312,     0 ), /*   207 huffpu            */
+  S_ST( 'f',	3,      311,     0 ), /*   207 huffpu            */
   S_ST( 'i',	3,      252,   199 ), /*   208                   */
   S_ST( 'b',	3,      210,     0 ), /*   209 i                 */
   S_ST( 'u',	3,      211,     0 ), /*   210 ib                */
   S_ST( 'r',	3,      212,     0 ), /*   211 ibu               */
-  S_ST( 's',	3,      313,     0 ), /*   212 ibur              */
+  S_ST( 's',	3,      312,     0 ), /*   212 ibur              */
   S_ST( 'd',	3,      214,   209 ), /*   213 i                 */
   S_ST( 'e',	3,      215,     0 ), /*   214 id                */
-  S_ST( 'n',	3,      314,     0 ), /*   215 ide               */
+  S_ST( 'n',	3,      313,     0 ), /*   215 ide               */
   S_ST( 'g',	3,      217,   213 ), /*   216 i                 */
   S_ST( 'n',	3,      218,     0 ), /*   217 ig                */
   S_ST( 'o',	3,      219,     0 ), /*   218 ign               */
-  S_ST( 'r',	3,      315,     0 ), /*   219 igno              */
+  S_ST( 'r',	3,      314,     0 ), /*   219 igno              */
   S_ST( 'h',	3,      221,     0 ), /*   220 ignore            */
   S_ST( 'a',	3,      222,     0 ), /*   221 ignoreh           */
-  S_ST( 's',	3,      316,     0 ), /*   222 ignoreha          */
+  S_ST( 's',	3,      315,     0 ), /*   222 ignoreha          */
   S_ST( 'n',	3,      246,   216 ), /*   223 i                 */
   S_ST( 'c',	3,      236,     0 ), /*   224 in                */
   S_ST( 'a',	3,      226,     0 ), /*   225 inc               */
   S_ST( 'l',	3,      227,     0 ), /*   226 inca              */
   S_ST( 'l',	3,      228,     0 ), /*   227 incal             */
-  S_ST( 'o',	3,      317,     0 ), /*   228 incall            */
+  S_ST( 'o',	3,      316,     0 ), /*   228 incall            */
   S_ST( 'l',	3,      230,   225 ), /*   229 inc               */
   S_ST( 'u',	3,      231,     0 ), /*   230 incl              */
   S_ST( 'd',	3,      232,     0 ), /*   231 inclu             */
   S_ST( 'e',	3,      233,     0 ), /*   232 includ            */
   S_ST( 'f',	3,      234,     0 ), /*   233 include           */
   S_ST( 'i',	3,      235,     0 ), /*   234 includef          */
-  S_ST( 'l',	3,      321,     0 ), /*   235 includefi         */
+  S_ST( 'l',	3,      320,     0 ), /*   235 includefi         */
   S_ST( 'm',	3,      237,   229 ), /*   236 inc               */
-  S_ST( 'e',	3,      318,     0 ), /*   237 incm              */
+  S_ST( 'e',	3,      317,     0 ), /*   237 incm              */
   S_ST( 'i',	3,      239,   224 ), /*   238 in                */
   S_ST( 't',	3,      244,     0 ), /*   239 ini               */
   S_ST( 'a',	3,      241,     0 ), /*   240 init              */
   S_ST( 'l',	3,      242,     0 ), /*   241 inita             */
   S_ST( 'l',	3,      243,     0 ), /*   242 inital            */
-  S_ST( 'o',	3,      319,     0 ), /*   243 initall           */
+  S_ST( 'o',	3,      318,     0 ), /*   243 initall           */
   S_ST( 'm',	3,      245,   240 ), /*   244 init              */
-  S_ST( 'e',	3,      320,     0 ), /*   245 initm             */
+  S_ST( 'e',	3,      319,     0 ), /*   245 initm             */
   S_ST( 't',	3,      247,   238 ), /*   246 in                */
   S_ST( 'e',	3,      248,     0 ), /*   247 int               */
   S_ST( 'r',	3,      249,     0 ), /*   248 inte              */
   S_ST( 'f',	3,      250,     0 ), /*   249 inter             */
   S_ST( 'a',	3,      251,     0 ), /*   250 interf            */
-  S_ST( 'c',	3,      323,     0 ), /*   251 interfa           */
-  S_ST( 'p',	3,      324,   325 ), /*   252 i                 */
+  S_ST( 'c',	3,      322,     0 ), /*   251 interfa           */
+  S_ST( 'p',	3,      414,   324 ), /*   252 i                 */
   S_ST( 'p',	3,      254,     0 ), /*   253 ip                */
   S_ST( 'e',	3,      255,     0 ), /*   254 ipp               */
   S_ST( 'e',	3,      256,     0 ), /*   255 ippe              */
-  S_ST( 'r',	3,      257,     0 ), /*   256 ippee             */
-  S_ST( 'l',	3,      290,     0 ), /*   257 ippeer            */
-  S_ST( 'v',	1,        0,     0 ), /*   258 T_Abbrev          */
-  S_ST( 'e',	0,        0,     0 ), /*   259 T_Age             */
-  S_ST( 'l',	0,       12,     0 ), /*   260 T_All             */
-  S_ST( 'n',	0,        0,     0 ), /*   261 T_Allan           */
-  S_ST( 's',	0,        0,     0 ), /*   262 T_Allpeers        */
-  S_ST( 'h',	0,        0,     0 ), /*   263 T_Auth            */
-  S_ST( 'y',	0,        0,     0 ), /*   264 T_Autokey         */
-  S_ST( 'x',	0,        0,     0 ), /*   265 T_Automax         */
-  S_ST( 'e',	0,        0,     0 ), /*   266 T_Average         */
-  S_ST( 'e',	1,        0,     0 ), /*   267 T_Basedate        */
-  S_ST( 't',	0,        0,     0 ), /*   268 T_Bclient         */
-  S_ST( 'p',	0,        0,     0 ), /*   269 T_Bcpollbstep     */
-  S_ST( 'n',	0,        0,     0 ), /*   270 T_Beacon          */
-  S_ST( 't',	1,       71,     0 ), /*   271 T_Broadcast       */
-  S_ST( 't',	0,        0,     0 ), /*   272 T_Broadcastclient */
-  S_ST( 'y',	0,        0,     0 ), /*   273 T_Broadcastdelay  */
-  S_ST( 't',	0,        0,     0 ), /*   274 T_Burst           */
-  S_ST( 'e',	0,        0,     0 ), /*   275 T_Calibrate       */
-  S_ST( 'g',	0,        0,     0 ), /*   276 T_Ceiling         */
-  S_ST( 'h',	0,        0,     0 ), /*   277 T_Checkhash       */
-  S_ST( 's',	0,        0,     0 ), /*   278 T_Clockstats      */
-  S_ST( 't',	0,        0,     0 ), /*   279 T_Cohort          */
-  S_ST( 'y',	0,        0,     0 ), /*   280 T_ControlKey      */
-  S_ST( 'o',	0,      121,     0 ), /*   281 T_Crypto          */
-  S_ST( 's',	0,        0,     0 ), /*   282 T_Cryptostats     */
-  S_ST( 'l',	0,        0,     0 ), /*   283 T_Ctl             */
-  S_ST( 'y',	0,        0,     0 ), /*   284 T_Day             */
-  S_ST( 't',	0,        0,     0 ), /*   285 T_Default         */
-  S_ST( 't',	1,        0,     0 ), /*   286 T_Digest          */
-  S_ST( 'e',	0,        0,     0 ), /*   287 T_Disable         */
-  S_ST( 'd',	0,        0,     0 ), /*   288 T_Discard         */
-  S_ST( 'n',	0,        0,     0 ), /*   289 T_Dispersion      */
-  S_ST( 'i',	3,      298,     0 ), /*   290 ippeerl           */
-  S_ST( 'e',	1,        0,     0 ), /*   291 T_Driftfile       */
-  S_ST( 'p',	0,        0,     0 ), /*   292 T_Drop            */
-  S_ST( 'p',	0,        0,     0 ), /*   293 T_Dscp            */
-  S_ST( '.',	0,        0,     0 ), /*   294 T_Ellipsis        */
-  S_ST( 'e',	0,        0,     0 ), /*   295 T_Enable          */
-  S_ST( 'd',	0,        0,   168 ), /*   296 T_End             */
-  S_ST( 'r',	0,        0,     0 ), /*   297 T_Epeer           */
-  S_ST( 'm',	3,      322,     0 ), /*   298 ippeerli          */
-  S_ST( 'e',	1,      179,     0 ), /*   299 T_File            */
-  S_ST( 'n',	0,        0,     0 ), /*   300 T_Filegen         */
-  S_ST( 'm',	0,        0,     0 ), /*   301 T_Filenum         */
-  S_ST( '1',	0,        0,     0 ), /*   302 T_Flag1           */
-  S_ST( '2',	0,        0,   302 ), /*   303 T_Flag2           */
-  S_ST( '3',	0,        0,   303 ), /*   304 T_Flag3           */
-  S_ST( '4',	0,        0,   304 ), /*   305 T_Flag4           */
-  S_ST( 'e',	0,        0,     0 ), /*   306 T_Flake           */
-  S_ST( 'r',	0,        0,     0 ), /*   307 T_Floor           */
-  S_ST( 'q',	0,      189,     0 ), /*   308 T_Freq            */
-  S_ST( 'e',	1,        0,     0 ), /*   309 T_Fudge           */
-  S_ST( 'z',	0,        0,     0 ), /*   310 T_Fuzz            */
-  S_ST( 't',	1,        0,     0 ), /*   311 T_Host            */
-  S_ST( 'f',	0,        0,     0 ), /*   312 T_Huffpuff        */
-  S_ST( 't',	0,        0,     0 ), /*   313 T_Iburst          */
-  S_ST( 't',	1,        0,     0 ), /*   314 T_Ident           */
-  S_ST( 'e',	0,      220,     0 ), /*   315 T_Ignore          */
-  S_ST( 'h',	0,        0,     0 ), /*   316 T_Ignorehash      */
-  S_ST( 'c',	0,        0,     0 ), /*   317 T_Incalloc        */
-  S_ST( 'm',	0,        0,     0 ), /*   318 T_Incmem          */
-  S_ST( 'c',	0,        0,     0 ), /*   319 T_Initalloc       */
-  S_ST( 'm',	0,        0,     0 ), /*   320 T_Initmem         */
-  S_ST( 'e',	1,        0,     0 ), /*   321 T_Includefile     */
-  S_ST( 'i',	3,      326,     0 ), /*   322 ippeerlim         */
-  S_ST( 'e',	0,        0,     0 ), /*   323 T_Interface       */
-  S_ST( 'v',	3,      329,   253 ), /*   324 ip                */
-  S_ST( 'o',	0,        0,   223 ), /*   325 T_Io              */
-  S_ST( 't',	0,        0,     0 ), /*   326 T_Ippeerlimit     */
-  S_ST( '4',	0,        0,     0 ), /*   327 T_Ipv4            */
-  S_ST( '4',	0,        0,     0 ), /*   328 T_Ipv4_flag       */
-  S_ST( '6',	0,        0,   327 ), /*   329 T_Ipv6            */
-  S_ST( '6',	0,        0,   328 ), /*   330 T_Ipv6_flag       */
-  S_ST( 'l',	0,        0,     0 ), /*   331 T_Kernel          */
-  S_ST( 'y',	0,      333,   468 ), /*   332 T_Key             */
-  S_ST( 's',	1,      471,     0 ), /*   333 T_Keys            */
-  S_ST( 'r',	1,        0,     0 ), /*   334 T_Keysdir         */
-  S_ST( 'd',	0,        0,     0 ), /*   335 T_Kod             */
-  S_ST( 'e',	1,        0,     0 ), /*   336 T_Leapfile        */
-  S_ST( 'l',	0,        0,     0 ), /*   337 T_Leapsmearinterval */
-  S_ST( 'd',	0,        0,     0 ), /*   338 T_Limited         */
-  S_ST( 'k',	0,        0,     0 ), /*   339 T_Link            */
-  S_ST( 'n',	0,        0,     0 ), /*   340 T_Listen          */
-  S_ST( 'g',	2,        0,     0 ), /*   341 T_Logconfig       */
-  S_ST( 'e',	1,        0,     0 ), /*   342 T_Logfile         */
-  S_ST( 's',	0,        0,     0 ), /*   343 T_Loopstats       */
-  S_ST( 'p',	0,        0,     0 ), /*   344 T_Lowpriotrap     */
-  S_ST( 't',	1,        0,     0 ), /*   345 T_Manycastclient  */
-  S_ST( 'r',	2,        0,     0 ), /*   346 T_Manycastserver  */
-  S_ST( 'k',	0,        0,     0 ), /*   347 T_Mask            */
-  S_ST( 'e',	0,        0,     0 ), /*   348 T_Maxage          */
-  S_ST( 'k',	0,        0,     0 ), /*   349 T_Maxclock        */
-  S_ST( 'h',	0,        0,     0 ), /*   350 T_Maxdepth        */
-  S_ST( 't',	0,        0,     0 ), /*   351 T_Maxdist         */
-  S_ST( 'm',	0,        0,     0 ), /*   352 T_Maxmem          */
-  S_ST( 'l',	0,        0,     0 ), /*   353 T_Maxpoll         */
-  S_ST( 's',	0,        0,     0 ), /*   354 T_Mdnstries       */
-  S_ST( 'm',	0,      571,     0 ), /*   355 T_Mem             */
-  S_ST( 'k',	0,        0,     0 ), /*   356 T_Memlock         */
-  S_ST( 'k',	0,        0,     0 ), /*   357 T_Minclock        */
-  S_ST( 'h',	0,        0,     0 ), /*   358 T_Mindepth        */
-  S_ST( 't',	0,        0,     0 ), /*   359 T_Mindist         */
-  S_ST( 'm',	0,        0,     0 ), /*   360 T_Minimum         */
-  S_ST( 'r',	0,        0,     0 ), /*   361 T_Minjitter       */
-  S_ST( 'l',	0,        0,     0 ), /*   362 T_Minpoll         */
-  S_ST( 'e',	0,        0,     0 ), /*   363 T_Minsane         */
-  S_ST( 'e',	0,      365,     0 ), /*   364 T_Mode            */
-  S_ST( '7',	0,        0,     0 ), /*   365 T_Mode7           */
-  S_ST( 'r',	0,        0,     0 ), /*   366 T_Monitor         */
-  S_ST( 'h',	0,        0,     0 ), /*   367 T_Month           */
-  S_ST( 'u',	0,        0,     0 ), /*   368 T_Mru             */
-  S_ST( 'p',	0,        0,     0 ), /*   369 T_Mssntp          */
-  S_ST( 't',	2,        0,     0 ), /*   370 T_Multicastclient */
-  S_ST( 'c',	0,        0,     0 ), /*   371 T_Nic             */
-  S_ST( 'k',	0,        0,     0 ), /*   372 T_Nolink          */
-  S_ST( 'y',	0,        0,     0 ), /*   373 T_Nomodify        */
-  S_ST( 't',	0,        0,     0 ), /*   374 T_Nomrulist       */
-  S_ST( 'e',	0,        0,     0 ), /*   375 T_None            */
-  S_ST( 'e',	0,        0,     0 ), /*   376 T_Nonvolatile     */
-  S_ST( 'r',	0,        0,     0 ), /*   377 T_Noepeer         */
-  S_ST( 'r',	0,        0,     0 ), /*   378 T_Nopeer          */
-  S_ST( 'y',	0,        0,     0 ), /*   379 T_Noquery         */
-  S_ST( 't',	0,        0,     0 ), /*   380 T_Noselect        */
-  S_ST( 'e',	0,        0,     0 ), /*   381 T_Noserve         */
-  S_ST( 'p',	0,        0,     0 ), /*   382 T_Notrap          */
-  S_ST( 't',	0,        0,     0 ), /*   383 T_Notrust         */
-  S_ST( 'p',	0,      676,     0 ), /*   384 T_Ntp             */
-  S_ST( 't',	0,        0,     0 ), /*   385 T_Ntpport         */
-  S_ST( 't',	1,        0,     0 ), /*   386 T_NtpSignDsocket  */
-  S_ST( 'n',	0,      691,     0 ), /*   387 T_Orphan          */
-  S_ST( 't',	0,        0,     0 ), /*   388 T_Orphanwait      */
-  S_ST( 'y',	0,        0,     0 ), /*   389 T_PCEdigest       */
-  S_ST( 'c',	0,        0,     0 ), /*   390 T_Panic           */
-  S_ST( 'r',	1,      718,     0 ), /*   391 T_Peer            */
-  S_ST( 's',	0,        0,     0 ), /*   392 T_Peerstats       */
-  S_ST( 'e',	2,        0,     0 ), /*   393 T_Phone           */
-  S_ST( 'd',	0,      726,     0 ), /*   394 T_Pid             */
-  S_ST( 'e',	1,        0,     0 ), /*   395 T_Pidfile         */
-  S_ST( 'l',	0,      731,     0 ), /*   396 T_Poll            */
-  S_ST( 't',	0,        0,     0 ), /*   397 T_PollSkewList    */
-  S_ST( 'l',	1,        0,     0 ), /*   398 T_Pool            */
-  S_ST( 't',	0,        0,     0 ), /*   399 T_Port            */
-  S_ST( 't',	0,        0,     0 ), /*   400 T_Preempt         */
-  S_ST( 'r',	0,        0,     0 ), /*   401 T_Prefer          */
-  S_ST( 's',	0,        0,     0 ), /*   402 T_Protostats      */
-  S_ST( 'w',	1,        0,   740 ), /*   403 T_Pw              */
-  S_ST( 'e',	1,        0,     0 ), /*   404 T_Randfile        */
-  S_ST( 's',	0,        0,     0 ), /*   405 T_Rawstats        */
-  S_ST( 'd',	1,        0,     0 ), /*   406 T_Refid           */
-  S_ST( 'y',	0,        0,     0 ), /*   407 T_Requestkey      */
-  S_ST( 't',	0,        0,     0 ), /*   408 T_Reset           */
-  S_ST( 't',	0,        0,     0 ), /*   409 T_Restrict        */
-  S_ST( 'e',	0,        0,     0 ), /*   410 T_Revoke          */
-  S_ST( 't',	0,        0,     0 ), /*   411 T_Rlimit          */
-  S_ST( 'r',	1,        0,     0 ), /*   412 T_Saveconfigdir   */
-  S_ST( 'r',	1,      823,     0 ), /*   413 T_Server          */
-  S_ST( 'e',	0,        0,     0 ), /*   414 T_Serverresponse  */
-  S_ST( 'j',	3,      427,   208 ), /*   415                   */
-  S_ST( 'r',	1,        0,     0 ), /*   416 T_Setvar          */
-  S_ST( 'e',	0,        0,     0 ), /*   417 T_Source          */
-  S_ST( 'e',	0,        0,     0 ), /*   418 T_Stacksize       */
-  S_ST( 's',	0,        0,     0 ), /*   419 T_Statistics      */
-  S_ST( 's',	0,      867,   862 ), /*   420 T_Stats           */
-  S_ST( 'r',	1,        0,     0 ), /*   421 T_Statsdir        */
-  S_ST( 'p',	0,      875,     0 ), /*   422 T_Step            */
-  S_ST( 'k',	0,        0,     0 ), /*   423 T_Stepback        */
-  S_ST( 'd',	0,        0,     0 ), /*   424 T_Stepfwd         */
-  S_ST( 't',	0,        0,     0 ), /*   425 T_Stepout         */
-  S_ST( 'm',	0,        0,     0 ), /*   426 T_Stratum         */
-  S_ST( 'i',	3,      442,     0 ), /*   427 j                 */
-  S_ST( 's',	0,      882,     0 ), /*   428 T_Sys             */
-  S_ST( 's',	0,        0,     0 ), /*   429 T_Sysstats        */
-  S_ST( 'k',	0,        0,     0 ), /*   430 T_Tick            */
-  S_ST( '1',	0,        0,     0 ), /*   431 T_Time1           */
-  S_ST( '2',	0,        0,   431 ), /*   432 T_Time2           */
-  S_ST( 'r',	0,        0,   432 ), /*   433 T_Timer           */
-  S_ST( 's',	0,        0,     0 ), /*   434 T_Timingstats     */
-  S_ST( 'r',	0,        0,     0 ), /*   435 T_Tinker          */
-  S_ST( 's',	0,        0,     0 ), /*   436 T_Tos             */
-  S_ST( 'p',	1,        0,     0 ), /*   437 T_Trap            */
-  S_ST( 'e',	0,        0,     0 ), /*   438 T_True            */
-  S_ST( 'y',	0,        0,     0 ), /*   439 T_Trustedkey      */
-  S_ST( 'l',	0,        0,     0 ), /*   440 T_Ttl             */
-  S_ST( 'e',	0,        0,     0 ), /*   441 T_Type            */
-  S_ST( 't',	3,      449,     0 ), /*   442 ji                */
-  S_ST( 'y',	0,        0,     0 ), /*   443 T_UEcrypto        */
-  S_ST( 'y',	0,        0,     0 ), /*   444 T_UEcryptonak     */
-  S_ST( 'y',	0,        0,     0 ), /*   445 T_UEdigest        */
-  S_ST( 'g',	1,        0,     0 ), /*   446 T_Unconfig        */
-  S_ST( 'r',	1,      924,     0 ), /*   447 T_Unpeer          */
-  S_ST( 'n',	0,        0,     0 ), /*   448 T_Version         */
-  S_ST( 't',	3,      455,     0 ), /*   449 jit               */
-  S_ST( 'k',	0,        0,     0 ), /*   450 T_Week            */
-  S_ST( 'd',	0,        0,     0 ), /*   451 T_Wildcard        */
-  S_ST( 'e',	0,        0,     0 ), /*   452 T_Xleave          */
-  S_ST( 'e',	0,        0,     0 ), /*   453 T_Xmtnonce        */
-  S_ST( 'r',	0,        0,     0 ), /*   454 T_Year            */
-  S_ST( 'e',	3,      464,     0 ), /*   455 jitt              */
-  S_ST( 'k',	3,      473,   415 ), /*   456                   */
-  S_ST( 'e',	0,        0,     0 ), /*   457 T_Simulate        */
-  S_ST( 'y',	0,        0,     0 ), /*   458 T_Beep_Delay      */
-  S_ST( 'n',	0,        0,     0 ), /*   459 T_Sim_Duration    */
-  S_ST( 't',	0,        0,     0 ), /*   460 T_Server_Offset   */
-  S_ST( 'n',	0,        0,     0 ), /*   461 T_Duration        */
-  S_ST( 't',	0,        0,     0 ), /*   462 T_Freq_Offset     */
-  S_ST( 'r',	0,        0,     0 ), /*   463 T_Wander          */
-  S_ST( 'r',	0,        0,     0 ), /*   464 T_Jitter          */
-  S_ST( 'y',	0,        0,     0 ), /*   465 T_Prop_Delay      */
-  S_ST( 'y',	0,        0,     0 ), /*   466 T_Proc_Delay      */
-  S_ST( 'e',	3,      332,     0 ), /*   467 k                 */
+  S_ST( 'r',	3,      289,     0 ), /*   256 ippee             */
+  S_ST( 'v',	1,        0,     0 ), /*   257 257               */
+  S_ST( 'e',	0,        0,     0 ), /*   258 258               */
+  S_ST( 'l',	0,       12,     0 ), /*   259 259               */
+  S_ST( 'n',	0,        0,     0 ), /*   260 260               */
+  S_ST( 's',	0,        0,     0 ), /*   261 261               */
+  S_ST( 'h',	0,        0,     0 ), /*   262 262               */
+  S_ST( 'y',	0,        0,     0 ), /*   263 263               */
+  S_ST( 'x',	0,        0,     0 ), /*   264 264               */
+  S_ST( 'e',	0,        0,     0 ), /*   265 265               */
+  S_ST( 'e',	1,        0,     0 ), /*   266 266               */
+  S_ST( 't',	0,        0,     0 ), /*   267 267               */
+  S_ST( 'p',	0,        0,     0 ), /*   268 268               */
+  S_ST( 'n',	0,        0,     0 ), /*   269 269               */
+  S_ST( 't',	1,       71,     0 ), /*   270 270               */
+  S_ST( 't',	0,        0,     0 ), /*   271 271               */
+  S_ST( 'y',	0,        0,     0 ), /*   272 272               */
+  S_ST( 't',	0,        0,     0 ), /*   273 273               */
+  S_ST( 'e',	0,        0,     0 ), /*   274 274               */
+  S_ST( 'g',	0,        0,     0 ), /*   275 275               */
+  S_ST( 'h',	0,        0,     0 ), /*   276 276               */
+  S_ST( 's',	0,        0,     0 ), /*   277 277               */
+  S_ST( 't',	0,        0,     0 ), /*   278 278               */
+  S_ST( 'y',	0,        0,     0 ), /*   279 279               */
+  S_ST( 'o',	0,      121,     0 ), /*   280 280               */
+  S_ST( 's',	0,        0,     0 ), /*   281 281               */
+  S_ST( 'l',	0,        0,     0 ), /*   282 282               */
+  S_ST( 'y',	0,        0,     0 ), /*   283 283               */
+  S_ST( 't',	0,        0,     0 ), /*   284 284               */
+  S_ST( 't',	1,        0,     0 ), /*   285 285               */
+  S_ST( 'e',	0,        0,     0 ), /*   286 286               */
+  S_ST( 'd',	0,        0,     0 ), /*   287 287               */
+  S_ST( 'n',	0,        0,     0 ), /*   288 288               */
+  S_ST( 'l',	3,      297,     0 ), /*   289 ippeer            */
+  S_ST( 'e',	1,        0,     0 ), /*   290 290               */
+  S_ST( 'p',	0,        0,     0 ), /*   291 291               */
+  S_ST( 'p',	0,        0,     0 ), /*   292 292               */
+  S_ST( '.',	0,        0,     0 ), /*   293 293               */
+  S_ST( 'e',	0,        0,     0 ), /*   294 294               */
+  S_ST( 'd',	0,        0,   168 ), /*   295 295               */
+  S_ST( 'r',	0,        0,     0 ), /*   296 296               */
+  S_ST( 'i',	3,      321,     0 ), /*   297 ippeerl           */
+  S_ST( 'e',	1,      179,     0 ), /*   298 298               */
+  S_ST( 'n',	0,        0,     0 ), /*   299 299               */
+  S_ST( 'm',	0,        0,     0 ), /*   300 300               */
+  S_ST( '1',	0,        0,     0 ), /*   301 301               */
+  S_ST( '2',	0,        0,   301 ), /*   302 302               */
+  S_ST( '3',	0,        0,   302 ), /*   303 303               */
+  S_ST( '4',	0,        0,   303 ), /*   304 304               */
+  S_ST( 'e',	0,        0,     0 ), /*   305 305               */
+  S_ST( 'r',	0,        0,     0 ), /*   306 306               */
+  S_ST( 'q',	0,      189,     0 ), /*   307 307               */
+  S_ST( 'e',	1,        0,     0 ), /*   308 308               */
+  S_ST( 'z',	0,        0,     0 ), /*   309 309               */
+  S_ST( 't',	1,        0,     0 ), /*   310 310               */
+  S_ST( 'f',	0,        0,     0 ), /*   311 311               */
+  S_ST( 't',	0,        0,     0 ), /*   312 312               */
+  S_ST( 't',	1,        0,     0 ), /*   313 313               */
+  S_ST( 'e',	0,      220,     0 ), /*   314 314               */
+  S_ST( 'h',	0,        0,     0 ), /*   315 315               */
+  S_ST( 'c',	0,        0,     0 ), /*   316 316               */
+  S_ST( 'm',	0,        0,     0 ), /*   317 317               */
+  S_ST( 'c',	0,        0,     0 ), /*   318 318               */
+  S_ST( 'm',	0,        0,     0 ), /*   319 319               */
+  S_ST( 'e',	1,        0,     0 ), /*   320 320               */
+  S_ST( 'm',	3,      323,     0 ), /*   321 ippeerli          */
+  S_ST( 'e',	0,        0,     0 ), /*   322 322               */
+  S_ST( 'i',	3,      325,     0 ), /*   323 ippeerlim         */
+  S_ST( 'o',	0,        0,   223 ), /*   324 324               */
+  S_ST( 't',	0,        0,     0 ), /*   325 325               */
+  S_ST( '4',	0,        0,     0 ), /*   326 326               */
+  S_ST( '4',	0,        0,     0 ), /*   327 327               */
+  S_ST( '6',	0,        0,   326 ), /*   328 328               */
+  S_ST( '6',	0,        0,   327 ), /*   329 329               */
+  S_ST( 'l',	0,        0,     0 ), /*   330 330               */
+  S_ST( 'y',	0,      332,   468 ), /*   331 331               */
+  S_ST( 's',	1,      471,     0 ), /*   332 332               */
+  S_ST( 'r',	1,        0,     0 ), /*   333 333               */
+  S_ST( 'd',	0,        0,     0 ), /*   334 334               */
+  S_ST( 'e',	1,        0,     0 ), /*   335 335               */
+  S_ST( 'l',	0,        0,     0 ), /*   336 336               */
+  S_ST( 'd',	0,        0,     0 ), /*   337 337               */
+  S_ST( 'k',	0,        0,     0 ), /*   338 338               */
+  S_ST( 'n',	0,        0,     0 ), /*   339 339               */
+  S_ST( 'g',	2,        0,     0 ), /*   340 340               */
+  S_ST( 'e',	1,        0,     0 ), /*   341 341               */
+  S_ST( 's',	0,        0,     0 ), /*   342 342               */
+  S_ST( 'p',	0,        0,     0 ), /*   343 343               */
+  S_ST( 't',	1,        0,     0 ), /*   344 344               */
+  S_ST( 'r',	2,        0,     0 ), /*   345 345               */
+  S_ST( 'k',	0,        0,     0 ), /*   346 346               */
+  S_ST( 'e',	0,        0,     0 ), /*   347 347               */
+  S_ST( 'k',	0,        0,     0 ), /*   348 348               */
+  S_ST( 'h',	0,        0,     0 ), /*   349 349               */
+  S_ST( 't',	0,        0,     0 ), /*   350 350               */
+  S_ST( 'm',	0,        0,     0 ), /*   351 351               */
+  S_ST( 'l',	0,        0,     0 ), /*   352 352               */
+  S_ST( 's',	0,        0,     0 ), /*   353 353               */
+  S_ST( 'm',	0,      571,     0 ), /*   354 354               */
+  S_ST( 'k',	0,        0,     0 ), /*   355 355               */
+  S_ST( 'k',	0,        0,     0 ), /*   356 356               */
+  S_ST( 'h',	0,        0,     0 ), /*   357 357               */
+  S_ST( 't',	0,        0,     0 ), /*   358 358               */
+  S_ST( 'm',	0,        0,     0 ), /*   359 359               */
+  S_ST( 'r',	0,        0,     0 ), /*   360 360               */
+  S_ST( 'l',	0,        0,     0 ), /*   361 361               */
+  S_ST( 'e',	0,        0,     0 ), /*   362 362               */
+  S_ST( 'e',	0,      364,     0 ), /*   363 363               */
+  S_ST( '7',	0,        0,     0 ), /*   364 364               */
+  S_ST( 'r',	0,        0,     0 ), /*   365 365               */
+  S_ST( 'h',	0,        0,     0 ), /*   366 366               */
+  S_ST( 'u',	0,        0,     0 ), /*   367 367               */
+  S_ST( 'p',	0,        0,     0 ), /*   368 368               */
+  S_ST( 't',	2,        0,     0 ), /*   369 369               */
+  S_ST( 'c',	0,        0,     0 ), /*   370 370               */
+  S_ST( 'k',	0,        0,     0 ), /*   371 371               */
+  S_ST( 'y',	0,        0,     0 ), /*   372 372               */
+  S_ST( 't',	0,        0,     0 ), /*   373 373               */
+  S_ST( 'e',	0,        0,     0 ), /*   374 374               */
+  S_ST( 'e',	0,        0,     0 ), /*   375 375               */
+  S_ST( 'r',	0,        0,     0 ), /*   376 376               */
+  S_ST( 'r',	0,        0,     0 ), /*   377 377               */
+  S_ST( 'y',	0,        0,     0 ), /*   378 378               */
+  S_ST( 't',	0,        0,     0 ), /*   379 379               */
+  S_ST( 'e',	0,        0,     0 ), /*   380 380               */
+  S_ST( 'p',	0,        0,     0 ), /*   381 381               */
+  S_ST( 't',	0,        0,     0 ), /*   382 382               */
+  S_ST( 'p',	0,      676,     0 ), /*   383 383               */
+  S_ST( 't',	0,        0,     0 ), /*   384 384               */
+  S_ST( 't',	1,        0,     0 ), /*   385 385               */
+  S_ST( 'n',	0,      691,     0 ), /*   386 386               */
+  S_ST( 't',	0,        0,     0 ), /*   387 387               */
+  S_ST( 'y',	0,        0,     0 ), /*   388 388               */
+  S_ST( 'c',	0,        0,     0 ), /*   389 389               */
+  S_ST( 'r',	1,      718,     0 ), /*   390 390               */
+  S_ST( 's',	0,        0,     0 ), /*   391 391               */
+  S_ST( 'e',	2,        0,     0 ), /*   392 392               */
+  S_ST( 'd',	0,      726,     0 ), /*   393 393               */
+  S_ST( 'e',	1,        0,     0 ), /*   394 394               */
+  S_ST( 'l',	0,      731,     0 ), /*   395 395               */
+  S_ST( 't',	0,        0,     0 ), /*   396 396               */
+  S_ST( 'l',	1,        0,     0 ), /*   397 397               */
+  S_ST( 't',	0,        0,     0 ), /*   398 398               */
+  S_ST( 't',	0,        0,     0 ), /*   399 399               */
+  S_ST( 'r',	0,        0,     0 ), /*   400 400               */
+  S_ST( 's',	0,        0,     0 ), /*   401 401               */
+  S_ST( 'w',	1,        0,   740 ), /*   402 402               */
+  S_ST( 'e',	1,        0,     0 ), /*   403 403               */
+  S_ST( 's',	0,        0,     0 ), /*   404 404               */
+  S_ST( 'd',	1,        0,     0 ), /*   405 405               */
+  S_ST( 'y',	0,        0,     0 ), /*   406 406               */
+  S_ST( 't',	0,        0,     0 ), /*   407 407               */
+  S_ST( 't',	0,        0,     0 ), /*   408 408               */
+  S_ST( 'e',	0,        0,     0 ), /*   409 409               */
+  S_ST( 't',	0,        0,     0 ), /*   410 410               */
+  S_ST( 'r',	1,        0,     0 ), /*   411 411               */
+  S_ST( 'r',	1,      823,     0 ), /*   412 412               */
+  S_ST( 'e',	0,        0,     0 ), /*   413 413               */
+  S_ST( 'v',	3,      328,   253 ), /*   414 ip                */
+  S_ST( 'r',	1,        0,     0 ), /*   415 415               */
+  S_ST( 'e',	0,        0,     0 ), /*   416 416               */
+  S_ST( 'e',	0,        0,     0 ), /*   417 417               */
+  S_ST( 's',	0,        0,     0 ), /*   418 418               */
+  S_ST( 's',	0,      867,   862 ), /*   419 419               */
+  S_ST( 'r',	1,        0,     0 ), /*   420 420               */
+  S_ST( 'p',	0,      875,     0 ), /*   421 421               */
+  S_ST( 'k',	0,        0,     0 ), /*   422 422               */
+  S_ST( 'd',	0,        0,     0 ), /*   423 423               */
+  S_ST( 't',	0,        0,     0 ), /*   424 424               */
+  S_ST( 'm',	0,        0,     0 ), /*   425 425               */
+  S_ST( 'j',	3,      441,   208 ), /*   426                   */
+  S_ST( 's',	0,      882,     0 ), /*   427 427               */
+  S_ST( 's',	0,        0,     0 ), /*   428 428               */
+  S_ST( 'k',	0,        0,     0 ), /*   429 429               */
+  S_ST( '1',	0,        0,     0 ), /*   430 430               */
+  S_ST( '2',	0,        0,   430 ), /*   431 431               */
+  S_ST( 'r',	0,        0,   431 ), /*   432 432               */
+  S_ST( 's',	0,        0,     0 ), /*   433 433               */
+  S_ST( 'r',	0,        0,     0 ), /*   434 434               */
+  S_ST( 's',	0,        0,     0 ), /*   435 435               */
+  S_ST( 'p',	1,        0,     0 ), /*   436 436               */
+  S_ST( 'e',	0,        0,     0 ), /*   437 437               */
+  S_ST( 'y',	0,        0,     0 ), /*   438 438               */
+  S_ST( 'l',	0,        0,     0 ), /*   439 439               */
+  S_ST( 'e',	0,        0,     0 ), /*   440 440               */
+  S_ST( 'i',	3,      448,     0 ), /*   441 j                 */
+  S_ST( 'y',	0,        0,     0 ), /*   442 442               */
+  S_ST( 'y',	0,        0,     0 ), /*   443 443               */
+  S_ST( 'y',	0,        0,     0 ), /*   444 444               */
+  S_ST( 'g',	1,        0,     0 ), /*   445 445               */
+  S_ST( 'r',	1,      924,     0 ), /*   446 446               */
+  S_ST( 'n',	0,        0,     0 ), /*   447 447               */
+  S_ST( 't',	3,      454,     0 ), /*   448 ji                */
+  S_ST( 'k',	0,        0,     0 ), /*   449 449               */
+  S_ST( 'd',	0,        0,     0 ), /*   450 450               */
+  S_ST( 'e',	0,        0,     0 ), /*   451 451               */
+  S_ST( 'e',	0,        0,     0 ), /*   452 452               */
+  S_ST( 'r',	0,        0,     0 ), /*   453 453               */
+  S_ST( 't',	3,      455,     0 ), /*   454 jit               */
+  S_ST( 'e',	3,      463,     0 ), /*   455 jitt              */
+  S_ST( 'e',	0,        0,     0 ), /*   456 456               */
+  S_ST( 'y',	0,        0,     0 ), /*   457 457               */
+  S_ST( 'n',	0,        0,     0 ), /*   458 458               */
+  S_ST( 't',	0,        0,     0 ), /*   459 459               */
+  S_ST( 'n',	0,        0,     0 ), /*   460 460               */
+  S_ST( 't',	0,        0,     0 ), /*   461 461               */
+  S_ST( 'r',	0,        0,     0 ), /*   462 462               */
+  S_ST( 'r',	0,        0,     0 ), /*   463 463               */
+  S_ST( 'y',	0,        0,     0 ), /*   464 464               */
+  S_ST( 'y',	0,        0,     0 ), /*   465 465               */
+  S_ST( 'k',	3,      473,   426 ), /*   466                   */
+  S_ST( 'e',	3,      331,     0 ), /*   467 k                 */
   S_ST( 'r',	3,      469,     0 ), /*   468 ke                */
   S_ST( 'n',	3,      470,     0 ), /*   469 ker               */
-  S_ST( 'e',	3,      331,     0 ), /*   470 kern              */
+  S_ST( 'e',	3,      330,     0 ), /*   470 kern              */
   S_ST( 'd',	3,      472,     0 ), /*   471 keys              */
-  S_ST( 'i',	3,      334,     0 ), /*   472 keysd             */
-  S_ST( 'o',	3,      335,   467 ), /*   473 k                 */
-  S_ST( 'l',	3,      502,   456 ), /*   474                   */
+  S_ST( 'i',	3,      333,     0 ), /*   472 keysd             */
+  S_ST( 'o',	3,      334,   467 ), /*   473 k                 */
+  S_ST( 'l',	3,      502,   466 ), /*   474                   */
   S_ST( 'e',	3,      476,     0 ), /*   475 l                 */
   S_ST( 'a',	3,      477,     0 ), /*   476 le                */
   S_ST( 'p',	3,      481,     0 ), /*   477 lea               */
   S_ST( 'f',	3,      479,     0 ), /*   478 leap              */
   S_ST( 'i',	3,      480,     0 ), /*   479 leapf             */
-  S_ST( 'l',	3,      336,     0 ), /*   480 leapfi            */
+  S_ST( 'l',	3,      335,     0 ), /*   480 leapfi            */
   S_ST( 's',	3,      482,   478 ), /*   481 leap              */
   S_ST( 'm',	3,      483,     0 ), /*   482 leaps             */
   S_ST( 'e',	3,      484,     0 ), /*   483 leapsm            */
@@ -718,32 +718,32 @@ const scan_state sst[988] = {
   S_ST( 'e',	3,      490,     0 ), /*   489 leapsmearint      */
   S_ST( 'r',	3,      491,     0 ), /*   490 leapsmearinte     */
   S_ST( 'v',	3,      492,     0 ), /*   491 leapsmearinter    */
-  S_ST( 'a',	3,      337,     0 ), /*   492 leapsmearinterv   */
+  S_ST( 'a',	3,      336,     0 ), /*   492 leapsmearinterv   */
   S_ST( 'i',	3,      499,   475 ), /*   493 l                 */
   S_ST( 'm',	3,      495,     0 ), /*   494 li                */
   S_ST( 'i',	3,      496,     0 ), /*   495 lim               */
   S_ST( 't',	3,      497,     0 ), /*   496 limi              */
-  S_ST( 'e',	3,      338,     0 ), /*   497 limit             */
-  S_ST( 'n',	3,      339,   494 ), /*   498 li                */
+  S_ST( 'e',	3,      337,     0 ), /*   497 limit             */
+  S_ST( 'n',	3,      338,   494 ), /*   498 li                */
   S_ST( 's',	3,      500,   498 ), /*   499 li                */
   S_ST( 't',	3,      501,     0 ), /*   500 lis               */
-  S_ST( 'e',	3,      340,     0 ), /*   501 list              */
+  S_ST( 'e',	3,      339,     0 ), /*   501 list              */
   S_ST( 'o',	3,      518,   493 ), /*   502 l                 */
   S_ST( 'g',	3,      509,     0 ), /*   503 lo                */
   S_ST( 'c',	3,      505,     0 ), /*   504 log               */
   S_ST( 'o',	3,      506,     0 ), /*   505 logc              */
   S_ST( 'n',	3,      507,     0 ), /*   506 logco             */
   S_ST( 'f',	3,      508,     0 ), /*   507 logcon            */
-  S_ST( 'i',	3,      341,     0 ), /*   508 logconf           */
+  S_ST( 'i',	3,      340,     0 ), /*   508 logconf           */
   S_ST( 'f',	3,      510,   504 ), /*   509 log               */
   S_ST( 'i',	3,      511,     0 ), /*   510 logf              */
-  S_ST( 'l',	3,      342,     0 ), /*   511 logfi             */
+  S_ST( 'l',	3,      341,     0 ), /*   511 logfi             */
   S_ST( 'o',	3,      513,   503 ), /*   512 lo                */
   S_ST( 'p',	3,      514,     0 ), /*   513 loo               */
   S_ST( 's',	3,      515,     0 ), /*   514 loop              */
   S_ST( 't',	3,      516,     0 ), /*   515 loops             */
   S_ST( 'a',	3,      517,     0 ), /*   516 loopst            */
-  S_ST( 't',	3,      343,     0 ), /*   517 loopsta           */
+  S_ST( 't',	3,      342,     0 ), /*   517 loopsta           */
   S_ST( 'w',	3,      519,   512 ), /*   518 lo                */
   S_ST( 'p',	3,      520,     0 ), /*   519 low               */
   S_ST( 'r',	3,      521,     0 ), /*   520 lowp              */
@@ -751,7 +751,7 @@ const scan_state sst[988] = {
   S_ST( 'o',	3,      523,     0 ), /*   522 lowpri            */
   S_ST( 't',	3,      524,     0 ), /*   523 lowprio           */
   S_ST( 'r',	3,      525,     0 ), /*   524 lowpriot          */
-  S_ST( 'a',	3,      344,     0 ), /*   525 lowpriotr         */
+  S_ST( 'a',	3,      343,     0 ), /*   525 lowpriotr         */
   S_ST( 'm',	3,      612,   474 ), /*   526                   */
   S_ST( 'a',	3,      545,     0 ), /*   527 m                 */
   S_ST( 'n',	3,      529,     0 ), /*   528 ma                */
@@ -764,80 +764,80 @@ const scan_state sst[988] = {
   S_ST( 'l',	3,      536,     0 ), /*   535 manycastc         */
   S_ST( 'i',	3,      537,     0 ), /*   536 manycastcl        */
   S_ST( 'e',	3,      538,     0 ), /*   537 manycastcli       */
-  S_ST( 'n',	3,      345,     0 ), /*   538 manycastclie      */
+  S_ST( 'n',	3,      344,     0 ), /*   538 manycastclie      */
   S_ST( 's',	3,      540,   534 ), /*   539 manycast          */
   S_ST( 'e',	3,      541,     0 ), /*   540 manycasts         */
   S_ST( 'r',	3,      542,     0 ), /*   541 manycastse        */
   S_ST( 'v',	3,      543,     0 ), /*   542 manycastser       */
-  S_ST( 'e',	3,      346,     0 ), /*   543 manycastserv      */
-  S_ST( 's',	3,      347,   528 ), /*   544 ma                */
+  S_ST( 'e',	3,      345,     0 ), /*   543 manycastserv      */
+  S_ST( 's',	3,      346,   528 ), /*   544 ma                */
   S_ST( 'x',	3,      560,   544 ), /*   545 ma                */
   S_ST( 'a',	3,      547,     0 ), /*   546 max               */
-  S_ST( 'g',	3,      348,     0 ), /*   547 maxa              */
+  S_ST( 'g',	3,      347,     0 ), /*   547 maxa              */
   S_ST( 'c',	3,      549,   546 ), /*   548 max               */
   S_ST( 'l',	3,      550,     0 ), /*   549 maxc              */
   S_ST( 'o',	3,      551,     0 ), /*   550 maxcl             */
-  S_ST( 'c',	3,      349,     0 ), /*   551 maxclo            */
+  S_ST( 'c',	3,      348,     0 ), /*   551 maxclo            */
   S_ST( 'd',	3,      556,   548 ), /*   552 max               */
   S_ST( 'e',	3,      554,     0 ), /*   553 maxd              */
   S_ST( 'p',	3,      555,     0 ), /*   554 maxde             */
-  S_ST( 't',	3,      350,     0 ), /*   555 maxdep            */
+  S_ST( 't',	3,      349,     0 ), /*   555 maxdep            */
   S_ST( 'i',	3,      557,   553 ), /*   556 maxd              */
-  S_ST( 's',	3,      351,     0 ), /*   557 maxdi             */
+  S_ST( 's',	3,      350,     0 ), /*   557 maxdi             */
   S_ST( 'm',	3,      559,   552 ), /*   558 max               */
-  S_ST( 'e',	3,      352,     0 ), /*   559 maxm              */
+  S_ST( 'e',	3,      351,     0 ), /*   559 maxm              */
   S_ST( 'p',	3,      561,   558 ), /*   560 max               */
   S_ST( 'o',	3,      562,     0 ), /*   561 maxp              */
-  S_ST( 'l',	3,      353,     0 ), /*   562 maxpo             */
+  S_ST( 'l',	3,      352,     0 ), /*   562 maxpo             */
   S_ST( 'd',	3,      564,   527 ), /*   563 m                 */
   S_ST( 'n',	3,      565,     0 ), /*   564 md                */
   S_ST( 's',	3,      566,     0 ), /*   565 mdn               */
   S_ST( 't',	3,      567,     0 ), /*   566 mdns              */
   S_ST( 'r',	3,      568,     0 ), /*   567 mdnst             */
   S_ST( 'i',	3,      569,     0 ), /*   568 mdnstr            */
-  S_ST( 'e',	3,      354,     0 ), /*   569 mdnstri           */
-  S_ST( 'e',	3,      355,   563 ), /*   570 m                 */
+  S_ST( 'e',	3,      353,     0 ), /*   569 mdnstri           */
+  S_ST( 'e',	3,      354,   563 ), /*   570 m                 */
   S_ST( 'l',	3,      572,     0 ), /*   571 mem               */
   S_ST( 'o',	3,      573,     0 ), /*   572 meml              */
-  S_ST( 'c',	3,      356,     0 ), /*   573 memlo             */
+  S_ST( 'c',	3,      355,     0 ), /*   573 memlo             */
   S_ST( 'i',	3,      575,   570 ), /*   574 m                 */
   S_ST( 'n',	3,      597,     0 ), /*   575 mi                */
   S_ST( 'c',	3,      577,     0 ), /*   576 min               */
   S_ST( 'l',	3,      578,     0 ), /*   577 minc              */
   S_ST( 'o',	3,      579,     0 ), /*   578 mincl             */
-  S_ST( 'c',	3,      357,     0 ), /*   579 minclo            */
+  S_ST( 'c',	3,      356,     0 ), /*   579 minclo            */
   S_ST( 'd',	3,      584,   576 ), /*   580 min               */
   S_ST( 'e',	3,      582,     0 ), /*   581 mind              */
   S_ST( 'p',	3,      583,     0 ), /*   582 minde             */
-  S_ST( 't',	3,      358,     0 ), /*   583 mindep            */
+  S_ST( 't',	3,      357,     0 ), /*   583 mindep            */
   S_ST( 'i',	3,      585,   581 ), /*   584 mind              */
-  S_ST( 's',	3,      359,     0 ), /*   585 mindi             */
+  S_ST( 's',	3,      358,     0 ), /*   585 mindi             */
   S_ST( 'i',	3,      587,   580 ), /*   586 min               */
   S_ST( 'm',	3,      588,     0 ), /*   587 mini              */
-  S_ST( 'u',	3,      360,     0 ), /*   588 minim             */
+  S_ST( 'u',	3,      359,     0 ), /*   588 minim             */
   S_ST( 'j',	3,      590,   586 ), /*   589 min               */
   S_ST( 'i',	3,      591,     0 ), /*   590 minj              */
   S_ST( 't',	3,      592,     0 ), /*   591 minji             */
   S_ST( 't',	3,      593,     0 ), /*   592 minjit            */
-  S_ST( 'e',	3,      361,     0 ), /*   593 minjitt           */
+  S_ST( 'e',	3,      360,     0 ), /*   593 minjitt           */
   S_ST( 'p',	3,      595,   589 ), /*   594 min               */
   S_ST( 'o',	3,      596,     0 ), /*   595 minp              */
-  S_ST( 'l',	3,      362,     0 ), /*   596 minpo             */
+  S_ST( 'l',	3,      361,     0 ), /*   596 minpo             */
   S_ST( 's',	3,      598,   594 ), /*   597 min               */
   S_ST( 'a',	3,      599,     0 ), /*   598 mins              */
-  S_ST( 'n',	3,      363,     0 ), /*   599 minsa             */
+  S_ST( 'n',	3,      362,     0 ), /*   599 minsa             */
   S_ST( 'o',	3,      602,   574 ), /*   600 m                 */
-  S_ST( 'd',	3,      364,     0 ), /*   601 mo                */
+  S_ST( 'd',	3,      363,     0 ), /*   601 mo                */
   S_ST( 'n',	3,      606,   601 ), /*   602 mo                */
   S_ST( 'i',	3,      604,     0 ), /*   603 mon               */
   S_ST( 't',	3,      605,     0 ), /*   604 moni              */
-  S_ST( 'o',	3,      366,     0 ), /*   605 monit             */
-  S_ST( 't',	3,      367,   603 ), /*   606 mon               */
-  S_ST( 'r',	3,      368,   600 ), /*   607 m                 */
+  S_ST( 'o',	3,      365,     0 ), /*   605 monit             */
+  S_ST( 't',	3,      366,   603 ), /*   606 mon               */
+  S_ST( 'r',	3,      367,   600 ), /*   607 m                 */
   S_ST( 's',	3,      609,   607 ), /*   608 m                 */
   S_ST( 's',	3,      610,     0 ), /*   609 ms                */
   S_ST( 'n',	3,      611,     0 ), /*   610 mss               */
-  S_ST( 't',	3,      369,     0 ), /*   611 mssn              */
+  S_ST( 't',	3,      368,     0 ), /*   611 mssn              */
   S_ST( 'u',	3,      613,   608 ), /*   612 m                 */
   S_ST( 'l',	3,      614,     0 ), /*   613 mu                */
   S_ST( 't',	3,      615,     0 ), /*   614 mul               */
@@ -850,58 +850,58 @@ const scan_state sst[988] = {
   S_ST( 'l',	3,      622,     0 ), /*   621 multicastc        */
   S_ST( 'i',	3,      623,     0 ), /*   622 multicastcl       */
   S_ST( 'e',	3,      624,     0 ), /*   623 multicastcli      */
-  S_ST( 'n',	3,      370,     0 ), /*   624 multicastclie     */
+  S_ST( 'n',	3,      369,     0 ), /*   624 multicastclie     */
   S_ST( 'n',	3,      672,   526 ), /*   625                   */
-  S_ST( 'i',	3,      371,     0 ), /*   626 n                 */
+  S_ST( 'i',	3,      370,     0 ), /*   626 n                 */
   S_ST( 'o',	3,      667,   626 ), /*   627 n                 */
   S_ST( 'e',	3,      629,     0 ), /*   628 no                */
   S_ST( 'p',	3,      630,     0 ), /*   629 noe               */
   S_ST( 'e',	3,      631,     0 ), /*   630 noep              */
-  S_ST( 'e',	3,      377,     0 ), /*   631 noepe             */
+  S_ST( 'e',	3,      376,     0 ), /*   631 noepe             */
   S_ST( 'l',	3,      633,   628 ), /*   632 no                */
   S_ST( 'i',	3,      634,     0 ), /*   633 nol               */
-  S_ST( 'n',	3,      372,     0 ), /*   634 noli              */
+  S_ST( 'n',	3,      371,     0 ), /*   634 noli              */
   S_ST( 'm',	3,      640,   632 ), /*   635 no                */
   S_ST( 'o',	3,      637,     0 ), /*   636 nom               */
   S_ST( 'd',	3,      638,     0 ), /*   637 nomo              */
   S_ST( 'i',	3,      639,     0 ), /*   638 nomod             */
-  S_ST( 'f',	3,      373,     0 ), /*   639 nomodi            */
+  S_ST( 'f',	3,      372,     0 ), /*   639 nomodi            */
   S_ST( 'r',	3,      641,   636 ), /*   640 nom               */
   S_ST( 'u',	3,      642,     0 ), /*   641 nomr              */
   S_ST( 'l',	3,      643,     0 ), /*   642 nomru             */
   S_ST( 'i',	3,      644,     0 ), /*   643 nomrul            */
-  S_ST( 's',	3,      374,     0 ), /*   644 nomruli           */
+  S_ST( 's',	3,      373,     0 ), /*   644 nomruli           */
   S_ST( 'n',	3,      646,   635 ), /*   645 no                */
-  S_ST( 'v',	3,      647,   375 ), /*   646 non               */
+  S_ST( 'v',	3,      647,   374 ), /*   646 non               */
   S_ST( 'o',	3,      648,     0 ), /*   647 nonv              */
   S_ST( 'l',	3,      649,     0 ), /*   648 nonvo             */
   S_ST( 'a',	3,      650,     0 ), /*   649 nonvol            */
   S_ST( 't',	3,      651,     0 ), /*   650 nonvola           */
   S_ST( 'i',	3,      652,     0 ), /*   651 nonvolat          */
-  S_ST( 'l',	3,      376,     0 ), /*   652 nonvolati         */
+  S_ST( 'l',	3,      375,     0 ), /*   652 nonvolati         */
   S_ST( 'p',	3,      654,   645 ), /*   653 no                */
   S_ST( 'e',	3,      655,     0 ), /*   654 nop               */
-  S_ST( 'e',	3,      378,     0 ), /*   655 nope              */
+  S_ST( 'e',	3,      377,     0 ), /*   655 nope              */
   S_ST( 'q',	3,      657,   653 ), /*   656 no                */
   S_ST( 'u',	3,      658,     0 ), /*   657 noq               */
   S_ST( 'e',	3,      659,     0 ), /*   658 noqu              */
-  S_ST( 'r',	3,      379,     0 ), /*   659 noque             */
+  S_ST( 'r',	3,      378,     0 ), /*   659 noque             */
   S_ST( 's',	3,      661,   656 ), /*   660 no                */
   S_ST( 'e',	3,      665,     0 ), /*   661 nos               */
   S_ST( 'l',	3,      663,     0 ), /*   662 nose              */
   S_ST( 'e',	3,      664,     0 ), /*   663 nosel             */
-  S_ST( 'c',	3,      380,     0 ), /*   664 nosele            */
+  S_ST( 'c',	3,      379,     0 ), /*   664 nosele            */
   S_ST( 'r',	3,      666,   662 ), /*   665 nose              */
-  S_ST( 'v',	3,      381,     0 ), /*   666 noser             */
+  S_ST( 'v',	3,      380,     0 ), /*   666 noser             */
   S_ST( 't',	3,      668,   660 ), /*   667 no                */
   S_ST( 'r',	3,      670,     0 ), /*   668 not               */
-  S_ST( 'a',	3,      382,     0 ), /*   669 notr              */
+  S_ST( 'a',	3,      381,     0 ), /*   669 notr              */
   S_ST( 'u',	3,      671,   669 ), /*   670 notr              */
-  S_ST( 's',	3,      383,     0 ), /*   671 notru             */
-  S_ST( 't',	3,      384,   627 ), /*   672 n                 */
+  S_ST( 's',	3,      382,     0 ), /*   671 notru             */
+  S_ST( 't',	3,      383,   627 ), /*   672 n                 */
   S_ST( 'p',	3,      674,     0 ), /*   673 ntp               */
   S_ST( 'o',	3,      675,     0 ), /*   674 ntpp              */
-  S_ST( 'r',	3,      385,     0 ), /*   675 ntppo             */
+  S_ST( 'r',	3,      384,     0 ), /*   675 ntppo             */
   S_ST( 's',	3,      677,   673 ), /*   676 ntp               */
   S_ST( 'i',	3,      678,     0 ), /*   677 ntps              */
   S_ST( 'g',	3,      679,     0 ), /*   678 ntpsi             */
@@ -911,21 +911,21 @@ const scan_state sst[988] = {
   S_ST( 'o',	3,      683,     0 ), /*   682 ntpsignds         */
   S_ST( 'c',	3,      684,     0 ), /*   683 ntpsigndso        */
   S_ST( 'k',	3,      685,     0 ), /*   684 ntpsigndsoc       */
-  S_ST( 'e',	3,      386,     0 ), /*   685 ntpsigndsock      */
+  S_ST( 'e',	3,      385,     0 ), /*   685 ntpsigndsock      */
   S_ST( 'o',	3,      687,   625 ), /*   686                   */
   S_ST( 'r',	3,      688,     0 ), /*   687 o                 */
   S_ST( 'p',	3,      689,     0 ), /*   688 or                */
   S_ST( 'h',	3,      690,     0 ), /*   689 orp               */
-  S_ST( 'a',	3,      387,     0 ), /*   690 orph              */
+  S_ST( 'a',	3,      386,     0 ), /*   690 orph              */
   S_ST( 'w',	3,      692,     0 ), /*   691 orphan            */
   S_ST( 'a',	3,      693,     0 ), /*   692 orphanw           */
-  S_ST( 'i',	3,      388,     0 ), /*   693 orphanwa          */
-  S_ST( 'p',	3,      403,   686 ), /*   694                   */
+  S_ST( 'i',	3,      387,     0 ), /*   693 orphanwa          */
+  S_ST( 'p',	3,      402,   686 ), /*   694                   */
   S_ST( 'a',	3,      696,     0 ), /*   695 p                 */
   S_ST( 'n',	3,      697,     0 ), /*   696 pa                */
-  S_ST( 'i',	3,      390,     0 ), /*   697 pan               */
+  S_ST( 'i',	3,      389,     0 ), /*   697 pan               */
   S_ST( 'e',	3,      699,   695 ), /*   698 p                 */
-  S_ST( 'e',	3,      391,     0 ), /*   699 pe                */
+  S_ST( 'e',	3,      390,     0 ), /*   699 pe                */
   S_ST( '_',	3,      701,     0 ), /*   700 peer              */
   S_ST( 'c',	3,      702,     0 ), /*   701 peer_             */
   S_ST( 'l',	3,      703,     0 ), /*   702 peer_c            */
@@ -943,90 +943,90 @@ const scan_state sst[988] = {
   S_ST( 'e',	3,      715,     0 ), /*   714 peer_clear_digest_ */
   S_ST( 'a',	3,      716,     0 ), /*   715 peer_clear_digest_e */
   S_ST( 'r',	3,      717,     0 ), /*   716 peer_clear_digest_ea */
-  S_ST( 'l',	3,      389,     0 ), /*   717 peer_clear_digest_ear */
+  S_ST( 'l',	3,      388,     0 ), /*   717 peer_clear_digest_ear */
   S_ST( 's',	3,      719,   700 ), /*   718 peer              */
   S_ST( 't',	3,      720,     0 ), /*   719 peers             */
   S_ST( 'a',	3,      721,     0 ), /*   720 peerst            */
-  S_ST( 't',	3,      392,     0 ), /*   721 peersta           */
+  S_ST( 't',	3,      391,     0 ), /*   721 peersta           */
   S_ST( 'h',	3,      723,   698 ), /*   722 p                 */
   S_ST( 'o',	3,      724,     0 ), /*   723 ph                */
-  S_ST( 'n',	3,      393,     0 ), /*   724 pho               */
-  S_ST( 'i',	3,      394,   722 ), /*   725 p                 */
+  S_ST( 'n',	3,      392,     0 ), /*   724 pho               */
+  S_ST( 'i',	3,      393,   722 ), /*   725 p                 */
   S_ST( 'f',	3,      727,     0 ), /*   726 pid               */
   S_ST( 'i',	3,      728,     0 ), /*   727 pidf              */
-  S_ST( 'l',	3,      395,     0 ), /*   728 pidfi             */
+  S_ST( 'l',	3,      394,     0 ), /*   728 pidfi             */
   S_ST( 'o',	3,      739,   725 ), /*   729 p                 */
-  S_ST( 'l',	3,      396,     0 ), /*   730 po                */
+  S_ST( 'l',	3,      395,     0 ), /*   730 po                */
   S_ST( 's',	3,      732,     0 ), /*   731 poll              */
   S_ST( 'k',	3,      733,     0 ), /*   732 polls             */
   S_ST( 'e',	3,      734,     0 ), /*   733 pollsk            */
   S_ST( 'w',	3,      735,     0 ), /*   734 pollske           */
   S_ST( 'l',	3,      736,     0 ), /*   735 pollskew          */
   S_ST( 'i',	3,      737,     0 ), /*   736 pollskewl         */
-  S_ST( 's',	3,      397,     0 ), /*   737 pollskewli        */
-  S_ST( 'o',	3,      398,   730 ), /*   738 po                */
-  S_ST( 'r',	3,      399,   738 ), /*   739 po                */
+  S_ST( 's',	3,      396,     0 ), /*   737 pollskewli        */
+  S_ST( 'o',	3,      397,   730 ), /*   738 po                */
+  S_ST( 'r',	3,      398,   738 ), /*   739 po                */
   S_ST( 'r',	3,      747,   729 ), /*   740 p                 */
   S_ST( 'e',	3,      745,     0 ), /*   741 pr                */
   S_ST( 'e',	3,      743,     0 ), /*   742 pre               */
   S_ST( 'm',	3,      744,     0 ), /*   743 pree              */
-  S_ST( 'p',	3,      400,     0 ), /*   744 preem             */
+  S_ST( 'p',	3,      399,     0 ), /*   744 preem             */
   S_ST( 'f',	3,      746,   742 ), /*   745 pre               */
-  S_ST( 'e',	3,      401,     0 ), /*   746 pref              */
+  S_ST( 'e',	3,      400,     0 ), /*   746 pref              */
   S_ST( 'o',	3,      760,   741 ), /*   747 pr                */
   S_ST( 'c',	3,      749,     0 ), /*   748 pro               */
   S_ST( '_',	3,      750,     0 ), /*   749 proc              */
   S_ST( 'd',	3,      751,     0 ), /*   750 proc_             */
   S_ST( 'e',	3,      752,     0 ), /*   751 proc_d            */
   S_ST( 'l',	3,      753,     0 ), /*   752 proc_de           */
-  S_ST( 'a',	3,      466,     0 ), /*   753 proc_del          */
+  S_ST( 'a',	3,      465,     0 ), /*   753 proc_del          */
   S_ST( 'p',	3,      755,   748 ), /*   754 pro               */
   S_ST( '_',	3,      756,     0 ), /*   755 prop              */
   S_ST( 'd',	3,      757,     0 ), /*   756 prop_             */
   S_ST( 'e',	3,      758,     0 ), /*   757 prop_d            */
   S_ST( 'l',	3,      759,     0 ), /*   758 prop_de           */
-  S_ST( 'a',	3,      465,     0 ), /*   759 prop_del          */
+  S_ST( 'a',	3,      464,     0 ), /*   759 prop_del          */
   S_ST( 't',	3,      761,   754 ), /*   760 pro               */
   S_ST( 'o',	3,      762,     0 ), /*   761 prot              */
   S_ST( 's',	3,      763,     0 ), /*   762 proto             */
   S_ST( 't',	3,      764,     0 ), /*   763 protos            */
   S_ST( 'a',	3,      765,     0 ), /*   764 protost           */
-  S_ST( 't',	3,      402,     0 ), /*   765 protosta          */
+  S_ST( 't',	3,      401,     0 ), /*   765 protosta          */
   S_ST( 'r',	3,      797,   694 ), /*   766                   */
   S_ST( 'a',	3,      773,     0 ), /*   767 r                 */
   S_ST( 'n',	3,      769,     0 ), /*   768 ra                */
   S_ST( 'd',	3,      770,     0 ), /*   769 ran               */
   S_ST( 'f',	3,      771,     0 ), /*   770 rand              */
   S_ST( 'i',	3,      772,     0 ), /*   771 randf             */
-  S_ST( 'l',	3,      404,     0 ), /*   772 randfi            */
+  S_ST( 'l',	3,      403,     0 ), /*   772 randfi            */
   S_ST( 'w',	3,      774,   768 ), /*   773 ra                */
   S_ST( 's',	3,      775,     0 ), /*   774 raw               */
   S_ST( 't',	3,      776,     0 ), /*   775 raws              */
   S_ST( 'a',	3,      777,     0 ), /*   776 rawst             */
-  S_ST( 't',	3,      405,     0 ), /*   777 rawsta            */
+  S_ST( 't',	3,      404,     0 ), /*   777 rawsta            */
   S_ST( 'e',	3,      794,   767 ), /*   778 r                 */
   S_ST( 'f',	3,      780,     0 ), /*   779 re                */
-  S_ST( 'i',	3,      406,     0 ), /*   780 ref               */
+  S_ST( 'i',	3,      405,     0 ), /*   780 ref               */
   S_ST( 'q',	3,      782,   779 ), /*   781 re                */
   S_ST( 'u',	3,      783,     0 ), /*   782 req               */
   S_ST( 'e',	3,      784,     0 ), /*   783 requ              */
   S_ST( 's',	3,      785,     0 ), /*   784 reque             */
   S_ST( 't',	3,      786,     0 ), /*   785 reques            */
   S_ST( 'k',	3,      787,     0 ), /*   786 request           */
-  S_ST( 'e',	3,      407,     0 ), /*   787 requestk          */
+  S_ST( 'e',	3,      406,     0 ), /*   787 requestk          */
   S_ST( 's',	3,      790,   781 ), /*   788 re                */
-  S_ST( 'e',	3,      408,     0 ), /*   789 res               */
+  S_ST( 'e',	3,      407,     0 ), /*   789 res               */
   S_ST( 't',	3,      791,   789 ), /*   790 res               */
   S_ST( 'r',	3,      792,     0 ), /*   791 rest              */
   S_ST( 'i',	3,      793,     0 ), /*   792 restr             */
-  S_ST( 'c',	3,      409,     0 ), /*   793 restri            */
+  S_ST( 'c',	3,      408,     0 ), /*   793 restri            */
   S_ST( 'v',	3,      795,   788 ), /*   794 re                */
   S_ST( 'o',	3,      796,     0 ), /*   795 rev               */
-  S_ST( 'k',	3,      410,     0 ), /*   796 revo              */
+  S_ST( 'k',	3,      409,     0 ), /*   796 revo              */
   S_ST( 'l',	3,      798,   778 ), /*   797 r                 */
   S_ST( 'i',	3,      799,     0 ), /*   798 rl                */
   S_ST( 'm',	3,      800,     0 ), /*   799 rli               */
-  S_ST( 'i',	3,      411,     0 ), /*   800 rlim              */
+  S_ST( 'i',	3,      410,     0 ), /*   800 rlim              */
   S_ST( 's',	3,      881,   766 ), /*   801                   */
   S_ST( 'a',	3,      803,     0 ), /*   802 s                 */
   S_ST( 'v',	3,      804,     0 ), /*   803 sa                */
@@ -1038,34 +1038,34 @@ const scan_state sst[988] = {
   S_ST( 'i',	3,      810,     0 ), /*   809 saveconf          */
   S_ST( 'g',	3,      811,     0 ), /*   810 saveconfi         */
   S_ST( 'd',	3,      812,     0 ), /*   811 saveconfig        */
-  S_ST( 'i',	3,      412,     0 ), /*   812 saveconfigd       */
+  S_ST( 'i',	3,      411,     0 ), /*   812 saveconfigd       */
   S_ST( 'e',	3,      830,   802 ), /*   813 s                 */
   S_ST( 'r',	3,      815,     0 ), /*   814 se                */
   S_ST( 'v',	3,      816,     0 ), /*   815 ser               */
-  S_ST( 'e',	3,      413,     0 ), /*   816 serv              */
+  S_ST( 'e',	3,      412,     0 ), /*   816 serv              */
   S_ST( '_',	3,      818,     0 ), /*   817 server            */
   S_ST( 'o',	3,      819,     0 ), /*   818 server_           */
   S_ST( 'f',	3,      820,     0 ), /*   819 server_o          */
   S_ST( 'f',	3,      821,     0 ), /*   820 server_of         */
   S_ST( 's',	3,      822,     0 ), /*   821 server_off        */
-  S_ST( 'e',	3,      460,     0 ), /*   822 server_offs       */
+  S_ST( 'e',	3,      459,     0 ), /*   822 server_offs       */
   S_ST( 'r',	3,      824,   817 ), /*   823 server            */
   S_ST( 'e',	3,      825,     0 ), /*   824 serverr           */
   S_ST( 's',	3,      826,     0 ), /*   825 serverre          */
   S_ST( 'p',	3,      827,     0 ), /*   826 serverres         */
   S_ST( 'o',	3,      828,     0 ), /*   827 serverresp        */
   S_ST( 'n',	3,      829,     0 ), /*   828 serverrespo       */
-  S_ST( 's',	3,      414,     0 ), /*   829 serverrespon      */
+  S_ST( 's',	3,      413,     0 ), /*   829 serverrespon      */
   S_ST( 't',	3,      831,   814 ), /*   830 se                */
   S_ST( 'v',	3,      832,     0 ), /*   831 set               */
-  S_ST( 'a',	3,      416,     0 ), /*   832 setv              */
+  S_ST( 'a',	3,      415,     0 ), /*   832 setv              */
   S_ST( 'i',	3,      834,   813 ), /*   833 s                 */
   S_ST( 'm',	3,      835,     0 ), /*   834 si                */
   S_ST( 'u',	3,      836,     0 ), /*   835 sim               */
   S_ST( 'l',	3,      837,     0 ), /*   836 simu              */
   S_ST( 'a',	3,      838,     0 ), /*   837 simul             */
   S_ST( 't',	3,      839,     0 ), /*   838 simula            */
-  S_ST( 'i',	3,      840,   457 ), /*   839 simulat           */
+  S_ST( 'i',	3,      840,   456 ), /*   839 simulat           */
   S_ST( 'o',	3,      841,     0 ), /*   840 simulati          */
   S_ST( 'n',	3,      842,     0 ), /*   841 simulatio         */
   S_ST( '_',	3,      843,     0 ), /*   842 simulation        */
@@ -1075,81 +1075,81 @@ const scan_state sst[988] = {
   S_ST( 'a',	3,      847,     0 ), /*   846 simulation_dur    */
   S_ST( 't',	3,      848,     0 ), /*   847 simulation_dura   */
   S_ST( 'i',	3,      849,     0 ), /*   848 simulation_durat  */
-  S_ST( 'o',	3,      459,     0 ), /*   849 simulation_durati */
+  S_ST( 'o',	3,      458,     0 ), /*   849 simulation_durati */
   S_ST( 'o',	3,      851,   833 ), /*   850 s                 */
   S_ST( 'u',	3,      852,     0 ), /*   851 so                */
   S_ST( 'r',	3,      853,     0 ), /*   852 sou               */
-  S_ST( 'c',	3,      417,     0 ), /*   853 sour              */
+  S_ST( 'c',	3,      416,     0 ), /*   853 sour              */
   S_ST( 't',	3,      877,   850 ), /*   854 s                 */
   S_ST( 'a',	3,      861,     0 ), /*   855 st                */
   S_ST( 'c',	3,      857,     0 ), /*   856 sta               */
   S_ST( 'k',	3,      858,     0 ), /*   857 stac              */
   S_ST( 's',	3,      859,     0 ), /*   858 stack             */
   S_ST( 'i',	3,      860,     0 ), /*   859 stacks            */
-  S_ST( 'z',	3,      418,     0 ), /*   860 stacksi           */
-  S_ST( 't',	3,      420,   856 ), /*   861 sta               */
+  S_ST( 'z',	3,      417,     0 ), /*   860 stacksi           */
+  S_ST( 't',	3,      419,   856 ), /*   861 sta               */
   S_ST( 'i',	3,      863,     0 ), /*   862 stat              */
   S_ST( 's',	3,      864,     0 ), /*   863 stati             */
   S_ST( 't',	3,      865,     0 ), /*   864 statis            */
   S_ST( 'i',	3,      866,     0 ), /*   865 statist           */
-  S_ST( 'c',	3,      419,     0 ), /*   866 statisti          */
+  S_ST( 'c',	3,      418,     0 ), /*   866 statisti          */
   S_ST( 'd',	3,      868,     0 ), /*   867 stats             */
-  S_ST( 'i',	3,      421,     0 ), /*   868 statsd            */
-  S_ST( 'e',	3,      422,   855 ), /*   869 st                */
+  S_ST( 'i',	3,      420,     0 ), /*   868 statsd            */
+  S_ST( 'e',	3,      421,   855 ), /*   869 st                */
   S_ST( 'b',	3,      871,     0 ), /*   870 step              */
   S_ST( 'a',	3,      872,     0 ), /*   871 stepb             */
-  S_ST( 'c',	3,      423,     0 ), /*   872 stepba            */
+  S_ST( 'c',	3,      422,     0 ), /*   872 stepba            */
   S_ST( 'f',	3,      874,   870 ), /*   873 step              */
-  S_ST( 'w',	3,      424,     0 ), /*   874 stepf             */
+  S_ST( 'w',	3,      423,     0 ), /*   874 stepf             */
   S_ST( 'o',	3,      876,   873 ), /*   875 step              */
-  S_ST( 'u',	3,      425,     0 ), /*   876 stepo             */
+  S_ST( 'u',	3,      424,     0 ), /*   876 stepo             */
   S_ST( 'r',	3,      878,   869 ), /*   877 st                */
   S_ST( 'a',	3,      879,     0 ), /*   878 str               */
   S_ST( 't',	3,      880,     0 ), /*   879 stra              */
-  S_ST( 'u',	3,      426,     0 ), /*   880 strat             */
-  S_ST( 'y',	3,      428,   854 ), /*   881 s                 */
+  S_ST( 'u',	3,      425,     0 ), /*   880 strat             */
+  S_ST( 'y',	3,      427,   854 ), /*   881 s                 */
   S_ST( 's',	3,      883,     0 ), /*   882 sys               */
   S_ST( 't',	3,      884,     0 ), /*   883 syss              */
   S_ST( 'a',	3,      885,     0 ), /*   884 sysst             */
-  S_ST( 't',	3,      429,     0 ), /*   885 syssta            */
+  S_ST( 't',	3,      428,     0 ), /*   885 syssta            */
   S_ST( 't',	3,      912,   801 ), /*   886                   */
   S_ST( 'i',	3,      898,     0 ), /*   887 t                 */
-  S_ST( 'c',	3,      430,     0 ), /*   888 ti                */
+  S_ST( 'c',	3,      429,     0 ), /*   888 ti                */
   S_ST( 'm',	3,      891,   888 ), /*   889 ti                */
-  S_ST( 'e',	3,      433,     0 ), /*   890 tim               */
+  S_ST( 'e',	3,      432,     0 ), /*   890 tim               */
   S_ST( 'i',	3,      892,   890 ), /*   891 tim               */
   S_ST( 'n',	3,      893,     0 ), /*   892 timi              */
   S_ST( 'g',	3,      894,     0 ), /*   893 timin             */
   S_ST( 's',	3,      895,     0 ), /*   894 timing            */
   S_ST( 't',	3,      896,     0 ), /*   895 timings           */
   S_ST( 'a',	3,      897,     0 ), /*   896 timingst          */
-  S_ST( 't',	3,      434,     0 ), /*   897 timingsta         */
+  S_ST( 't',	3,      433,     0 ), /*   897 timingsta         */
   S_ST( 'n',	3,      899,   889 ), /*   898 ti                */
   S_ST( 'k',	3,      900,     0 ), /*   899 tin               */
-  S_ST( 'e',	3,      435,     0 ), /*   900 tink              */
-  S_ST( 'o',	3,      436,   887 ), /*   901 t                 */
+  S_ST( 'e',	3,      434,     0 ), /*   900 tink              */
+  S_ST( 'o',	3,      435,   887 ), /*   901 t                 */
   S_ST( 'r',	3,      904,   901 ), /*   902 t                 */
-  S_ST( 'a',	3,      437,     0 ), /*   903 tr                */
+  S_ST( 'a',	3,      436,     0 ), /*   903 tr                */
   S_ST( 'u',	3,      905,   903 ), /*   904 tr                */
-  S_ST( 's',	3,      906,   438 ), /*   905 tru               */
+  S_ST( 's',	3,      906,   437 ), /*   905 tru               */
   S_ST( 't',	3,      907,     0 ), /*   906 trus              */
   S_ST( 'e',	3,      908,     0 ), /*   907 trust             */
   S_ST( 'd',	3,      909,     0 ), /*   908 truste            */
   S_ST( 'k',	3,      910,     0 ), /*   909 trusted           */
-  S_ST( 'e',	3,      439,     0 ), /*   910 trustedk          */
-  S_ST( 't',	3,      440,   902 ), /*   911 t                 */
+  S_ST( 'e',	3,      438,     0 ), /*   910 trustedk          */
+  S_ST( 't',	3,      439,   902 ), /*   911 t                 */
   S_ST( 'y',	3,      913,   911 ), /*   912 t                 */
-  S_ST( 'p',	3,      441,     0 ), /*   913 ty                */
+  S_ST( 'p',	3,      440,     0 ), /*   913 ty                */
   S_ST( 'u',	3,      915,   886 ), /*   914                   */
   S_ST( 'n',	3,      921,     0 ), /*   915 u                 */
   S_ST( 'c',	3,      917,     0 ), /*   916 un                */
   S_ST( 'o',	3,      918,     0 ), /*   917 unc               */
   S_ST( 'n',	3,      919,     0 ), /*   918 unco              */
   S_ST( 'f',	3,      920,     0 ), /*   919 uncon             */
-  S_ST( 'i',	3,      446,     0 ), /*   920 unconf            */
+  S_ST( 'i',	3,      445,     0 ), /*   920 unconf            */
   S_ST( 'p',	3,      922,   916 ), /*   921 un                */
   S_ST( 'e',	3,      923,     0 ), /*   922 unp               */
-  S_ST( 'e',	3,      447,     0 ), /*   923 unpe              */
+  S_ST( 'e',	3,      446,     0 ), /*   923 unpe              */
   S_ST( '_',	3,      944,     0 ), /*   924 unpeer            */
   S_ST( 'c',	3,      926,     0 ), /*   925 unpeer_           */
   S_ST( 'r',	3,      927,     0 ), /*   926 unpeer_c          */
@@ -1161,7 +1161,7 @@ const scan_state sst[988] = {
   S_ST( 'e',	3,      933,     0 ), /*   932 unpeer_crypto_    */
   S_ST( 'a',	3,      934,     0 ), /*   933 unpeer_crypto_e   */
   S_ST( 'r',	3,      935,     0 ), /*   934 unpeer_crypto_ea  */
-  S_ST( 'l',	3,      443,     0 ), /*   935 unpeer_crypto_ear */
+  S_ST( 'l',	3,      442,     0 ), /*   935 unpeer_crypto_ear */
   S_ST( 'n',	3,      937,   932 ), /*   936 unpeer_crypto_    */
   S_ST( 'a',	3,      938,     0 ), /*   937 unpeer_crypto_n   */
   S_ST( 'k',	3,      939,     0 ), /*   938 unpeer_crypto_na  */
@@ -1169,7 +1169,7 @@ const scan_state sst[988] = {
   S_ST( 'e',	3,      941,     0 ), /*   940 unpeer_crypto_nak_ */
   S_ST( 'a',	3,      942,     0 ), /*   941 unpeer_crypto_nak_e */
   S_ST( 'r',	3,      943,     0 ), /*   942 unpeer_crypto_nak_ea */
-  S_ST( 'l',	3,      444,     0 ), /*   943 unpeer_crypto_nak_ear */
+  S_ST( 'l',	3,      443,     0 ), /*   943 unpeer_crypto_nak_ear */
   S_ST( 'd',	3,      945,   925 ), /*   944 unpeer_           */
   S_ST( 'i',	3,      946,     0 ), /*   945 unpeer_d          */
   S_ST( 'g',	3,      947,     0 ), /*   946 unpeer_di         */
@@ -1180,39 +1180,39 @@ const scan_state sst[988] = {
   S_ST( 'e',	3,      952,     0 ), /*   951 unpeer_digest_    */
   S_ST( 'a',	3,      953,     0 ), /*   952 unpeer_digest_e   */
   S_ST( 'r',	3,      954,     0 ), /*   953 unpeer_digest_ea  */
-  S_ST( 'l',	3,      445,     0 ), /*   954 unpeer_digest_ear */
+  S_ST( 'l',	3,      444,     0 ), /*   954 unpeer_digest_ear */
   S_ST( 'v',	3,      956,   914 ), /*   955                   */
   S_ST( 'e',	3,      957,     0 ), /*   956 v                 */
   S_ST( 'r',	3,      958,     0 ), /*   957 ve                */
   S_ST( 's',	3,      959,     0 ), /*   958 ver               */
   S_ST( 'i',	3,      960,     0 ), /*   959 vers              */
-  S_ST( 'o',	3,      448,     0 ), /*   960 versi             */
+  S_ST( 'o',	3,      447,     0 ), /*   960 versi             */
   S_ST( 'w',	3,      968,   955 ), /*   961                   */
   S_ST( 'a',	3,      963,     0 ), /*   962 w                 */
   S_ST( 'n',	3,      964,     0 ), /*   963 wa                */
   S_ST( 'd',	3,      965,     0 ), /*   964 wan               */
-  S_ST( 'e',	3,      463,     0 ), /*   965 wand              */
+  S_ST( 'e',	3,      462,     0 ), /*   965 wand              */
   S_ST( 'e',	3,      967,   962 ), /*   966 w                 */
-  S_ST( 'e',	3,      450,     0 ), /*   967 we                */
+  S_ST( 'e',	3,      449,     0 ), /*   967 we                */
   S_ST( 'i',	3,      969,   966 ), /*   968 w                 */
   S_ST( 'l',	3,      970,     0 ), /*   969 wi                */
   S_ST( 'd',	3,      971,     0 ), /*   970 wil               */
   S_ST( 'c',	3,      972,     0 ), /*   971 wild              */
   S_ST( 'a',	3,      973,     0 ), /*   972 wildc             */
-  S_ST( 'r',	3,      451,     0 ), /*   973 wildca            */
+  S_ST( 'r',	3,      450,     0 ), /*   973 wildca            */
   S_ST( 'x',	3,      979,   961 ), /*   974                   */
   S_ST( 'l',	3,      976,     0 ), /*   975 x                 */
   S_ST( 'e',	3,      977,     0 ), /*   976 xl                */
   S_ST( 'a',	3,      978,     0 ), /*   977 xle               */
-  S_ST( 'v',	3,      452,     0 ), /*   978 xlea              */
+  S_ST( 'v',	3,      451,     0 ), /*   978 xlea              */
   S_ST( 'm',	3,      980,   975 ), /*   979 x                 */
   S_ST( 't',	3,      981,     0 ), /*   980 xm                */
   S_ST( 'n',	3,      982,     0 ), /*   981 xmt               */
   S_ST( 'o',	3,      983,     0 ), /*   982 xmtn              */
   S_ST( 'n',	3,      984,     0 ), /*   983 xmtno             */
-  S_ST( 'c',	3,      453,     0 ), /*   984 xmtnon            */
+  S_ST( 'c',	3,      452,     0 ), /*   984 xmtnon            */
   S_ST( 'y',	3,      986,   974 ), /*   985 [initial state]   */
   S_ST( 'e',	3,      987,     0 ), /*   986 y                 */
-  S_ST( 'a',	3,      454,     0 )  /*   987 ye                */
+  S_ST( 'a',	3,      453,     0 )  /*   987 ye                */
 };
 

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_ntp__loopfilter.c
$NetBSD: patch-ntpd_ntp__loopfilter.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/ntp_loopfilter.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ ntpd/ntp_loopfilter.c
@@ -603,7 +603,7 @@ local_clock(
 
 			clock_frequency = direct_freq(fp_offset);
 
-			/* fall through to EVNT_SPIK */
+			/*FALLTHROUGH*/
 
 		/*
 		 * In SPIK state we ignore succeeding outliers until
@@ -614,7 +614,7 @@ local_clock(
 			if (mu < clock_minstep)
 				return (0);
 
-			/* fall through to default */
+			/*FALLTHROUGH*/
 
 		/*
 		 * We get here by default in NSET and FSET states and

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_ntp__proto.c
$NetBSD: patch-ntpd_ntp__proto.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/ntp_proto.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ ntpd/ntp_proto.c
@@ -717,7 +717,7 @@ receive(
 	 * items from the packet once we can be sure they are indeed
 	 * there.
 	 */
-	if (rbufp->recv_length < LEN_PKT_NOMAC) {
+	if ((size_t)rbufp->recv_length < LEN_PKT_NOMAC) {
 		sys_badlength++;
 		return;				/* bogus length */
 	}
@@ -4680,7 +4680,7 @@ fast_xmit(
 	 * packet is not authenticated.
 	 */
 	sendlen = LEN_PKT_NOMAC;
-	if (rbufp->recv_length == sendlen) {
+	if ((size_t)rbufp->recv_length == sendlen) {
 		sendpkt(&rbufp->recv_srcadr, rbufp->dstadr, 0, &xpkt,
 		    sendlen);
 		DPRINTF(1, ("fast_xmit: at %ld %s->%s mode %d len %lu\n",

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_ntp__restrict.c
$NetBSD: patch-ntpd_ntp__restrict.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/ntp_restrict.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ ntpd/ntp_restrict.c
@@ -114,7 +114,7 @@ static restrict_u *	match_restrict6_addr
 static restrict_u *	match_restrict_entry(const restrict_u *, int);
 static int		res_sorts_before4(restrict_u *, restrict_u *);
 static int		res_sorts_before6(restrict_u *, restrict_u *);
-static char *		roptoa(restrict_op op);
+static const char *	roptoa(restrict_op op);
 
 
 void	dump_restricts(void);
@@ -576,7 +576,7 @@ restrictions(
 /*
  * roptoa - convert a restrict_op to a string
  */
-char *
+const char *
 roptoa(restrict_op op) {
 	static char sb[30];
 

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_refclock__jjy.c
$NetBSD: patch-ntpd_refclock__jjy.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/refclock_jjy.c.orig	2018-02-27 15:15:27.000000000 +0000
+++ ntpd/refclock_jjy.c
@@ -1010,7 +1010,7 @@ static void
 jjy_synctime ( struct peer *peer, struct refclockproc *pp, struct jjyunit *up )
 {
 
-	char	sLog [ 80 ], cStatus ;
+	char	sLog [ 192 ], cStatus ;
 	const char	*pStatus ;
 
 	pp->year   = up->year ;
@@ -1165,7 +1165,7 @@ jjy_receive_tristate_jjy01 ( struct recv
 	struct peer	    *peer;
 
 	char *		pBuf ;
-	char		sLog [ 100 ] ;
+	char		sLog [ 192 ] ;
 	int 		iLen ;
 	int 		rc ;
 
@@ -1461,7 +1461,7 @@ jjy_receive_cdex_jst2000 ( struct recvbu
 	struct refclockproc *pp ;
 	struct peer         *peer ;
 
-	char	*pBuf, sLog [ 100 ] ;
+	char	*pBuf, sLog [ 192 ] ;
 	int 	iLen ;
 	int 	rc ;
 
@@ -2344,7 +2344,7 @@ jjy_receive_seiko_tsys_tdc_300 ( struct 
 	struct refclockproc	*pp ;
 	struct jjyunit		*up ;
 
-	char	*pBuf, sLog [ 100 ] ;
+	char	*pBuf, sLog [ 192 ] ;
 	int	iLen, i ;
 	int	rc, iWeekday ;
 	time_t	now ;
@@ -2693,7 +2693,7 @@ static int
 jjy_start_telephone ( int unit, struct peer *peer, struct jjyunit *up )
 {
 
-	char	sLog [ 80 ], sFirstThreeDigits [ 4 ] ;
+	char	sLog [ 192 ], sFirstThreeDigits [ 4 ] ;
 	int	iNumberOfDigitsOfPhoneNumber, iCommaCount, iCommaPosition ;
 	size_t  i ;
 	size_t	iFirstThreeDigitsCount ;
@@ -3402,7 +3402,7 @@ teljjy_conn_data ( struct peer *peer, st
 
 	char	*pBuf ;
 	int	iLen, rc ;
-	char	sLog [ 80 ] ;
+	char	sLog [ 192 ] ;
 	char	bAdjustment ;
 
 

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_refclock__jupiter.c
$NetBSD: patch-ntpd_refclock__jupiter.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/refclock_jupiter.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ ntpd/refclock_jupiter.c
@@ -186,8 +186,8 @@ jupiter_start(
 	snprintf(gpsdev, sizeof(gpsdev), DEVICE, unit);
 	fd = refclock_open(gpsdev, SPEED232, LDISC_RAW);
 	if (fd <= 0) {
-		jupiter_debug(peer, "jupiter_start", "open %s: %m",
-			      gpsdev);
+		jupiter_debug(peer, "jupiter_start", "open %s: %s",
+			      gpsdev, strerror(errno));
 		return (0);
 	}
 

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_refclock__neoclock4x.c
$NetBSD: patch-ntpd_refclock__neoclock4x.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/refclock_neoclock4x.c.orig	2014-12-29 06:26:52.000000000 +0000
+++ ntpd/refclock_neoclock4x.c
@@ -725,7 +725,8 @@ neoclock4x_control(int unit,
   if(NULL != out)
     {
       char *tt;
-      char tmpbuf[80];
+      /* the 199 here is almost 2x the max string */
+      char tmpbuf[199];
 
       out->kv_list = (struct ctl_var *)0;
       out->type    = REFCLK_NEOCLOCK4X;
@@ -765,14 +766,15 @@ neoclock4x_control(int unit,
         snprintf(tt, 39, "dststatus=\"winter\"");
       else
         snprintf(tt, 39, "dststatus=\"unknown\"");
+      /* the 99 below is greater than 80 the max string */
       tt = add_var(&out->kv_list, 80, RO|DEF);
-      snprintf(tt, 79, "firmware=\"%s\"", up->firmware);
+      snprintf(tt, 99, "firmware=\"%s\"", up->firmware);
       tt = add_var(&out->kv_list, 40, RO|DEF);
       snprintf(tt, 39, "firmwaretag=\"%c\"", up->firmwaretag);
       tt = add_var(&out->kv_list, 80, RO|DEF);
-      snprintf(tt, 79, "driver version=\"%s\"", NEOCLOCK4X_DRIVER_VERSION);
+      snprintf(tt, 99, "driver version=\"%s\"", NEOCLOCK4X_DRIVER_VERSION);
       tt = add_var(&out->kv_list, 80, RO|DEF);
-      snprintf(tt, 79, "serialnumber=\"%s\"", up->serial);
+      snprintf(tt, 99, "serialnumber=\"%s\"", up->serial);
     }
 }
 

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_refclock__oncore.c
$NetBSD: patch-ntpd_refclock__oncore.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/refclock_oncore.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ ntpd/refclock_oncore.c
@@ -1804,7 +1804,7 @@ oncore_get_timestamp(
 		Rsm = ((instance->BEHa[129]<<8) | instance->BEHa[130]);
 
 	if (instance->chan == 6 || instance->chan == 8) {
-		char	f1[5], f2[5], f3[5], f4[5];
+		char	f1[6], f2[6], f3[6], f4[6];
 		if (instance->traim) {
 			snprintf(f1, sizeof(f1), "%d",
 				 instance->BEHn[21]);
@@ -1837,7 +1837,7 @@ oncore_get_timestamp(
 		    instance->BEHa[57], instance->BEHa[61], instance->BEHa[65], instance->BEHa[69]
 		    );					/* will be 0 for 6 chan */
 	} else if (instance->chan == 12) {
-		char	f1[5], f2[5], f3[5], f4[5];
+		char	f1[6], f2[6], f3[6], f4[6];
 		if (instance->traim) {
 			snprintf(f1, sizeof(f1), "%d",
 				 instance->BEHn[6]);
@@ -3429,9 +3429,10 @@ oncore_check_leap_sec(
 		instance->Bj_day = instance->BEHa[5];
 
 		if (instance->saw_Gj < 0) {	/* -1 DONT have Gj use Bj */
-			if ((instance->BEHa[4] == 6) || (instance->BEHa[4] == 12))
+			if ((instance->BEHa[4] == 6) || (instance->BEHa[4] == 12)) {
 				oncore_sendmsg(instance, oncore_cmd_Bj, sizeof(oncore_cmd_Bj));
 				oncore_sendmsg(instance, oncore_cmd_Bl, sizeof(oncore_cmd_Bl));
+			}
 			return;
 		}
 
@@ -3872,9 +3873,10 @@ oncore_set_traim(
 			oncore_sendmsg(instance, oncore_cmd_Bnx, sizeof(oncore_cmd_Bnx));
 		else if (instance->chan == 8)
 			oncore_sendmsg(instance, oncore_cmd_Enx, sizeof(oncore_cmd_Enx));
-		else	/* chan == 12 */
+		else {	/* chan == 12 */
 			oncore_sendmsg(instance, oncore_cmd_Ge0, sizeof(oncore_cmd_Ge0));
 			oncore_sendmsg(instance, oncore_cmd_Hn0, sizeof(oncore_cmd_Hn0));
+		}
 	}
 }
 

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_refclock__ulink.c
$NetBSD: patch-ntpd_refclock__ulink.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/refclock_ulink.c.orig	2012-06-28 06:37:06.000000000 +0000
+++ ntpd/refclock_ulink.c
@@ -389,6 +389,7 @@ ulink_receive(
                     }
 		    break;
 		}
+		/*FALLTHROUGH*/
 
 		case LEN320:
 
@@ -433,6 +434,7 @@ ulink_receive(
 		}
 
 		default:
+		/*FALLTHROUGH*/
 		refclock_report(peer, CEVNT_BADREPLY);
 		return;
 	}

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_refclock__wwvb.c
$NetBSD: patch-ntpd_refclock__wwvb.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/refclock_wwvb.c.orig	2014-12-30 00:29:38.000000000 +0000
+++ ntpd/refclock_wwvb.c
@@ -154,7 +154,8 @@ static	void	wwvb_control	(int, const str
 				 struct refclockstat *, struct peer *);
 #define		WWVB_CONTROL	wwvb_control
 #else
-#define		WWVB_CONTROL	noentry
+#define		WWVB_CONTROL	(void)(*)
+noentry
 #endif /* HAVE_PPSAPI */
 
 /*

File Added: pkgsrc/net/ntp4/patches/patch-ntpdate_ntpdate.c
$NetBSD: patch-ntpdate_ntpdate.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpdate/ntpdate.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ ntpdate/ntpdate.c
@@ -435,6 +435,7 @@ ntpdatemain (
 	    }
 
 	if (errflg) {
+usage:
 		(void) fprintf(stderr,
 		    "usage: %s [-46bBdqsuv] [-a key#] [-e delay] [-k file] [-p samples] [-o version#] [-t timeo] server ...\n",
 		    progname);
@@ -511,7 +512,7 @@ ntpdatemain (
 
 	if (sys_numservers == 0) {
 		msyslog(LOG_ERR, "no servers can be used, exiting");
-		exit(1);
+		goto usage;
 	}
 
 	/*
@@ -2175,7 +2176,7 @@ print_server(
 	if (REFID_ISTEXT(pp->stratum)) {
 		str = (char *) &pp->refid;
 		for (i=0; i<4 && str[i]; i++) {
-			junk[i] = (isprint(str[i]) ? str[i] : '.');
+			junk[i] = (isprint((unsigned char)str[i]) ? str[i] : '.');
 		}
 		junk[i] = 0; // force terminating 0
 		str = junk;

File Added: pkgsrc/net/ntp4/patches/patch-ntpdc_Makefile.in
$NetBSD: patch-ntpdc_Makefile.in,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpdc/Makefile.in.orig	2020-03-04 01:40:11.000000000 +0000
+++ ntpdc/Makefile.in
@@ -1207,8 +1207,8 @@ ntpdc-layout.o: nl.c
 layout.here: ntpdc-layout
 	./ntpdc-layout > $@
 
-check-layout: ntpdc-layout $(srcdir)/layout.std layout.here
-	cmp $(srcdir)/layout.std layout.here && echo stamp > $@
+check-layout: # ntpdc-layout $(srcdir)/layout.std layout.here
+#	cmp $(srcdir)/layout.std layout.here && echo stamp > $@
 
 $(PROGRAMS): version.o
 

File Added: pkgsrc/net/ntp4/patches/patch-ntpq_ntpq.c
$NetBSD: patch-ntpq_ntpq.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpq/ntpq.c.orig	2020-03-04 01:38:15.000000000 +0000
+++ ntpq/ntpq.c
@@ -445,7 +445,9 @@ chost chosts[MAXHOSTS];
 # define SETJMP(x)	setjmp((x))
 # define LONGJMP(x, v)	longjmp((x),(v))
 #endif
+#ifndef BUILD_AS_LIB
 static	JMP_BUF		interrupt_buf;
+#endif
 static	volatile int	jump = 0;
 
 /*
@@ -3736,7 +3738,7 @@ cookedprint(
 		case SN:
 			if (!value)
 				output_raw = '?';
-			else if (isdigit(*value)) {	/* number without sign */
+			else if (isdigit(*(const unsigned char *)value)) {	/* number without sign */
 				bv[0] = '+';
 				atoascii (value, MAXVALLEN, bv+1, sizeof(bv)-1);
 				output(fp, name, bv);
@@ -3894,7 +3896,7 @@ list_md_fn(const EVP_MD *m, const char *
 
 	/* Discard MACs that NTP won't accept. */
 	/* Keep this consistent with keytype_from_text() in ssl_init.c. */
-	if (EVP_MD_size(m) > (MAX_MAC_LEN - sizeof(keyid_t)))
+	if (EVP_MD_size(m) > (int)(MAX_MAC_LEN - sizeof(keyid_t)))
 		return;
 	
 	name = EVP_MD_name(m);

File Added: pkgsrc/net/ntp4/patches/patch-sntp_libevent_build-aux_config.guess
$NetBSD: patch-sntp_libevent_build-aux_config.guess,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- sntp/libevent/build-aux/config.guess.orig	2017-02-01 09:49:25.000000000 +0000
+++ sntp/libevent/build-aux/config.guess
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2014 Free Software Foundation, Inc.
+#   Copyright 1992-2019 Free Software Foundation, Inc.
 
-timestamp='2014-11-04'
+timestamp='2019-01-03'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@ timestamp='2014-11-04'
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -27,7 +27,7 @@ timestamp='2014-11-04'
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
 # Please send patches to <config-patches@gnu.org>.
 
@@ -39,7 +39,7 @@ Usage: $0 [OPTION]
 
 Output the configuration name of the system \`$me' is run on.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2019 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -84,8 +84,6 @@ if test $# != 0; then
   exit 1
 fi
 
-trap 'exit 1' 1 2 15
-
 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
 # compiler to aid in system detection is discouraged as it requires
 # temporary files to be created and, as you can see below, it is a
@@ -96,34 +94,38 @@ trap 'exit 1' 1 2 15
 
 # Portable tmp directory creation inspired by the Autoconf team.
 
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-	     CC_FOR_BUILD="$c"; break ;
-	  fi ;
-	done ;
-	if test x"$CC_FOR_BUILD" = x ; then
-	  CC_FOR_BUILD=no_compiler_found ;
-	fi
-	;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+    : "${TMPDIR=/tmp}"
+    # shellcheck disable=SC2039
+    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+    dummy=$tmp/dummy
+    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+	,,)    echo "int x;" > "$dummy.c"
+	       for driver in cc gcc c89 c99 ; do
+		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+		       CC_FOR_BUILD="$driver"
+		       break
+		   fi
+	       done
+	       if test x"$CC_FOR_BUILD" = x ; then
+		   CC_FOR_BUILD=no_compiler_found
+	       fi
+	       ;;
+	,,*)   CC_FOR_BUILD=$CC ;;
+	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+    esac
+}
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
 	PATH=$PATH:/.attbin ; export PATH
 fi
 
@@ -132,14 +134,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` |
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-case "${UNAME_SYSTEM}" in
+case "$UNAME_SYSTEM" in
 Linux|GNU|GNU/*)
 	# If the system lacks a compiler, then just pick glibc.
 	# We could probably try harder.
 	LIBC=gnu
 
-	eval $set_cc_for_build
-	cat <<-EOF > $dummy.c
+	set_cc_for_build
+	cat <<-EOF > "$dummy.c"
 	#include <features.h>
 	#if defined(__UCLIBC__)
 	LIBC=uclibc
@@ -149,13 +151,20 @@ Linux|GNU|GNU/*)
 	LIBC=gnu
 	#endif
 	EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+	# If ldd exists, use it to detect musl libc.
+	if command -v ldd >/dev/null && \
+		ldd --version 2>&1 | grep -q ^musl
+	then
+	    LIBC=musl
+	fi
 	;;
 esac
 
 # Note: order is significant - the case branches are not exclusive.
 
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
     *:NetBSD:*:*)
 	# NetBSD (nbsd) targets should (where applicable) match one or
 	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -168,21 +177,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 	# Note: NetBSD doesn't particularly care about the vendor
 	# portion of the name.  We always set it to "unknown".
 	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
+	UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+	    "/sbin/$sysctl" 2>/dev/null || \
+	    "/usr/sbin/$sysctl" 2>/dev/null || \
+	    echo unknown)`
+	case "$UNAME_MACHINE_ARCH" in
 	    armeb) machine=armeb-unknown ;;
 	    arm*) machine=arm-unknown ;;
 	    sh3el) machine=shl-unknown ;;
 	    sh3eb) machine=sh-unknown ;;
 	    sh5el) machine=sh5le-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	    earm*)
+		arch="${UNAME_MACHINE_ARCH#e}"
+		arch="${arch%eb}"
+		arch="${arch%hf}"
+		endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+		machine="${arch}${endian}"-unknown
+		;;
+	    *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
+	# to ELF recently (or will in the future) and ABI.
+	case "$UNAME_MACHINE_ARCH" in
+	    earm*)
+		os=netbsdelf
+		;;
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
+		set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
 			| grep -q __ELF__
 		then
@@ -197,44 +218,67 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 		os=netbsd
 		;;
 	esac
+	# Determine ABI tags.
+	case "$UNAME_MACHINE_ARCH" in
+	    earm*)
+		expr='s/v[0-9]//;s/earm/-eabi/;s/eb$//'
+		abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+		;;
+	esac
 	# The OS release
 	# Debian GNU/NetBSD machines have a different userland, and
 	# thus, need a distinct triplet. However, they do not need
 	# kernel version information, so it can be replaced with a
 	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
+	case "$UNAME_VERSION" in
 	    Debian*)
 		release='-gnu'
 		;;
 	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
 		;;
 	esac
 	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
 	# contains redundant information, the shorter form:
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
+	echo "$machine-${os}${release}${abi-}"
 	exit ;;
     *:Bitrig:*:*)
 	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+	echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
 	exit ;;
     *:OpenBSD:*:*)
 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
+	exit ;;
+    *:LibertyBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+	echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
+	exit ;;
+    *:MidnightBSD:*:*)
+	echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
 	exit ;;
     *:ekkoBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
 	exit ;;
     *:SolidBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
 	exit ;;
     macppc:MirBSD:*:*)
-	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
 	exit ;;
     *:MirBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
+	exit ;;
+    *:Sortix:*:*)
+	echo "$UNAME_MACHINE"-unknown-sortix
 	exit ;;
+    *:Redox:*:*)
+	echo "$UNAME_MACHINE"-unknown-redox
+	exit ;;
+    mips:OSF1:*.*)
+        echo mips-dec-osf1
+        exit ;;
     alpha:OSF1:*:*)
 	case $UNAME_RELEASE in
 	*4.0)
@@ -251,63 +295,54 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
 	case "$ALPHA_CPU_TYPE" in
 	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
+		UNAME_MACHINE=alphaev5 ;;
 	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
+		UNAME_MACHINE=alphaev56 ;;
 	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
+		UNAME_MACHINE=alphapca56 ;;
 	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
+		UNAME_MACHINE=alphapca57 ;;
 	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
+		UNAME_MACHINE=alphaev6 ;;
 	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
+		UNAME_MACHINE=alphaev67 ;;
 	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
+		UNAME_MACHINE=alphaev69 ;;
 	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
+		UNAME_MACHINE=alphaev7 ;;
 	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
+		UNAME_MACHINE=alphaev79 ;;
 	esac
 	# A Pn.n version is a patched version.
 	# A Vn.n version is a released version.
 	# A Tn.n version is a released field test version.
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
 	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
 	exitcode=$?
 	trap '' 0
 	exit $exitcode ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit ;;
     Amiga*:UNIX_System_V:4.0:*)
 	echo m68k-unknown-sysv4
 	exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
+	echo "$UNAME_MACHINE"-unknown-amigaos
 	exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
+	echo "$UNAME_MACHINE"-unknown-morphos
 	exit ;;
     *:OS/390:*:*)
 	echo i370-ibm-openedition
@@ -319,7 +354,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 	echo powerpc-ibm-os400
 	exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
+	echo arm-acorn-riscix"$UNAME_RELEASE"
 	exit ;;
     arm*:riscos:*:*|arm*:RISCOS:*:*)
 	echo arm-unknown-riscos
@@ -346,38 +381,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
     s390x:SunOS:*:*)
-	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
 	exit ;;
     sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	set_cc_for_build
+	SUN_ARCH=sparc
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+	    if (echo '#ifdef __sparcv9'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH=sparcv9
+	    fi
+	fi
+	echo "$SUN_ARCH"-sun-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-	echo i386-pc-auroraux${UNAME_RELEASE}
+	echo i386-pc-auroraux"$UNAME_RELEASE"
 	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	eval $set_cc_for_build
-	SUN_ARCH="i386"
+	set_cc_for_build
+	SUN_ARCH=i386
 	# If there is a compiler, see if it is configured for 64-bit objects.
 	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
 	# This test works for both compilers.
-	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
 	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
 		grep IS_64BIT_ARCH >/dev/null
 	    then
-		SUN_ARCH="x86_64"
+		SUN_ARCH=x86_64
 	    fi
 	fi
-	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
 	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     sun4*:SunOS:*:*)
 	case "`/usr/bin/arch -k`" in
@@ -386,25 +434,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 		;;
 	esac
 	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
 	exit ;;
     sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
+	echo m68k-sun-sunos"$UNAME_RELEASE"
 	exit ;;
     sun*:*:4.2BSD:*)
 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
 	case "`/bin/arch`" in
 	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
+		echo m68k-sun-sunos"$UNAME_RELEASE"
 		;;
 	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
+		echo sparc-sun-sunos"$UNAME_RELEASE"
 		;;
 	esac
 	exit ;;
     aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
+	echo sparc-auspex-sunos"$UNAME_RELEASE"
 	exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
@@ -415,44 +463,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint"$UNAME_RELEASE"
 	exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint"$UNAME_RELEASE"
 	exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint"$UNAME_RELEASE"
 	exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-	echo m68k-milan-mint${UNAME_RELEASE}
+	echo m68k-milan-mint"$UNAME_RELEASE"
 	exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-	echo m68k-hades-mint${UNAME_RELEASE}
+	echo m68k-hades-mint"$UNAME_RELEASE"
 	exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-	echo m68k-unknown-mint${UNAME_RELEASE}
+	echo m68k-unknown-mint"$UNAME_RELEASE"
 	exit ;;
     m68k:machten:*:*)
-	echo m68k-apple-machten${UNAME_RELEASE}
+	echo m68k-apple-machten"$UNAME_RELEASE"
 	exit ;;
     powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
+	echo powerpc-apple-machten"$UNAME_RELEASE"
 	exit ;;
     RISC*:Mach:*:*)
 	echo mips-dec-mach_bsd4.3
 	exit ;;
     RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
+	echo mips-dec-ultrix"$UNAME_RELEASE"
 	exit ;;
     VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
+	echo vax-dec-ultrix"$UNAME_RELEASE"
 	exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
+	echo clipper-intergraph-clix"$UNAME_RELEASE"
 	exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
+	set_cc_for_build
+	sed 's/^	//' << EOF > "$dummy.c"
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
 	int main (int argc, char *argv[]) {
@@ -461,23 +509,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 #endif
 	#if defined (host_mips) && defined (MIPSEB)
 	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
 	#endif
 	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
 	#endif
 	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	  printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
 	#endif
 	#endif
 	  exit (-1);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c &&
-	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+	  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
 	    { echo "$SYSTEM_NAME"; exit; }
-	echo mips-mips-riscos${UNAME_RELEASE}
+	echo mips-mips-riscos"$UNAME_RELEASE"
 	exit ;;
     Motorola:PowerMAX_OS:*:*)
 	echo powerpc-motorola-powermax
@@ -503,17 +551,17 @@ EOF
     AViiON:dgux:*:*)
 	# DG/UX returns AViiON for all architectures
 	UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
 	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+	       [ "$TARGET_BINARY_INTERFACE"x = x ]
 	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
+		echo m88k-dg-dgux"$UNAME_RELEASE"
 	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+		echo m88k-dg-dguxbcs"$UNAME_RELEASE"
 	    fi
 	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
+	    echo i586-dg-dgux"$UNAME_RELEASE"
 	fi
 	exit ;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
@@ -530,7 +578,7 @@ EOF
 	echo m68k-tektronix-bsd
 	exit ;;
     *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
 	exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
 	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
@@ -542,14 +590,14 @@ EOF
 	if [ -x /usr/bin/oslevel ] ; then
 		IBM_REV=`/usr/bin/oslevel`
 	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
 	fi
-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
 	exit ;;
     *:AIX:2:3)
 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval $set_cc_for_build
-		sed 's/^		//' << EOF >$dummy.c
+		set_cc_for_build
+		sed 's/^		//' << EOF > "$dummy.c"
 		#include <sys/systemcfg.h>
 
 		main()
@@ -560,7 +608,7 @@ EOF
 			exit(0);
 			}
 EOF
-		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
 		then
 			echo "$SYSTEM_NAME"
 		else
@@ -574,7 +622,7 @@ EOF
 	exit ;;
     *:AIX:*:[4567])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+	if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
 	else
 		IBM_ARCH=powerpc
@@ -583,18 +631,18 @@ EOF
 		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
 			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
 	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+		IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
 	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
 	exit ;;
     *:AIX:*:*)
 	echo rs6000-ibm-aix
 	exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
 	echo romp-ibm-bsd4.4
 	exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
 	exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
 	echo rs6000-bull-bosx
@@ -609,28 +657,28 @@ EOF
 	echo m68k-hp-bsd4.4
 	exit ;;
     9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
+	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+	case "$UNAME_MACHINE" in
+	    9000/31?)            HP_ARCH=m68000 ;;
+	    9000/[34]??)         HP_ARCH=m68k ;;
 	    9000/[678][0-9][0-9])
 		if [ -x /usr/bin/getconf ]; then
 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
 		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-		    case "${sc_cpu_version}" in
-		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+		    case "$sc_cpu_version" in
+		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
 		      532)                      # CPU_PA_RISC2_0
-			case "${sc_kernel_bits}" in
-			  32) HP_ARCH="hppa2.0n" ;;
-			  64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+			case "$sc_kernel_bits" in
+			  32) HP_ARCH=hppa2.0n ;;
+			  64) HP_ARCH=hppa2.0w ;;
+			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
 			esac ;;
 		    esac
 		fi
-		if [ "${HP_ARCH}" = "" ]; then
-		    eval $set_cc_for_build
-		    sed 's/^		//' << EOF >$dummy.c
+		if [ "$HP_ARCH" = "" ]; then
+		    set_cc_for_build
+		    sed 's/^		//' << EOF > "$dummy.c"
 
 		#define _HPUX_SOURCE
 		#include <stdlib.h>
@@ -663,13 +711,13 @@ EOF
 		    exit (0);
 		}
 EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
 		    test -z "$HP_ARCH" && HP_ARCH=hppa
 		fi ;;
 	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
+	if [ "$HP_ARCH" = hppa2.0w ]
 	then
-	    eval $set_cc_for_build
+	    set_cc_for_build
 
 	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
 	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
@@ -680,23 +728,23 @@ EOF
 	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
 	    # => hppa64-hp-hpux11.23
 
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
 		grep -q __LP64__
 	    then
-		HP_ARCH="hppa2.0w"
+		HP_ARCH=hppa2.0w
 	    else
-		HP_ARCH="hppa64"
+		HP_ARCH=hppa64
 	    fi
 	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
 	exit ;;
     ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
+	HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux"$HPUX_REV"
 	exit ;;
     3050*:HI-UX:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
+	set_cc_for_build
+	sed 's/^	//' << EOF > "$dummy.c"
 	#include <unistd.h>
 	int
 	main ()
@@ -721,11 +769,11 @@ EOF
 	  exit (0);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+	$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
 		{ echo "$SYSTEM_NAME"; exit; }
 	echo unknown-hitachi-hiuxwe2
 	exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
 	echo hppa1.1-hp-bsd
 	exit ;;
     9000/8??:4.3bsd:*:*)
@@ -734,7 +782,7 @@ EOF
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
 	echo hppa1.0-hp-mpeix
 	exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
 	echo hppa1.1-hp-osf
 	exit ;;
     hp8??:OSF1:*:*)
@@ -742,9 +790,9 @@ EOF
 	exit ;;
     i*86:OSF1:*:*)
 	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	    echo "$UNAME_MACHINE"-unknown-osf1mk
 	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
+	    echo "$UNAME_MACHINE"-unknown-osf1
 	fi
 	exit ;;
     parisc*:Lites*:*:*)
@@ -769,127 +817,120 @@ EOF
 	echo c4-convex-bsd
 	exit ;;
     CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
 	      -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     *:UNICOS/mp:*:*)
-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
 	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     5000:UNIX_System_V:4.*:*)
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
 	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
 	exit ;;
     sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	echo sparc-unknown-bsdi"$UNAME_RELEASE"
 	exit ;;
     *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
+	exit ;;
+    arm:FreeBSD:*:*)
+	UNAME_PROCESSOR=`uname -p`
+	set_cc_for_build
+	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_PCS_VFP
+	then
+	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+	else
+	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+	fi
 	exit ;;
     *:FreeBSD:*:*)
 	UNAME_PROCESSOR=`/usr/bin/uname -p`
-	case ${UNAME_PROCESSOR} in
+	case "$UNAME_PROCESSOR" in
 	    amd64)
-		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-	    *)
-		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+		UNAME_PROCESSOR=x86_64 ;;
+	    i386)
+		UNAME_PROCESSOR=i586 ;;
 	esac
+	echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
 	exit ;;
     i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
+	echo "$UNAME_MACHINE"-pc-cygwin
 	exit ;;
     *:MINGW64*:*)
-	echo ${UNAME_MACHINE}-pc-mingw64
+	echo "$UNAME_MACHINE"-pc-mingw64
 	exit ;;
     *:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
+	echo "$UNAME_MACHINE"-pc-mingw32
 	exit ;;
     *:MSYS*:*)
-	echo ${UNAME_MACHINE}-pc-msys
-	exit ;;
-    i*:windows32*:*)
-	# uname -m includes "-pc" on this system.
-	echo ${UNAME_MACHINE}-mingw32
+	echo "$UNAME_MACHINE"-pc-msys
 	exit ;;
     i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
+	echo "$UNAME_MACHINE"-pc-pw32
 	exit ;;
     *:Interix*:*)
-	case ${UNAME_MACHINE} in
+	case "$UNAME_MACHINE" in
 	    x86)
-		echo i586-pc-interix${UNAME_RELEASE}
+		echo i586-pc-interix"$UNAME_RELEASE"
 		exit ;;
 	    authenticamd | genuineintel | EM64T)
-		echo x86_64-unknown-interix${UNAME_RELEASE}
+		echo x86_64-unknown-interix"$UNAME_RELEASE"
 		exit ;;
 	    IA64)
-		echo ia64-unknown-interix${UNAME_RELEASE}
+		echo ia64-unknown-interix"$UNAME_RELEASE"
 		exit ;;
 	esac ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit ;;
-    8664:Windows_NT:*)
-	echo x86_64-pc-mks
-	exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit ;;
     i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
+	echo "$UNAME_MACHINE"-pc-uwin
 	exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-	echo x86_64-unknown-cygwin
-	exit ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
+	echo x86_64-pc-cygwin
 	exit ;;
     prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
 	exit ;;
     *:GNU:*:*)
 	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+	echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
 	exit ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
+    *:Minix:*:*)
+	echo "$UNAME_MACHINE"-unknown-minix
 	exit ;;
     aarch64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -902,58 +943,64 @@ EOF
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     arm*:Linux:*:*)
-	eval $set_cc_for_build
+	set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	    echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	else
 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 		| grep -q __ARM_PCS_VFP
 	    then
-		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
 	    else
-		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+		echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
 	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     cris:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
 	exit ;;
     crisv32:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+	echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
+	exit ;;
+    e2k:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     frv:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     hexagon:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     i*86:Linux:*:*)
-	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
+    k1om:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
+	set_cc_for_build
+	sed 's/^	//' << EOF > "$dummy.c"
 	#undef CPU
 	#undef ${UNAME_MACHINE}
 	#undef ${UNAME_MACHINE}el
@@ -967,64 +1014,70 @@ EOF
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+	test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
 	;;
+    mips64el:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+	exit ;;
     openrisc*:Linux:*:*)
-	echo or1k-unknown-linux-${LIBC}
+	echo or1k-unknown-linux-"$LIBC"
 	exit ;;
     or32:Linux:*:* | or1k*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-${LIBC}
+	echo sparc-unknown-linux-"$LIBC"
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-${LIBC}
+	echo hppa64-unknown-linux-"$LIBC"
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
-	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
-	  *)    echo hppa-unknown-linux-${LIBC} ;;
+	  PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+	  PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+	  *)    echo hppa-unknown-linux-"$LIBC" ;;
 	esac
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-${LIBC}
+	echo powerpc64-unknown-linux-"$LIBC"
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-${LIBC}
+	echo powerpc-unknown-linux-"$LIBC"
 	exit ;;
     ppc64le:Linux:*:*)
-	echo powerpc64le-unknown-linux-${LIBC}
+	echo powerpc64le-unknown-linux-"$LIBC"
 	exit ;;
     ppcle:Linux:*:*)
-	echo powerpcle-unknown-linux-${LIBC}
+	echo powerpcle-unknown-linux-"$LIBC"
+	exit ;;
+    riscv32:Linux:*:* | riscv64:Linux:*:*)
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+	echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
 	exit ;;
     sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
 	exit ;;
     x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
 	exit ;;
     xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1038,34 +1091,34 @@ EOF
 	# I am not positive that other SVR4 systems won't match this,
 	# I just have to hope.  -- rms.
 	# Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
 	exit ;;
     i*86:OS/2:*:*)
 	# If we were able to find `uname', then EMX Unix compatibility
 	# is probably installed.
-	echo ${UNAME_MACHINE}-pc-os2-emx
+	echo "$UNAME_MACHINE"-pc-os2-emx
 	exit ;;
     i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
+	echo "$UNAME_MACHINE"-unknown-stop
 	exit ;;
     i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
+	echo "$UNAME_MACHINE"-unknown-atheos
 	exit ;;
     i*86:syllable:*:*)
-	echo ${UNAME_MACHINE}-pc-syllable
+	echo "$UNAME_MACHINE"-pc-syllable
 	exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
+	echo i386-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	echo "$UNAME_MACHINE"-pc-msdosdjgpp
 	exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+    i*86:*:4.*:*)
+	UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+		echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
 	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+		echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
 	fi
 	exit ;;
     i*86:*:5:[678]*)
@@ -1075,12 +1128,12 @@ EOF
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
 	esac
-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
 	exit ;;
     i*86:*:3.2:*)
 	if test -f /usr/options/cb.name; then
 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+		echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
 	elif /bin/uname -X 2>/dev/null >/dev/null ; then
 		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
 		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1090,9 +1143,9 @@ EOF
 			&& UNAME_MACHINE=i686
 		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
 			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+		echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
 	else
-		echo ${UNAME_MACHINE}-pc-sysv32
+		echo "$UNAME_MACHINE"-pc-sysv32
 	fi
 	exit ;;
     pc:*:*:*)
@@ -1100,7 +1153,7 @@ EOF
 	# uname -m prints for DJGPP always 'pc', but it prints nothing about
 	# the processor, so we play safe by assuming i586.
 	# Note: whatever this is, it MUST be the same as what config.sub
-	# prints for the "djgpp" host, or else GDB configury will decide that
+	# prints for the "djgpp" host, or else GDB configure will decide that
 	# this is a cross-build.
 	echo i586-pc-msdosdjgpp
 	exit ;;
@@ -1112,9 +1165,9 @@ EOF
 	exit ;;
     i860:*:4.*:*) # i860-SVR4
 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	  echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
 	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	  echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
 	fi
 	exit ;;
     mini*:CTIX:SYS*5:*)
@@ -1134,9 +1187,9 @@ EOF
 	test -r /etc/.relid \
 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	  && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+	  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
 	  && { echo i486-ncr-sysv4; exit; } ;;
@@ -1145,28 +1198,28 @@ EOF
 	test -r /etc/.relid \
 	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
 	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+	    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	echo m68k-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     mc68030:UNIX_System_V:4.*:*)
 	echo m68k-atari-sysv4
 	exit ;;
     TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	echo sparc-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	echo rs6000-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	echo powerpc-unknown-lynxos"$UNAME_RELEASE"
 	exit ;;
     SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
+	echo mips-dde-sysv"$UNAME_RELEASE"
 	exit ;;
     RM*:ReliantUNIX-*:*:*)
 	echo mips-sni-sysv4
@@ -1177,7 +1230,7 @@ EOF
     *:SINIX-*:*:*)
 	if uname -p 2>/dev/null >/dev/null ; then
 		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
+		echo "$UNAME_MACHINE"-sni-sysv4
 	else
 		echo ns32k-sni-sysv
 	fi
@@ -1197,23 +1250,23 @@ EOF
 	exit ;;
     i*86:VOS:*:*)
 	# From Paul.Green@stratus.com.
-	echo ${UNAME_MACHINE}-stratus-vos
+	echo "$UNAME_MACHINE"-stratus-vos
 	exit ;;
     *:VOS:*:*)
 	# From Paul.Green@stratus.com.
 	echo hppa1.1-stratus-vos
 	exit ;;
     mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
+	echo m68k-apple-aux"$UNAME_RELEASE"
 	exit ;;
     news*:NEWS-OS:6*:*)
 	echo mips-sony-newsos6
 	exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
 	if [ -d /usr/nec ]; then
-		echo mips-nec-sysv${UNAME_RELEASE}
+		echo mips-nec-sysv"$UNAME_RELEASE"
 	else
-		echo mips-unknown-sysv${UNAME_RELEASE}
+		echo mips-unknown-sysv"$UNAME_RELEASE"
 	fi
 	exit ;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
@@ -1232,46 +1285,56 @@ EOF
 	echo x86_64-unknown-haiku
 	exit ;;
     SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
+	echo sx4-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
+	echo sx5-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
+	echo sx6-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-7:SUPER-UX:*:*)
-	echo sx7-nec-superux${UNAME_RELEASE}
+	echo sx7-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-8:SUPER-UX:*:*)
-	echo sx8-nec-superux${UNAME_RELEASE}
+	echo sx8-nec-superux"$UNAME_RELEASE"
 	exit ;;
     SX-8R:SUPER-UX:*:*)
-	echo sx8r-nec-superux${UNAME_RELEASE}
+	echo sx8r-nec-superux"$UNAME_RELEASE"
+	exit ;;
+    SX-ACE:SUPER-UX:*:*)
+	echo sxace-nec-superux"$UNAME_RELEASE"
 	exit ;;
     Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	echo powerpc-apple-rhapsody"$UNAME_RELEASE"
 	exit ;;
     *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	eval $set_cc_for_build
+	set_cc_for_build
 	if test "$UNAME_PROCESSOR" = unknown ; then
 	    UNAME_PROCESSOR=powerpc
 	fi
-	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
-	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
+	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
 		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		    grep IS_64BIT_ARCH >/dev/null
+		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		       grep IS_64BIT_ARCH >/dev/null
 		then
 		    case $UNAME_PROCESSOR in
 			i386) UNAME_PROCESSOR=x86_64 ;;
 			powerpc) UNAME_PROCESSOR=powerpc64 ;;
 		    esac
 		fi
+		# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+		if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+		       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+		       grep IS_PPC >/dev/null
+		then
+		    UNAME_PROCESSOR=powerpc
+		fi
 	    fi
 	elif test "$UNAME_PROCESSOR" = i386 ; then
 	    # Avoid executing cc on OS X 10.9, as it ships with a stub
@@ -1282,27 +1345,33 @@ EOF
 	    # that Apple uses in portable devices.
 	    UNAME_PROCESSOR=x86_64
 	fi
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
 	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
+	if test "$UNAME_PROCESSOR" = x86; then
 		UNAME_PROCESSOR=i386
 		UNAME_MACHINE=pc
 	fi
-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
 	exit ;;
     *:QNX:*:4*)
 	echo i386-pc-qnx
 	exit ;;
-    NEO-?:NONSTOP_KERNEL:*:*)
-	echo neo-tandem-nsk${UNAME_RELEASE}
+    NEO-*:NONSTOP_KERNEL:*:*)
+	echo neo-tandem-nsk"$UNAME_RELEASE"
 	exit ;;
     NSE-*:NONSTOP_KERNEL:*:*)
-	echo nse-tandem-nsk${UNAME_RELEASE}
+	echo nse-tandem-nsk"$UNAME_RELEASE"
+	exit ;;
+    NSR-*:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk"$UNAME_RELEASE"
 	exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
+    NSV-*:NONSTOP_KERNEL:*:*)
+	echo nsv-tandem-nsk"$UNAME_RELEASE"
+	exit ;;
+    NSX-*:NONSTOP_KERNEL:*:*)
+	echo nsx-tandem-nsk"$UNAME_RELEASE"
 	exit ;;
     *:NonStop-UX:*:*)
 	echo mips-compaq-nonstopux
@@ -1311,18 +1380,19 @@ EOF
 	echo bs2000-siemens-sysv
 	exit ;;
     DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
 	exit ;;
     *:Plan9:*:*)
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
 	# operating systems.
-	if test "$cputype" = "386"; then
+	# shellcheck disable=SC2154
+	if test "$cputype" = 386; then
 	    UNAME_MACHINE=i386
 	else
 	    UNAME_MACHINE="$cputype"
 	fi
-	echo ${UNAME_MACHINE}-unknown-plan9
+	echo "$UNAME_MACHINE"-unknown-plan9
 	exit ;;
     *:TOPS-10:*:*)
 	echo pdp10-unknown-tops10
@@ -1343,14 +1413,14 @@ EOF
 	echo pdp10-unknown-its
 	exit ;;
     SEI:*:*:SEIUX)
-	echo mips-sei-seiux${UNAME_RELEASE}
+	echo mips-sei-seiux"$UNAME_RELEASE"
 	exit ;;
     *:DragonFly:*:*)
-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
 	exit ;;
     *:*VMS:*:*)
 	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-	case "${UNAME_MACHINE}" in
+	case "$UNAME_MACHINE" in
 	    A*) echo alpha-dec-vms ; exit ;;
 	    I*) echo ia64-dec-vms ; exit ;;
 	    V*) echo vax-dec-vms ; exit ;;
@@ -1359,34 +1429,51 @@ EOF
 	echo i386-pc-xenix
 	exit ;;
     i*86:skyos:*:*)
-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
 	exit ;;
     i*86:rdos:*:*)
-	echo ${UNAME_MACHINE}-pc-rdos
+	echo "$UNAME_MACHINE"-pc-rdos
 	exit ;;
     i*86:AROS:*:*)
-	echo ${UNAME_MACHINE}-pc-aros
+	echo "$UNAME_MACHINE"-pc-aros
 	exit ;;
     x86_64:VMkernel:*:*)
-	echo ${UNAME_MACHINE}-unknown-esx
+	echo "$UNAME_MACHINE"-unknown-esx
+	exit ;;
+    amd64:Isilon\ OneFS:*:*)
+	echo x86_64-unknown-onefs
+	exit ;;
+    *:Unleashed:*:*)
+	echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
 	exit ;;
 esac
 
+echo "$0: unable to guess system type" >&2
+
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+    mips:Linux | mips64:Linux)
+	# If we got here on MIPS GNU/Linux, output extra information.
+	cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+	;;
+esac
+
 cat >&2 <<EOF
-$0: unable to guess system type
 
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
 
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
 
 config.guess timestamp = $timestamp
 
@@ -1405,16 +1492,16 @@ hostinfo               = `(hostinfo) 2>/
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
 
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM  = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
 EOF
 
 exit 1
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"

File Added: pkgsrc/net/ntp4/patches/patch-sntp_libevent_build-aux_config.sub
$NetBSD: patch-sntp_libevent_build-aux_config.sub,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- sntp/libevent/build-aux/config.sub.orig	2017-02-01 09:49:25.000000000 +0000
+++ sntp/libevent/build-aux/config.sub
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2014 Free Software Foundation, Inc.
+#   Copyright 1992-2019 Free Software Foundation, Inc.
 
-timestamp='2014-12-03'
+timestamp='2019-01-05'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@ timestamp='2014-12-03'
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -33,7 +33,7 @@ timestamp='2014-12-03'
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -53,12 +53,11 @@ timestamp='2014-12-03'
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
 
 Canonicalize a configuration name.
 
-Operation modes:
+Options:
   -h, --help         print this help, then exit
   -t, --time-stamp   print date of last modification, then exit
   -v, --version      print version number, then exit
@@ -68,7 +67,7 @@ Report bugs and patches to <config-patch
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2019 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -90,12 +89,12 @@ while test $# -gt 0 ; do
     - )	# Use stdin as input.
        break ;;
     -* )
-       echo "$me: invalid option $1$help"
+       echo "$me: invalid option $1$help" >&2
        exit 1 ;;
 
     *local*)
        # First pass through any local machine types.
-       echo $1
+       echo "$1"
        exit ;;
 
     * )
@@ -111,1228 +110,1164 @@ case $# in
     exit 1;;
 esac
 
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
-  kopensolaris*-gnu* | \
-  storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  android-linux)
-    os=-linux-android
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze*)
-		os=
-		basic_machine=$1
-		;;
-	-bluegene*)
-		os=-cnk
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
-	-chorusrdb)
-		os=-chorusrdb
-		basic_machine=$1
-		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco6)
-		os=-sco5v6
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco5v6*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*178)
-		os=-lynxos178
-		;;
-	-lynx*5)
-		os=-lynxos5
-		;;
-	-lynx*)
-		os=-lynxos
+# Split fields of configuration type
+# shellcheck disable=SC2162
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
+
+# Separate into logical components for further validation
+case $1 in
+	*-*-*-*-*)
+		echo Invalid configuration \`"$1"\': more than four components >&2
+		exit 1
 		;;
-	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+	*-*-*-*)
+		basic_machine=$field1-$field2
+		os=$field3-$field4
 		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+	*-*-*)
+		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+		# parts
+		maybe_os=$field2-$field3
+		case $maybe_os in
+			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+			| storm-chaos* | os2-emx* | rtmk-nova*)
+				basic_machine=$field1
+				os=$maybe_os
+				;;
+			android-linux)
+				basic_machine=$field1-unknown
+				os=linux-android
+				;;
+			*)
+				basic_machine=$field1-$field2
+				os=$field3
+				;;
+		esac
 		;;
-	-psos*)
-		os=-psos
+	*-*)
+		# A lone config we happen to match not fitting any pattern
+		case $field1-$field2 in
+			decstation-3100)
+				basic_machine=mips-dec
+				os=
+				;;
+			*-*)
+				# Second component is usually, but not always the OS
+				case $field2 in
+					# Prevent following clause from handling this valid os
+					sun*os*)
+						basic_machine=$field1
+						os=$field2
+						;;
+					# Manufacturers
+					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
+					| convergent* | ncr* | news | 32* | 3600* | 3100* \
+					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+					| ultra | tti* | harris | dolphin | highlevel | gould \
+					| cbm | ns | masscomp | apple | axis | knuth | cray \
+					| microblaze* | sim | cisco \
+					| oki | wec | wrs | winbond)
+						basic_machine=$field1-$field2
+						os=
+						;;
+					*)
+						basic_machine=$field1
+						os=$field2
+						;;
+				esac
+			;;
+		esac
 		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
+	*)
+		# Convert single-component short-hands not valid as part of
+		# multi-component configurations.
+		case $field1 in
+			386bsd)
+				basic_machine=i386-pc
+				os=bsd
+				;;
+			a29khif)
+				basic_machine=a29k-amd
+				os=udi
+				;;
+			adobe68k)
+				basic_machine=m68010-adobe
+				os=scout
+				;;
+			alliant)
+				basic_machine=fx80-alliant
+				os=
+				;;
+			altos | altos3068)
+				basic_machine=m68k-altos
+				os=
+				;;
+			am29k)
+				basic_machine=a29k-none
+				os=bsd
+				;;
+			amdahl)
+				basic_machine=580-amdahl
+				os=sysv
+				;;
+			amiga)
+				basic_machine=m68k-unknown
+				os=
+				;;
+			amigaos | amigados)
+				basic_machine=m68k-unknown
+				os=amigaos
+				;;
+			amigaunix | amix)
+				basic_machine=m68k-unknown
+				os=sysv4
+				;;
+			apollo68)
+				basic_machine=m68k-apollo
+				os=sysv
+				;;
+			apollo68bsd)
+				basic_machine=m68k-apollo
+				os=bsd
+				;;
+			aros)
+				basic_machine=i386-pc
+				os=aros
+				;;
+			aux)
+				basic_machine=m68k-apple
+				os=aux
+				;;
+			balance)
+				basic_machine=ns32k-sequent
+				os=dynix
+				;;
+			blackfin)
+				basic_machine=bfin-unknown
+				os=linux
+				;;
+			cegcc)
+				basic_machine=arm-unknown
+				os=cegcc
+				;;
+			convex-c1)
+				basic_machine=c1-convex
+				os=bsd
+				;;
+			convex-c2)
+				basic_machine=c2-convex
+				os=bsd
+				;;
+			convex-c32)
+				basic_machine=c32-convex
+				os=bsd
+				;;
+			convex-c34)
+				basic_machine=c34-convex
+				os=bsd
+				;;
+			convex-c38)
+				basic_machine=c38-convex
+				os=bsd
+				;;
+			cray)
+				basic_machine=j90-cray
+				os=unicos
+				;;
+			crds | unos)
+				basic_machine=m68k-crds
+				os=
+				;;
+			da30)
+				basic_machine=m68k-da30
+				os=
+				;;
+			decstation | pmax | pmin | dec3100 | decstatn)
+				basic_machine=mips-dec
+				os=
+				;;
+			delta88)
+				basic_machine=m88k-motorola
+				os=sysv3
+				;;
+			dicos)
+				basic_machine=i686-pc
+				os=dicos
+				;;
+			djgpp)
+				basic_machine=i586-pc
+				os=msdosdjgpp
+				;;
+			ebmon29k)
+				basic_machine=a29k-amd
+				os=ebmon
+				;;
+			es1800 | OSE68k | ose68k | ose | OSE)
+				basic_machine=m68k-ericsson
+				os=ose
+				;;
+			gmicro)
+				basic_machine=tron-gmicro
+				os=sysv
+				;;
+			go32)
+				basic_machine=i386-pc
+				os=go32
+				;;
+			h8300hms)
+				basic_machine=h8300-hitachi
+				os=hms
+				;;
+			h8300xray)
+				basic_machine=h8300-hitachi
+				os=xray
+				;;
+			h8500hms)
+				basic_machine=h8500-hitachi
+				os=hms
+				;;
+			harris)
+				basic_machine=m88k-harris
+				os=sysv3
+				;;
+			hp300)
+				basic_machine=m68k-hp
+				;;
+			hp300bsd)
+				basic_machine=m68k-hp
+				os=bsd
+				;;
+			hp300hpux)
+				basic_machine=m68k-hp
+				os=hpux
+				;;
+			hppaosf)
+				basic_machine=hppa1.1-hp
+				os=osf
+				;;
+			hppro)
+				basic_machine=hppa1.1-hp
+				os=proelf
+				;;
+			i386mach)
+				basic_machine=i386-mach
+				os=mach
+				;;
+			vsta)
+				basic_machine=i386-pc
+				os=vsta
+				;;
+			isi68 | isi)
+				basic_machine=m68k-isi
+				os=sysv
+				;;
+			m68knommu)
+				basic_machine=m68k-unknown
+				os=linux
+				;;
+			magnum | m3230)
+				basic_machine=mips-mips
+				os=sysv
+				;;
+			merlin)
+				basic_machine=ns32k-utek
+				os=sysv
+				;;
+			mingw64)
+				basic_machine=x86_64-pc
+				os=mingw64
+				;;
+			mingw32)
+				basic_machine=i686-pc
+				os=mingw32
+				;;
+			mingw32ce)
+				basic_machine=arm-unknown
+				os=mingw32ce
+				;;
+			monitor)
+				basic_machine=m68k-rom68k
+				os=coff
+				;;
+			morphos)
+				basic_machine=powerpc-unknown
+				os=morphos
+				;;
+			moxiebox)
+				basic_machine=moxie-unknown
+				os=moxiebox
+				;;
+			msdos)
+				basic_machine=i386-pc
+				os=msdos
+				;;
+			msys)
+				basic_machine=i686-pc
+				os=msys
+				;;
+			mvs)
+				basic_machine=i370-ibm
+				os=mvs
+				;;
+			nacl)
+				basic_machine=le32-unknown
+				os=nacl
+				;;
+			ncr3000)
+				basic_machine=i486-ncr
+				os=sysv4
+				;;
+			netbsd386)
+				basic_machine=i386-pc
+				os=netbsd
+				;;
+			netwinder)
+				basic_machine=armv4l-rebel
+				os=linux
+				;;
+			news | news700 | news800 | news900)
+				basic_machine=m68k-sony
+				os=newsos
+				;;
+			news1000)
+				basic_machine=m68030-sony
+				os=newsos
+				;;
+			necv70)
+				basic_machine=v70-nec
+				os=sysv
+				;;
+			nh3000)
+				basic_machine=m68k-harris
+				os=cxux
+				;;
+			nh[45]000)
+				basic_machine=m88k-harris
+				os=cxux
+				;;
+			nindy960)
+				basic_machine=i960-intel
+				os=nindy
+				;;
+			mon960)
+				basic_machine=i960-intel
+				os=mon960
+				;;
+			nonstopux)
+				basic_machine=mips-compaq
+				os=nonstopux
+				;;
+			os400)
+				basic_machine=powerpc-ibm
+				os=os400
+				;;
+			OSE68000 | ose68000)
+				basic_machine=m68000-ericsson
+				os=ose
+				;;
+			os68k)
+				basic_machine=m68k-none
+				os=os68k
+				;;
+			paragon)
+				basic_machine=i860-intel
+				os=osf
+				;;
+			parisc)
+				basic_machine=hppa-unknown
+				os=linux
+				;;
+			pw32)
+				basic_machine=i586-unknown
+				os=pw32
+				;;
+			rdos | rdos64)
+				basic_machine=x86_64-pc
+				os=rdos
+				;;
+			rdos32)
+				basic_machine=i386-pc
+				os=rdos
+				;;
+			rom68k)
+				basic_machine=m68k-rom68k
+				os=coff
+				;;
+			sa29200)
+				basic_machine=a29k-amd
+				os=udi
+				;;
+			sei)
+				basic_machine=mips-sei
+				os=seiux
+				;;
+			sequent)
+				basic_machine=i386-sequent
+				os=
+				;;
+			sps7)
+				basic_machine=m68k-bull
+				os=sysv2
+				;;
+			st2000)
+				basic_machine=m68k-tandem
+				os=
+				;;
+			stratus)
+				basic_machine=i860-stratus
+				os=sysv4
+				;;
+			sun2)
+				basic_machine=m68000-sun
+				os=
+				;;
+			sun2os3)
+				basic_machine=m68000-sun
+				os=sunos3
+				;;
+			sun2os4)
+				basic_machine=m68000-sun
+				os=sunos4
+				;;
+			sun3)
+				basic_machine=m68k-sun
+				os=
+				;;
+			sun3os3)
+				basic_machine=m68k-sun
+				os=sunos3
+				;;
+			sun3os4)
+				basic_machine=m68k-sun
+				os=sunos4
+				;;
+			sun4)
+				basic_machine=sparc-sun
+				os=
+				;;
+			sun4os3)
+				basic_machine=sparc-sun
+				os=sunos3
+				;;
+			sun4os4)
+				basic_machine=sparc-sun
+				os=sunos4
+				;;
+			sun4sol2)
+				basic_machine=sparc-sun
+				os=solaris2
+				;;
+			sun386 | sun386i | roadrunner)
+				basic_machine=i386-sun
+				os=
+				;;
+			sv1)
+				basic_machine=sv1-cray
+				os=unicos
+				;;
+			symmetry)
+				basic_machine=i386-sequent
+				os=dynix
+				;;
+			t3e)
+				basic_machine=alphaev5-cray
+				os=unicos
+				;;
+			t90)
+				basic_machine=t90-cray
+				os=unicos
+				;;
+			toad1)
+				basic_machine=pdp10-xkl
+				os=tops20
+				;;
+			tpf)
+				basic_machine=s390x-ibm
+				os=tpf
+				;;
+			udi29k)
+				basic_machine=a29k-amd
+				os=udi
+				;;
+			ultra3)
+				basic_machine=a29k-nyu
+				os=sym1
+				;;
+			v810 | necv810)
+				basic_machine=v810-nec
+				os=none
+				;;
+			vaxv)
+				basic_machine=vax-dec
+				os=sysv
+				;;
+			vms)
+				basic_machine=vax-dec
+				os=vms
+				;;
+			vxworks960)
+				basic_machine=i960-wrs
+				os=vxworks
+				;;
+			vxworks68)
+				basic_machine=m68k-wrs
+				os=vxworks
+				;;
+			vxworks29k)
+				basic_machine=a29k-wrs
+				os=vxworks
+				;;
+			xbox)
+				basic_machine=i686-pc
+				os=mingw32
+				;;
+			ymp)
+				basic_machine=ymp-cray
+				os=unicos
+				;;
+			*)
+				basic_machine=$1
+				os=
+				;;
+		esac
 		;;
 esac
 
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
 case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	1750a | 580 \
-	| a29k \
-	| aarch64 | aarch64_be \
-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-	| am33_2.0 \
-	| arc | arceb \
-	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
-	| avr | avr32 \
-	| be32 | be64 \
-	| bfin \
-	| c4x | c8051 | clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| epiphany \
-	| fido | fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| hexagon \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k | iq2000 \
-	| k1om \
-	| le32 | le64 \
-	| lm32 \
-	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64octeon | mips64octeonel \
-	| mips64orion | mips64orionel \
-	| mips64r5900 | mips64r5900el \
-	| mips64vr | mips64vrel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mips64vr5900 | mips64vr5900el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa32r6 | mipsisa32r6el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64r2 | mipsisa64r2el \
-	| mipsisa64r6 | mipsisa64r6el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipsr5900 | mipsr5900el \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| moxie \
-	| mt \
-	| msp430 \
-	| nds32 | nds32le | nds32be \
-	| nios | nios2 | nios2eb | nios2el \
-	| ns16k | ns32k \
-	| open8 | or1k | or1knd | or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle \
-	| pyramid \
-	| riscv32 | riscv64 \
-	| rl78 | rx \
-	| score \
-	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-	| spu \
-	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-	| ubicom32 \
-	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-	| visium \
-	| we32k \
-	| x86 | xc16x | xstormy16 | xtensa \
-	| z8k | z80)
-		basic_machine=$basic_machine-unknown
-		;;
-	c54x)
-		basic_machine=tic54x-unknown
-		;;
-	c55x)
-		basic_machine=tic55x-unknown
-		;;
-	c6x)
-		basic_machine=tic6x-unknown
-		;;
-	leon|leon[3-9])
-		basic_machine=sparc-$basic_machine
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
-		basic_machine=$basic_machine-unknown
-		os=-none
+	# Here we handle the default manufacturer of certain CPU types.  It is in
+	# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		cpu=hppa1.1
+		vendor=winbond
 		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+	op50n)
+		cpu=hppa1.1
+		vendor=oki
 		;;
-	ms1)
-		basic_machine=mt-unknown
+	op60c)
+		cpu=hppa1.1
+		vendor=oki
 		;;
-
-	strongarm | thumb | xscale)
-		basic_machine=arm-unknown
+	ibm*)
+		cpu=i370
+		vendor=ibm
 		;;
-	xgate)
-		basic_machine=$basic_machine-unknown
-		os=-none
+	orion105)
+		cpu=clipper
+		vendor=highlevel
 		;;
-	xscaleeb)
-		basic_machine=armeb-unknown
+	mac | mpw | mac-mpw)
+		cpu=m68k
+		vendor=apple
 		;;
-
-	xscaleel)
-		basic_machine=armel-unknown
+	pmac | pmac-mpw)
+		cpu=powerpc
+		vendor=apple
 		;;
 
-	# We use `pc' rather than `unknown'
-	# because (1) that's what they normally are, and
-	# (2) the word "unknown" tends to confuse beginning users.
-	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-	# Recognize the basic CPU types with company name.
-	580-* \
-	| a29k-* \
-	| aarch64-* | aarch64_be-* \
-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* | avr32-* \
-	| be32-* | be64-* \
-	| bfin-* | bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| c8051-* | clipper-* | craynv-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| hexagon-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* | iq2000-* \
-	| k1om-* \
-	| le32-* | le64-* \
-	| lm32-* \
-	| m32c-* | m32r-* | m32rle-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
-	| microblaze-* | microblazeel-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64octeon-* | mips64octeonel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64r5900-* | mips64r5900el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mips64vr5900-* | mips64vr5900el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa32r6-* | mipsisa32r6el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64r2-* | mipsisa64r2el-* \
-	| mipsisa64r6-* | mipsisa64r6el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipsr5900-* | mipsr5900el-* \
-	| mipstx39-* | mipstx39el-* \
-	| mmix-* \
-	| mt-* \
-	| msp430-* \
-	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* | nios2eb-* | nios2el-* \
-	| none-* | np1-* | ns16k-* | ns32k-* \
-	| open8-* \
-	| or1k*-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-	| pyramid-* \
-	| rl78-* | romp-* | rs6000-* | rx-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
-	| tahoe-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tile*-* \
-	| tron-* \
-	| ubicom32-* \
-	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-	| vax-* \
-	| visium-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xc16x-* | xps100-* \
-	| xstormy16-* | xtensa*-* \
-	| ymp-* \
-	| z8k-* | z80-*)
-		;;
-	# Recognize the basic CPU types without company name, with glob match.
-	xtensa*)
-		basic_machine=$basic_machine-unknown
-		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
 	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
+		cpu=m68000
+		vendor=att
 		;;
 	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	abacus)
-		basic_machine=abacus-unknown
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amd64)
-		basic_machine=x86_64-pc
-		;;
-	amd64-*)
-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aros)
-		basic_machine=i386-pc
-		os=-aros
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	blackfin)
-		basic_machine=bfin-unknown
-		os=-linux
-		;;
-	blackfin-*)
-		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
+		cpu=we32k
+		vendor=att
 		;;
 	bluegene*)
-		basic_machine=powerpc-ibm
-		os=-cnk
-		;;
-	c54x-*)
-		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c55x-*)
-		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c6x-*)
-		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	cegcc)
-		basic_machine=arm-unknown
-		os=-cegcc
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	craynv)
-		basic_machine=craynv-cray
-		os=-unicosmp
-		;;
-	cr16 | cr16-*)
-		basic_machine=cr16-unknown
-		os=-elf
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	crisv32 | crisv32-* | etraxfs*)
-		basic_machine=crisv32-axis
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	crx)
-		basic_machine=crx-unknown
-		os=-elf
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
+		cpu=powerpc
+		vendor=ibm
+		os=cnk
 		;;
 	decsystem10* | dec10*)
-		basic_machine=pdp10-dec
-		os=-tops10
+		cpu=pdp10
+		vendor=dec
+		os=tops10
 		;;
 	decsystem20* | dec20*)
-		basic_machine=pdp10-dec
-		os=-tops20
+		cpu=pdp10
+		vendor=dec
+		os=tops20
 		;;
 	delta | 3300 | motorola-3300 | motorola-delta \
 	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	dicos)
-		basic_machine=i686-pc
-		os=-dicos
-		;;
-	djgpp)
-		basic_machine=i586-pc
-		os=-msdosdjgpp
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2* | dpx2*-bull)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
+		cpu=m68k
+		vendor=motorola
 		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
+	dpx2*)
+		cpu=m68k
+		vendor=bull
+		os=sysv3
 		;;
 	encore | umax | mmax)
-		basic_machine=ns32k-encore
+		cpu=ns32k
+		vendor=encore
 		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
+	elxsi)
+		cpu=elxsi
+		vendor=elxsi
+		os=${os:-bsd}
 		;;
 	fx2800)
-		basic_machine=i860-alliant
+		cpu=i860
+		vendor=alliant
 		;;
 	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	go32)
-		basic_machine=i386-pc
-		os=-go32
+		cpu=ns32k
+		vendor=ns
 		;;
 	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
+		cpu=hppa1.1
+		vendor=hitachi
+		os=hiuxwe2
 		;;
 	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
+		cpu=hppa1.0
+		vendor=hp
 		;;
 	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
+		cpu=m68000
+		vendor=hp
 		;;
 	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
+		cpu=m68k
+		vendor=hp
 		;;
 	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
+		cpu=hppa1.0
+		vendor=hp
 		;;
 	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
+		cpu=hppa1.1
+		vendor=hp
 		;;
 	hp9k78[0-9] | hp78[0-9])
 		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
+		cpu=hppa1.1
+		vendor=hp
 		;;
 	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
 		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
+		cpu=hppa1.1
+		vendor=hp
 		;;
 	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
+		cpu=hppa1.1
+		vendor=hp
 		;;
 	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppa-next)
-		os=-nextstep3
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
+		cpu=hppa1.0
+		vendor=hp
 		;;
 	i*86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
+		vendor=pc
+		os=sysv32
 		;;
 	i*86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
+		vendor=pc
+		os=sysv4
 		;;
 	i*86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
+		vendor=pc
+		os=sysv
 		;;
 	i*86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	i386-vsta | vsta)
-		basic_machine=i386-unknown
-		os=-vsta
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
+		vendor=pc
+		os=solaris2
+		;;
+	j90 | j90-cray)
+		cpu=j90
+		vendor=cray
+		os=${os:-unicos}
 		;;
 	iris | iris4d)
-		basic_machine=mips-sgi
+		cpu=mips
+		vendor=sgi
 		case $os in
-		    -irix*)
+		    irix*)
 			;;
 		    *)
-			os=-irix4
+			os=irix4
 			;;
 		esac
 		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	leon-*|leon[3-9]-*)
-		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
-		;;
-	m68knommu)
-		basic_machine=m68k-unknown
-		os=-linux
-		;;
-	m68knommu-*)
-		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	microblaze*)
-		basic_machine=microblaze-xilinx
-		;;
-	mingw64)
-		basic_machine=x86_64-pc
-		os=-mingw64
-		;;
-	mingw32)
-		basic_machine=i686-pc
-		os=-mingw32
-		;;
-	mingw32ce)
-		basic_machine=arm-unknown
-		os=-mingw32ce
-		;;
 	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		cpu=m68000
+		vendor=convergent
 		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	moxiebox)
-		basic_machine=moxie-unknown
-		os=-moxiebox
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	ms1-*)
-		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-		;;
-	msys)
-		basic_machine=i686-pc
-		os=-msys
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	nacl)
-		basic_machine=le32-unknown
-		os=-nacl
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
+	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		cpu=m68k
+		vendor=atari
+		os=mint
 		;;
 	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
+		cpu=mips
+		vendor=sony
+		os=newsos
+		;;
+	next | m*-next)
+		cpu=m68k
+		vendor=next
 		case $os in
-		    -nextstep* )
+		    nextstep* )
 			;;
-		    -ns2*)
-		      os=-nextstep2
+		    ns2*)
+		      os=nextstep2
 			;;
 		    *)
-		      os=-nextstep3
+		      os=nextstep3
 			;;
 		esac
 		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
 	np1)
-		basic_machine=np1-gould
-		;;
-	neo-tandem)
-		basic_machine=neo-tandem
-		;;
-	nse-tandem)
-		basic_machine=nse-tandem
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
+		cpu=np1
+		vendor=gould
 		;;
 	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	openrisc | openrisc-*)
-		basic_machine=or32-unknown
-		;;
-	os400)
-		basic_machine=powerpc-ibm
-		os=-os400
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
+		cpu=hppa1.1
+		vendor=oki
+		os=proelf
 		;;
 	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	parisc)
-		basic_machine=hppa-unknown
-		os=-linux
-		;;
-	parisc-*)
-		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
+		cpu=hppa1.1
+		vendor=hitachi
+		os=hiuxwe2
 		;;
 	pbd)
-		basic_machine=sparc-tti
+		cpu=sparc
+		vendor=tti
 		;;
 	pbb)
-		basic_machine=m68k-tti
+		cpu=m68k
+		vendor=tti
 		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
+	pc532)
+		cpu=ns32k
+		vendor=pc532
 		;;
-	pc98)
-		basic_machine=i386-pc
-		;;
-	pc98-*)
-		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2 | pentiumiii | pentium3)
-		basic_machine=i686-pc
-		;;
-	pentium4)
-		basic_machine=i786-pc
+	pn)
+		cpu=pn
+		vendor=gould
 		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+	power)
+		cpu=power
+		vendor=ibm
 		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+	ps2)
+		cpu=i386
+		vendor=ibm
 		;;
-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+	rm[46]00)
+		cpu=mips
+		vendor=siemens
 		;;
-	pentium4-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+	rtpc | rtpc-*)
+		cpu=romp
+		vendor=ibm
 		;;
-	pn)
-		basic_machine=pn-gould
+	sde)
+		cpu=mipsisa32
+		vendor=sde
+		os=${os:-elf}
+		;;
+	simso-wrs)
+		cpu=sparclite
+		vendor=wrs
+		os=vxworks
 		;;
-	power)	basic_machine=power-ibm
+	tower | tower-32)
+		cpu=m68k
+		vendor=ncr
 		;;
-	ppc | ppcbe)	basic_machine=powerpc-unknown
+	vpp*|vx|vx-*)
+		cpu=f301
+		vendor=fujitsu
 		;;
-	ppc-* | ppcbe-*)
-		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+	w65)
+		cpu=w65
+		vendor=wdc
 		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
+	w89k-*)
+		cpu=hppa1.1
+		vendor=winbond
+		os=proelf
 		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+	none)
+		cpu=none
+		vendor=none
 		;;
-	ppc64)	basic_machine=powerpc64-unknown
+	leon|leon[3-9])
+		cpu=sparc
+		vendor=$basic_machine
 		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+	leon-*|leon[3-9]-*)
+		cpu=sparc
+		vendor=`echo "$basic_machine" | sed 's/-.*//'`
 		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
+
+	*-*)
+		# shellcheck disable=SC2162
+		IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
 		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+		cpu=$basic_machine
+		vendor=pc
 		;;
-	ps2)
-		basic_machine=i386-ibm
+	# These rules are duplicated from below for sake of the special case above;
+	# i.e. things that normalized to x86 arches should also default to "pc"
+	pc98)
+		cpu=i386
+		vendor=pc
 		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	rdos | rdos64)
-		basic_machine=x86_64-pc
-		os=-rdos
-		;;
-	rdos32)
-		basic_machine=i386-pc
-		os=-rdos
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
+	x64 | amd64)
+		cpu=x86_64
+		vendor=pc
 		;;
-	rm[46]00)
-		basic_machine=mips-siemens
+	# Recognize the basic CPU types without company name.
+	*)
+		cpu=$basic_machine
+		vendor=unknown
 		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+	# some cases the only manufacturer, in others, it is the most popular.
+	craynv-unknown)
+		vendor=cray
+		os=${os:-unicosmp}
 		;;
-	s390 | s390-*)
-		basic_machine=s390-ibm
+	c90-unknown | c90-cray)
+		vendor=cray
+		os=${os:-unicos}
 		;;
-	s390x | s390x-*)
-		basic_machine=s390x-ibm
+	fx80-unknown)
+		vendor=alliant
 		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
+	romp-unknown)
+		vendor=ibm
 		;;
-	sb1)
-		basic_machine=mipsisa64sb1-unknown
+	mmix-unknown)
+		vendor=knuth
 		;;
-	sb1el)
-		basic_machine=mipsisa64sb1el-unknown
+	microblaze-unknown | microblazeel-unknown)
+		vendor=xilinx
 		;;
-	sde)
-		basic_machine=mipsisa32-sde
-		os=-elf
+	rs6000-unknown)
+		vendor=ibm
 		;;
-	sei)
-		basic_machine=mips-sei
-		os=-seiux
+	vax-unknown)
+		vendor=dec
 		;;
-	sequent)
-		basic_machine=i386-sequent
+	pdp11-unknown)
+		vendor=dec
 		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
+	we32k-unknown)
+		vendor=att
 		;;
-	sh5el)
-		basic_machine=sh5le-unknown
+	cydra-unknown)
+		vendor=cydrome
 		;;
-	sh64)
-		basic_machine=sh64-unknown
+	i370-ibm*)
+		vendor=ibm
 		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
+	orion-unknown)
+		vendor=highlevel
 		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
+	xps-unknown | xps100-unknown)
+		cpu=xps100
+		vendor=honeywell
 		;;
-	spur)
-		basic_machine=spur-unknown
+
+	# Here we normalize CPU types with a missing or matching vendor
+	dpx20-unknown | dpx20-bull)
+		cpu=rs6000
+		vendor=bull
+		os=${os:-bosx}
 		;;
-	st2000)
-		basic_machine=m68k-tandem
+
+	# Here we normalize CPU types irrespective of the vendor
+	amd64-*)
+		cpu=x86_64
 		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
+	blackfin-*)
+		cpu=bfin
+		os=linux
 		;;
-	strongarm-* | thumb-*)
-		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+	c54x-*)
+		cpu=tic54x
 		;;
-	sun2)
-		basic_machine=m68000-sun
+	c55x-*)
+		cpu=tic55x
 		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
+	c6x-*)
+		cpu=tic6x
 		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
+	e500v[12]-*)
+		cpu=powerpc
+		os=$os"spe"
 		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
+	mips3*-*)
+		cpu=mips64
 		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
+	ms1-*)
+		cpu=mt
 		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
+	m68knommu-*)
+		cpu=m68k
+		os=linux
 		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
+	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+		cpu=s12z
 		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
+	openrisc-*)
+		cpu=or32
 		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
+	parisc-*)
+		cpu=hppa
+		os=linux
 		;;
-	sun4)
-		basic_machine=sparc-sun
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		cpu=i586
 		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
+	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+		cpu=i686
 		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		cpu=i686
 		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
+	pentium4-*)
+		cpu=i786
 		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
+	pc98-*)
+		cpu=i386
 		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
+	ppc-* | ppcbe-*)
+		cpu=powerpc
 		;;
-	tile*)
-		basic_machine=$basic_machine-unknown
-		os=-linux-gnu
+	ppcle-* | powerpclittle-*)
+		cpu=powerpcle
 		;;
-	tx39)
-		basic_machine=mipstx39-unknown
+	ppc64-*)
+		cpu=powerpc64
 		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
+	ppc64le-* | powerpc64little-*)
+		cpu=powerpc64le
 		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
+	sb1-*)
+		cpu=mipsisa64sb1
 		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
+	sb1el-*)
+		cpu=mipsisa64sb1el
 		;;
-	tpf)
-		basic_machine=s390x-ibm
-		os=-tpf
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
+	sh5e[lb]-*)
+		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
 		;;
-	vpp*|vx|vx-*)
-		basic_machine=f301-fujitsu
+	spur-*)
+		cpu=spur
 		;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
+	strongarm-* | thumb-*)
+		cpu=arm
 		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
+	tx39-*)
+		cpu=mipstx39
 		;;
-	xbox)
-		basic_machine=i686-pc
-		os=-mingw32
+	tx39el-*)
+		cpu=mipstx39el
 		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
+	x64-*)
+		cpu=x86_64
 		;;
 	xscale-* | xscalee[bl]-*)
-		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	z80-*-coff)
-		basic_machine=z80-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
+		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
 		;;
 
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
+	# Recognize the canonical CPU Types that limit and/or modify the
+	# company names they are paired with.
+	cr16-*)
+		os=${os:-elf}
 		;;
-	romp)
-		basic_machine=romp-ibm
+	crisv32-* | etraxfs*-*)
+		cpu=crisv32
+		vendor=axis
 		;;
-	mmix)
-		basic_machine=mmix-knuth
+	cris-* | etrax*-*)
+		cpu=cris
+		vendor=axis
 		;;
-	rs6000)
-		basic_machine=rs6000-ibm
+	crx-*)
+		os=${os:-elf}
 		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
+	neo-tandem)
+		cpu=neo
+		vendor=tandem
 		;;
-	orion105)
-		basic_machine=clipper-highlevel
+	nse-tandem)
+		cpu=nse
+		vendor=tandem
 		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
+	nsr-tandem)
+		cpu=nsr
+		vendor=tandem
 		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
+	nsv-tandem)
+		cpu=nsv
+		vendor=tandem
+		;;
+	nsx-tandem)
+		cpu=nsx
+		vendor=tandem
+		;;
+	s390-*)
+		cpu=s390
+		vendor=ibm
+		;;
+	s390x-*)
+		cpu=s390x
+		vendor=ibm
 		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
+	tile*-*)
+		os=${os:-linux-gnu}
 		;;
+
 	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
+		# Recognize the canonical CPU types that are allowed with any
+		# company name.
+		case $cpu in
+			1750a | 580 \
+			| a29k \
+			| aarch64 | aarch64_be \
+			| abacus \
+			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+			| alphapca5[67] | alpha64pca5[67] \
+			| am33_2.0 \
+			| amdgcn \
+			| arc | arceb \
+			| arm  | arm[lb]e | arme[lb] | armv* \
+			| avr | avr32 \
+			| asmjs \
+			| ba \
+			| be32 | be64 \
+			| bfin | bs2000 \
+			| c[123]* | c30 | [cjt]90 | c4x \
+			| c8051 | clipper | craynv | csky | cydra \
+			| d10v | d30v | dlx | dsp16xx \
+			| e2k | elxsi | epiphany \
+			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+			| h8300 | h8500 \
+			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+			| hexagon \
+			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
+			| ip2k | iq2000 \
+			| k1om \
+			| le32 | le64 \
+			| lm32 \
+			| m32c | m32r | m32rle \
+			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+			| m88110 | m88k | maxq | mb | mcore | mep | metag \
+			| microblaze | microblazeel \
+			| mips | mipsbe | mipseb | mipsel | mipsle \
+			| mips16 \
+			| mips64 | mips64eb | mips64el \
+			| mips64octeon | mips64octeonel \
+			| mips64orion | mips64orionel \
+			| mips64r5900 | mips64r5900el \
+			| mips64vr | mips64vrel \
+			| mips64vr4100 | mips64vr4100el \
+			| mips64vr4300 | mips64vr4300el \
+			| mips64vr5000 | mips64vr5000el \
+			| mips64vr5900 | mips64vr5900el \
+			| mipsisa32 | mipsisa32el \
+			| mipsisa32r2 | mipsisa32r2el \
+			| mipsisa32r6 | mipsisa32r6el \
+			| mipsisa64 | mipsisa64el \
+			| mipsisa64r2 | mipsisa64r2el \
+			| mipsisa64r6 | mipsisa64r6el \
+			| mipsisa64sb1 | mipsisa64sb1el \
+			| mipsisa64sr71k | mipsisa64sr71kel \
+			| mipsr5900 | mipsr5900el \
+			| mipstx39 | mipstx39el \
+			| mmix \
+			| mn10200 | mn10300 \
+			| moxie \
+			| mt \
+			| msp430 \
+			| nds32 | nds32le | nds32be \
+			| nfp \
+			| nios | nios2 | nios2eb | nios2el \
+			| none | np1 | ns16k | ns32k | nvptx \
+			| open8 \
+			| or1k* \
+			| or32 \
+			| orion \
+			| picochip \
+			| pdp10 | pdp11 | pj | pjl | pn | power \
+			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+			| pru \
+			| pyramid \
+			| riscv | riscv32 | riscv64 \
+			| rl78 | romp | rs6000 | rx \
+			| score \
+			| sh | shl \
+			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+			| sparclite \
+			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+			| spu \
+			| tahoe \
+			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+			| tron \
+			| ubicom32 \
+			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+			| vax \
+			| visium \
+			| w65 | wasm32 \
+			| we32k \
+			| x86 | x86_64 | xc16x | xgate | xps100 \
+			| xstormy16 | xtensa* \
+			| ymp \
+			| z8k | z80)
+				;;
+
+			*)
+				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+				exit 1
+				;;
+		esac
 		;;
 esac
 
 # Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+case $vendor in
+	digital*)
+		vendor=dec
 		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+	commodore*)
+		vendor=cbm
 		;;
 	*)
 		;;
@@ -1340,197 +1275,246 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if [ x"$os" != x"" ]
+if [ x$os != x ]
 then
 case $os in
-	# First match some system type aliases
-	# that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-auroraux)
-		os=-auroraux
+	# First match some system type aliases that might get confused
+	# with valid system types.
+	# solaris* is a basic system type, with this one exception.
+	auroraux)
+		os=auroraux
 		;;
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+	bluegene*)
+		os=cnk
 		;;
-	-solaris)
-		os=-solaris2
+	solaris1 | solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
 		;;
-	-svr4*)
-		os=-sysv4
+	solaris)
+		os=solaris2
 		;;
-	-unixware*)
-		os=-sysv4.2uw
+	unixware*)
+		os=sysv4.2uw
 		;;
-	-gnu/linux*)
+	gnu/linux*)
 		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
 		;;
-	# First accept the basic system types.
+	# es1800 is here to avoid being matched by es* (a different OS)
+	es1800*)
+		os=ose
+		;;
+	# Some version numbers need modification
+	chorusos*)
+		os=chorusos
+		;;
+	isc)
+		os=isc2.2
+		;;
+	sco6)
+		os=sco5v6
+		;;
+	sco5)
+		os=sco3.2v5
+		;;
+	sco4)
+		os=sco3.2v4
+		;;
+	sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		;;
+	sco3.2v[4-9]* | sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		;;
+	scout)
+		# Don't match below
+		;;
+	sco*)
+		os=sco3.2v2
+		;;
+	psos*)
+		os=psos
+		;;
+	# Now accept the basic system types.
 	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* | -plan9* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* | -aros* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -bitrig* | -openbsd* | -solidbsd* \
-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* | -cegcc* \
-	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+	# Each alternative MUST end in a * to match a version number.
+	# sysv* is not here because it comes later, after sysvr4.
+	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+	     | sym* | kopensolaris* | plan9* \
+	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+	     | aos* | aros* | cloudabi* | sortix* \
+	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+	     | knetbsd* | mirbsd* | netbsd* \
+	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
+	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+	     | chorusrdb* | cegcc* | glidix* \
+	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+	     | linux-newlib* | linux-musl* | linux-uclibc* \
+	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+	     | interix* | uwin* | mks* | rhapsody* | darwin* \
+	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
+	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
+	     | os2* | vos* | palmos* | uclinux* | nucleus* \
+	     | morphos* | superux* | rtmk* | windiss* \
+	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+	     | midnightbsd* | amdhsa* | unleashed* | emscripten*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
-	-qnx*)
-		case $basic_machine in
-		    x86-* | i*86-*)
+	qnx*)
+		case $cpu in
+		    x86 | i*86)
 			;;
 		    *)
-			os=-nto$os
+			os=nto-$os
 			;;
 		esac
 		;;
-	-nto-qnx*)
+	hiux*)
+		os=hiuxwe2
 		;;
-	-nto*)
-		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+	nto-qnx*)
 		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+	nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
 		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
+	sim | xray | os68k* | v88r* \
+	    | windows* | osx | abug | netware* | os9* \
+	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
 		;;
-	-linux-dietlibc)
-		os=-linux-dietlibc
+	linux-dietlibc)
+		os=linux-dietlibc
 		;;
-	-linux*)
+	linux*)
 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
 		;;
-	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+	lynx*178)
+		os=lynxos178
+		;;
+	lynx*5)
+		os=lynxos5
 		;;
-	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+	lynx*)
+		os=lynxos
 		;;
-	-opened*)
-		os=-openedition
+	mac*)
+		os=`echo "$os" | sed -e 's|mac|macos|'`
 		;;
-	-os400*)
-		os=-os400
+	opened*)
+		os=openedition
 		;;
-	-wince*)
-		os=-wince
+	os400*)
+		os=os400
 		;;
-	-osfrose*)
-		os=-osfrose
+	sunos5*)
+		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
 		;;
-	-osf*)
-		os=-osf
+	sunos6*)
+		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
 		;;
-	-utek*)
-		os=-bsd
+	wince*)
+		os=wince
 		;;
-	-dynix*)
-		os=-bsd
+	utek*)
+		os=bsd
 		;;
-	-acis*)
-		os=-aos
+	dynix*)
+		os=bsd
 		;;
-	-atheos*)
-		os=-atheos
+	acis*)
+		os=aos
 		;;
-	-syllable*)
-		os=-syllable
+	atheos*)
+		os=atheos
 		;;
-	-386bsd)
-		os=-bsd
+	syllable*)
+		os=syllable
+		;;
+	386bsd)
+		os=bsd
 		;;
-	-ctix* | -uts*)
-		os=-sysv
+	ctix* | uts*)
+		os=sysv
 		;;
-	-nova*)
-		os=-rtmk-nova
+	nova*)
+		os=rtmk-nova
 		;;
-	-ns2 )
-		os=-nextstep2
+	ns2)
+		os=nextstep2
 		;;
-	-nsk*)
-		os=-nsk
+	nsk*)
+		os=nsk
 		;;
 	# Preserve the version number of sinix5.
-	-sinix5.*)
+	sinix5.*)
 		os=`echo $os | sed -e 's|sinix|sysv|'`
 		;;
-	-sinix*)
-		os=-sysv4
+	sinix*)
+		os=sysv4
 		;;
-	-tpf*)
-		os=-tpf
+	tpf*)
+		os=tpf
 		;;
-	-triton*)
-		os=-sysv3
+	triton*)
+		os=sysv3
 		;;
-	-oss*)
-		os=-sysv3
+	oss*)
+		os=sysv3
 		;;
-	-svr4)
-		os=-sysv4
+	svr4*)
+		os=sysv4
 		;;
-	-svr3)
-		os=-sysv3
+	svr3)
+		os=sysv3
 		;;
-	-sysvr4)
-		os=-sysv4
+	sysvr4)
+		os=sysv4
 		;;
-	# This must come after -sysvr4.
-	-sysv*)
+	# This must come after sysvr4.
+	sysv*)
 		;;
-	-ose*)
-		os=-ose
+	ose*)
+		os=ose
 		;;
-	-es1800*)
-		os=-ose
+	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+		os=mint
 		;;
-	-xenix)
-		os=-xenix
+	zvmoe)
+		os=zvmoe
 		;;
-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-		os=-mint
+	dicos*)
+		os=dicos
 		;;
-	-aros*)
-		os=-aros
+	pikeos*)
+		# Until real need of OS specific support for
+		# particular features comes up, bare metal
+		# configurations are quite functional.
+		case $cpu in
+		    arm*)
+			os=eabi
+			;;
+		    *)
+			os=elf
+			;;
+		esac
 		;;
-	-zvmoe)
-		os=-zvmoe
+	nacl*)
 		;;
-	-dicos*)
-		os=-dicos
+	ios)
 		;;
-	-nacl*)
+	none)
 		;;
-	-none)
+	*-eabi)
 		;;
 	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
 		exit 1
 		;;
 esac
@@ -1546,261 +1530,265 @@ else
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
-case $basic_machine in
+case $cpu-$vendor in
 	score-*)
-		os=-elf
+		os=elf
 		;;
 	spu-*)
-		os=-elf
+		os=elf
 		;;
 	*-acorn)
-		os=-riscix1.2
+		os=riscix1.2
 		;;
 	arm*-rebel)
-		os=-linux
+		os=linux
 		;;
 	arm*-semi)
-		os=-aout
+		os=aout
 		;;
 	c4x-* | tic4x-*)
-		os=-coff
+		os=coff
 		;;
 	c8051-*)
-		os=-elf
+		os=elf
+		;;
+	clipper-intergraph)
+		os=clix
 		;;
 	hexagon-*)
-		os=-elf
+		os=elf
 		;;
 	tic54x-*)
-		os=-coff
+		os=coff
 		;;
 	tic55x-*)
-		os=-coff
+		os=coff
 		;;
 	tic6x-*)
-		os=-coff
+		os=coff
 		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
-		os=-tops20
+		os=tops20
 		;;
 	pdp11-*)
-		os=-none
+		os=none
 		;;
 	*-dec | vax-*)
-		os=-ultrix4.2
+		os=ultrix4.2
 		;;
 	m68*-apollo)
-		os=-domain
+		os=domain
 		;;
 	i386-sun)
-		os=-sunos4.0.2
+		os=sunos4.0.2
 		;;
 	m68000-sun)
-		os=-sunos3
+		os=sunos3
 		;;
 	m68*-cisco)
-		os=-aout
+		os=aout
 		;;
 	mep-*)
-		os=-elf
+		os=elf
 		;;
 	mips*-cisco)
-		os=-elf
+		os=elf
 		;;
 	mips*-*)
-		os=-elf
+		os=elf
 		;;
 	or32-*)
-		os=-coff
+		os=coff
 		;;
 	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
+		os=sysv3
 		;;
 	sparc-* | *-sun)
-		os=-sunos4.1.1
+		os=sunos4.1.1
 		;;
-	*-be)
-		os=-beos
+	pru-*)
+		os=elf
 		;;
-	*-haiku)
-		os=-haiku
+	*-be)
+		os=beos
 		;;
 	*-ibm)
-		os=-aix
+		os=aix
 		;;
 	*-knuth)
-		os=-mmixware
+		os=mmixware
 		;;
 	*-wec)
-		os=-proelf
+		os=proelf
 		;;
 	*-winbond)
-		os=-proelf
+		os=proelf
 		;;
 	*-oki)
-		os=-proelf
+		os=proelf
 		;;
 	*-hp)
-		os=-hpux
+		os=hpux
 		;;
 	*-hitachi)
-		os=-hiux
+		os=hiux
 		;;
 	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
+		os=sysv
 		;;
 	*-cbm)
-		os=-amigaos
+		os=amigaos
 		;;
 	*-dg)
-		os=-dgux
+		os=dgux
 		;;
 	*-dolphin)
-		os=-sysv3
+		os=sysv3
 		;;
 	m68k-ccur)
-		os=-rtu
+		os=rtu
 		;;
 	m88k-omron*)
-		os=-luna
+		os=luna
 		;;
-	*-next )
-		os=-nextstep
+	*-next)
+		os=nextstep
 		;;
 	*-sequent)
-		os=-ptx
+		os=ptx
 		;;
 	*-crds)
-		os=-unos
+		os=unos
 		;;
 	*-ns)
-		os=-genix
+		os=genix
 		;;
 	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
+		os=mvs
 		;;
 	*-gould)
-		os=-sysv
+		os=sysv
 		;;
 	*-highlevel)
-		os=-bsd
+		os=bsd
 		;;
 	*-encore)
-		os=-bsd
+		os=bsd
 		;;
 	*-sgi)
-		os=-irix
+		os=irix
 		;;
 	*-siemens)
-		os=-sysv4
+		os=sysv4
 		;;
 	*-masscomp)
-		os=-rtu
+		os=rtu
 		;;
 	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
+		os=uxpv
 		;;
 	*-rom68k)
-		os=-coff
+		os=coff
 		;;
 	*-*bug)
-		os=-coff
+		os=coff
 		;;
 	*-apple)
-		os=-macos
+		os=macos
 		;;
 	*-atari*)
-		os=-mint
+		os=mint
+		;;
+	*-wrs)
+		os=vxworks
 		;;
 	*)
-		os=-none
+		os=none
 		;;
 esac
 fi
 
 # Here we handle the case where we know the os, and the CPU type, but not the
 # manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
+case $vendor in
+	unknown)
 		case $os in
-			-riscix*)
+			riscix*)
 				vendor=acorn
 				;;
-			-sunos*)
+			sunos*)
 				vendor=sun
 				;;
-			-cnk*|-aix*)
+			cnk*|-aix*)
 				vendor=ibm
 				;;
-			-beos*)
+			beos*)
 				vendor=be
 				;;
-			-hpux*)
+			hpux*)
 				vendor=hp
 				;;
-			-mpeix*)
+			mpeix*)
 				vendor=hp
 				;;
-			-hiux*)
+			hiux*)
 				vendor=hitachi
 				;;
-			-unos*)
+			unos*)
 				vendor=crds
 				;;
-			-dgux*)
+			dgux*)
 				vendor=dg
 				;;
-			-luna*)
+			luna*)
 				vendor=omron
 				;;
-			-genix*)
+			genix*)
 				vendor=ns
 				;;
-			-mvs* | -opened*)
+			clix*)
+				vendor=intergraph
+				;;
+			mvs* | opened*)
 				vendor=ibm
 				;;
-			-os400*)
+			os400*)
 				vendor=ibm
 				;;
-			-ptx*)
+			ptx*)
 				vendor=sequent
 				;;
-			-tpf*)
+			tpf*)
 				vendor=ibm
 				;;
-			-vxsim* | -vxworks* | -windiss*)
+			vxsim* | vxworks* | windiss*)
 				vendor=wrs
 				;;
-			-aux*)
+			aux*)
 				vendor=apple
 				;;
-			-hms*)
+			hms*)
 				vendor=hitachi
 				;;
-			-mpw* | -macos*)
+			mpw* | macos*)
 				vendor=apple
 				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
 				vendor=atari
 				;;
-			-vos*)
+			vos*)
 				vendor=stratus
 				;;
 		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
 		;;
 esac
 
-echo $basic_machine$os
+echo "$cpu-$vendor-$os"
 exit
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"

File Added: pkgsrc/net/ntp4/patches/patch-sntp_libopts_autoopts.h
$NetBSD: patch-sntp_libopts_autoopts.h,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- sntp/libopts/autoopts.h.orig	2015-04-26 18:43:14.000000000 +0000
+++ sntp/libopts/autoopts.h
@@ -32,7 +32,11 @@
 
 #ifndef AUTOGEN_AUTOOPTS_H
 #define AUTOGEN_AUTOOPTS_H
+#if 0
 #include <stdnoreturn.h>
+#else
+#define noreturn __dead
+#endif
 
 #define AO_NAME_LIMIT           127
 #define AO_NAME_SIZE            ((size_t)(AO_NAME_LIMIT + 1))
@@ -452,7 +456,7 @@ typedef enum { AOFLAG_TABLE } ao_flags_t
 #undef  _aof_
 
 static char const   zNil[] = "";
-static arg_types_t  argTypes             = { NULL };
+static arg_types_t  argTypes             = { .pzStr = NULL };
 static char         line_fmt_buf[32];
 static bool         displayEnum          = false;
 static char const   pkgdatadir_default[] = PKGDATADIR;

File Added: pkgsrc/net/ntp4/patches/patch-sntp_libopts_enum.c
$NetBSD: patch-sntp_libopts_enum.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- sntp/libopts/enum.c.orig	2015-12-05 20:28:17.000000000 +0000
+++ sntp/libopts/enum.c
@@ -253,7 +253,7 @@ find_name(char const * name, tOptions * 
 char const *
 optionKeywordName(tOptDesc * pOD, unsigned int enum_val)
 {
-    tOptDesc od = { 0 };
+    tOptDesc od = { .optIndex = 0 };
     od.optArg.argEnum = enum_val;
 
     (*(pOD->pOptProc))(OPTPROC_RETURN_VALNAME, &od );

File Added: pkgsrc/net/ntp4/patches/patch-sntp_libopts_usage.c
$NetBSD: patch-sntp_libopts_usage.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- sntp/libopts/usage.c.orig	2015-04-26 18:43:15.000000000 +0000
+++ sntp/libopts/usage.c
@@ -762,7 +762,7 @@ prt_vendor_opts(tOptions * opts, char co
         OPTST_NO_USAGE_MASK | OPTST_DOCUMENT;
 
     static char const vfmtfmt[] = "%%-%us %%s\n";
-    char vfmt[sizeof(vfmtfmt)];
+    char vfmt[sizeof(vfmtfmt)+10]; /* strlen(UINT_MAX) */
 
     /*
      *  Only handle client specified options.  The "vendor option" follows

File Added: pkgsrc/net/ntp4/patches/patch-util_ntp-keygen.c
$NetBSD: patch-util_ntp-keygen.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- util/ntp-keygen.c.orig	2020-03-04 01:38:15.000000000 +0000
+++ util/ntp-keygen.c
@@ -275,17 +275,19 @@ followlink(
 	)
 {
 	int len;
+	char result[2048];
 
 	REQUIRE(bufsiz > 0);
 
-	len = readlink(fname, fname, (int)bufsiz);
-	if (len < 0 ) {
+	len = readlink(fname, result, sizeof(result));
+	if (len < 0) {
 		fname[0] = '\0';
 		return;
 	}
 	if (len > (int)bufsiz - 1)
 		len = (int)bufsiz - 1;
-	fname[len] = '\0';
+	result[len] = '\0';
+	strcpy(fname, result);
 }
 
 

File Added: pkgsrc/net/ntp4/patches/patch-util_ntptime.c
$NetBSD: patch-util_ntptime.c,v 1.1 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- util/ntptime.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ util/ntptime.c
@@ -98,7 +98,7 @@ main(
 	struct timex ntx, _ntx;
 	int	times[20] = { 0 };
 	double ftemp, gtemp, htemp;
-	double nscale = 1.0;			/* assume usec scale for now */
+	volatile double nscale = 1.0;			/* assume usec scale for now */
 	long time_frac;				/* ntv.time.tv_frac_sec (us/ns) */
 	l_fp ts;
 	volatile unsigned ts_mask = TS_MASK_US;		/* defaults to 20 bits (us) */

File Added: pkgsrc/net/ntp4/patches/patch-ntpd_ntp__io.c
$NetBSD: patch-ntpd_ntp__io.c,v 1.3 2020/06/21 15:10:47 taca Exp $

* Changes from NetBSD base.

--- ntpd/ntp_io.c.orig	2020-03-03 23:41:29.000000000 +0000
+++ ntpd/ntp_io.c
@@ -4836,6 +4836,50 @@ init_async_notifications()
 #else
 	int fd = socket(PF_ROUTE, SOCK_RAW, 0);
 #endif
+#ifdef RO_MSGFILTER
+	unsigned char msgfilter[] = {
+#ifdef RTM_NEWADDR
+		RTM_NEWADDR,
+#endif
+#ifdef RTM_DELADDR
+		RTM_DELADDR,
+#endif
+#ifdef RTM_ADD
+		RTM_ADD,
+#endif
+#ifdef RTM_DELETE
+		RTM_DELETE,
+#endif
+#ifdef RTM_REDIRECT
+		RTM_REDIRECT,
+#endif
+#ifdef RTM_CHANGE
+		RTM_CHANGE,
+#endif
+#ifdef RTM_LOSING
+		RTM_LOSING,
+#endif
+#ifdef RTM_IFINFO
+		RTM_IFINFO,
+#endif
+#ifdef RTM_IFANNOUNCE
+		RTM_IFANNOUNCE,
+#endif
+#ifdef RTM_NEWLINK
+		RTM_NEWLINK,
+#endif
+#ifdef RTM_DELLINK
+		RTM_DELLINK,
+#endif
+#ifdef RTM_NEWROUTE
+		RTM_NEWROUTE,
+#endif
+#ifdef RTM_DELROUTE
+		RTM_DELROUTE,
+#endif
+	};
+#endif /* !RO_MSGFILTER */
+
 	if (fd < 0) {
 		msyslog(LOG_ERR,
 			"unable to open routing socket (%m) - using polled interface update");
@@ -4856,6 +4900,11 @@ init_async_notifications()
 		return;
 	}
 #endif
+#ifdef RO_MSGFILTER
+	if (setsockopt(fd, PF_ROUTE, RO_MSGFILTER,
+	    &msgfilter, sizeof(msgfilter)) == -1)
+		msyslog(LOG_ERR, "RO_MSGFILTER: %m");
+#endif
 	make_socket_nonblocking(fd);
 #if defined(HAVE_SIGNALED_IO)
 	init_socket_sig(fd);