From c221d3e5862e249b03aa7569d5fec6389294fb22 Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Thu, 6 Sep 2018 11:15:15 -0400
Subject: fix issues from public functions defined without declaration visible

policy is that all public functions which have a public declaration
should be defined in a context where that public declaration is
visible, to avoid preventable type mismatches.

an audit performed using GCC's -Wmissing-declarations turned up the
violations corrected here. in some cases the public header had not
been included; in others, a feature test macro needed to make the
declaration visible had been omitted.

in the case of gethostent and getnetent, the omission seems to have
been intentional, as a hack to admit a single stub definition for both
functions. this kind of hack is no longer acceptable; it's UB and
would not fly with LTO or advanced toolchains. the hack is undone to
make exposure of the declarations possible.
---
 src/network/ent.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

(limited to 'src/network')

diff --git a/src/network/ent.c b/src/network/ent.c
index ececdc48..5abea637 100644
--- a/src/network/ent.c
+++ b/src/network/ent.c
@@ -1,10 +1,16 @@
+#include <netdb.h>
 #include "libc.h"
 
 void sethostent(int x)
 {
 }
 
-void *gethostent()
+struct hostent *gethostent()
+{
+	return 0;
+}
+
+struct netent *getnetent()
 {
 	return 0;
 }
@@ -14,5 +20,4 @@ void endhostent(void)
 }
 
 weak_alias(sethostent, setnetent);
-weak_alias(gethostent, getnetent);
 weak_alias(endhostent, endnetent);
-- 
cgit v1.2.3-70-g09d2