diff -Naur a/mkfs.ubifs/hashtable/hashtable_itr.c b/mkfs.ubifs/hashtable/hashtable_itr.c
--- a/mkfs.ubifs/hashtable/hashtable_itr.c	2016-09-08 14:29:50.784056663 -0700
+++ b/mkfs.ubifs/hashtable/hashtable_itr.c	2016-09-08 16:09:35.255312282 -0700
@@ -35,18 +35,6 @@
 }
 
 /*****************************************************************************/
-/* key      - return the key of the (key,value) pair at the current position */
-/* value    - return the value of the (key,value) pair at the current position */
-
-void *
-hashtable_iterator_key(struct hashtable_itr *i)
-{ return i->e->k; }
-
-void *
-hashtable_iterator_value(struct hashtable_itr *i)
-{ return i->e->v; }
-
-/*****************************************************************************/
 /* advance - advance the iterator to the next element
  *           returns zero if advanced to end of table */
 
diff -Naur a/mkfs.ubifs/hashtable/hashtable_itr.h b/mkfs.ubifs/hashtable/hashtable_itr.h
--- a/mkfs.ubifs/hashtable/hashtable_itr.h	2016-09-08 14:29:50.784056663 -0700
+++ b/mkfs.ubifs/hashtable/hashtable_itr.h	2016-09-08 16:09:35.255312282 -0700
@@ -28,7 +28,7 @@
 /* hashtable_iterator_key
  * - return the value of the (key,value) pair at the current position */
 
-extern inline void *
+static inline void *
 hashtable_iterator_key(struct hashtable_itr *i)
 {
     return i->e->k;
@@ -37,7 +37,7 @@
 /*****************************************************************************/
 /* value - return the value of the (key,value) pair at the current position */
 
-extern inline void *
+static inline void *
 hashtable_iterator_value(struct hashtable_itr *i)
 {
     return i->e->v;
diff -Naur a/recv_image.c b/recv_image.c
--- a/recv_image.c	2016-09-08 14:29:50.792056763 -0700
+++ b/recv_image.c	2016-09-08 16:09:35.263312383 -0700
@@ -1,10 +1,10 @@
 
 #define _XOPEN_SOURCE 500
+#define _BSD_SOURCE	/* struct ip_mreq */
 
 #include <errno.h>
 #include <error.h>
 #include <stdio.h>
-#define __USE_GNU
 #include <netdb.h>
 #include <stdlib.h>
 #include <string.h>
diff -Naur a/serve_image.c b/serve_image.c
--- a/serve_image.c	2016-09-08 14:29:50.788056713 -0700
+++ b/serve_image.c	2016-09-08 16:09:35.259312333 -0700
@@ -1,4 +1,4 @@
-#define _POSIX_C_SOURCE 199309
+#define _POSIX_C_SOURCE 200112L
 
 #include <time.h>
 
