Issue #28538: On Darwin net/if.h requires that sys/socket.h be included beforehand.
diff --git a/configure b/configure
index a997376..a05009a 100755
--- a/configure
+++ b/configure
@@ -12645,13 +12645,25 @@
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-# On Android API level 24 if_nameindex() is available, but the if_nameindex
-# structure is not defined.
+# On Android API level 24 with android-ndk-r13, if_nameindex() is available,
+# but the if_nameindex structure is not defined.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for if_nameindex" >&5
 $as_echo_n "checking for if_nameindex... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+#endif
 #ifdef HAVE_NET_IF_H
 # include <net/if.h>
 #endif
diff --git a/configure.ac b/configure.ac
index 61fad00..8099e27 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3736,10 +3736,22 @@
   AC_MSG_RESULT(no)
 ])
 
-# On Android API level 24 if_nameindex() is available, but the if_nameindex
-# structure is not defined.
+# On Android API level 24 with android-ndk-r13, if_nameindex() is available,
+# but the if_nameindex structure is not defined.
 AC_MSG_CHECKING(for if_nameindex)
 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+#endif
 #ifdef HAVE_NET_IF_H
 # include <net/if.h>
 #endif