tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

gethostbyname_r



We have a definition of the symbol gethostbyname_r in libc.  It is
problematic because:

1. It is not compatible with the glibc definition of the symbol.
2. It is not declared anywhere in a header file we install.

So autoconf will detect that the symbol exists, a C compiler with
-Wno-error will invent a bogus implicit declaration for the symbol,
and there will be mysterious run-time misbheaviour because the calling
code doesn't match the expectations of the gethostbyname_r definition.

As far as I can tell, it has *never* been possible to legitimately use
our gethostbyname_r symbol.  The above scenario has already caused
trouble in various pkgsrc packages.  See, for example,
<https://mail-index.netbsd.org/netbsd-users/2016/06/30/msg018651.html>.

Can we remove gethostbyname_r now, before the mythical libc bump?

Since it has never been possible to use the symbol legitimately, any
application that *would* break if we removed it is *already* broken.
The only difference is that if we remove the symbol from libc, then we
get an immediate report that the application is broken, instead of
mysterious run-time misbehaviour some time in the future.

The same goes for the symbols:

endhostent_r
gethostbyaddr_r
gethostbyname2_r
gethostbyname_r
gethostent_r
sethostent_r


Home | Main Index | Thread Index | Old Index