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.
+#define _GNU_SOURCE
#include <utmpx.h>
#include <stddef.h>
#include <errno.h>
+#define _BSD_SOURCE
+#include <unistd.h>
#include <errno.h>
#include "syscall.h"
+#define _GNU_SOURCE
#include <stdarg.h>
#include <unistd.h>
+#include <sched.h>
#include "pthread_impl.h"
#include "syscall.h"
+#define _BSD_SOURCE
+#include <unistd.h>
#include <stdint.h>
#include <errno.h>
#include "syscall.h"
+#define _BSD_SOURCE
+#include <unistd.h>
#include <sys/random.h>
#include <pthread.h>
#include <errno.h>
+#define _BSD_SOURCE
#include <unistd.h>
#include "libc.h"
+#define _BSD_SOURCE
+#include <unistd.h>
#include "syscall.h"
#include <stdarg.h>
+#include <netdb.h>
#include "libc.h"
void sethostent(int x)
{
}
-void *gethostent()
+struct hostent *gethostent()
+{
+ return 0;
+}
+
+struct netent *getnetent()
{
return 0;
}
}
weak_alias(sethostent, setnetent);
-weak_alias(gethostent, getnetent);
weak_alias(endhostent, endnetent);
#include "stdio_impl.h"
+#include <stdio_ext.h>
size_t __freadahead(FILE *f)
{
+#include <wchar.h>
#include "stdio_impl.h"
#include "locale_impl.h"
+#define _GNU_SOURCE
#include "pthread_impl.h"
#include <string.h>