--- a/ping_common.h
+++ b/ping_common.h
@@ -2,6 +2,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <time.h>
+#include <sys/types.h>
 #include <sys/param.h>
 #include <sys/socket.h>
 #include <linux/sockios.h>
@@ -11,7 +12,7 @@
 #include <sys/ioctl.h>
 #include <net/if.h>
 #include <sys/uio.h>
-#include <sys/poll.h>
+#include <poll.h>
 #include <ctype.h>
 #include <errno.h>
 #include <string.h>
@@ -24,6 +25,10 @@
 
 #include "SNAPSHOT.h"
 
+#ifndef HZ
+#define HZ 100
+#endif
+
 #define	DEFDATALEN	(64 - 8)	/* default data length */
 
 #define	MAXWAIT		10		/* max seconds to wait for response */
--- a/clockdiff.c
+++ b/clockdiff.c
@@ -13,8 +13,6 @@
 #include <netinet/in.h>
 #include <netinet/ip.h>
 #include <netinet/ip_icmp.h>
-#define TSPTYPES
-#include <protocols/timed.h>
 #include <fcntl.h>
 #include <netdb.h>
 #include <arpa/inet.h>
--- a/tracepath.c
+++ b/tracepath.c
@@ -13,6 +13,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/socket.h>
+#include <sys/time.h>
 #include <linux/types.h>
 #include <linux/errqueue.h>
 #include <errno.h>
--- a/ping.c
+++ b/ping.c
@@ -661,8 +661,15 @@ int send_probe()
 
 	do {
 		static struct iovec iov = {outpack, 0};
-		static struct msghdr m = { &whereto, sizeof(whereto),
-						   &iov, 1, &cmsg, 0, 0 };
+		static struct msghdr m = {
+			.msg_name = &whereto,
+			.msg_namelen = sizeof(whereto),
+			.msg_iov = &iov,
+			.msg_iovlen = 1,
+			.msg_control = &cmsg,
+			.msg_controllen = 0,
+			.msg_flags = 0
+		};
 		m.msg_controllen = cmsg_len;
 		iov.iov_len = cc;
 
