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.
This commit is contained in:
+7
-2
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user