HAVE_GCC3. if this is set, we also set USE_TOOLS_TOOLCHAIN=no. change
the definition of the former to be restricted to whether tools/toolchain
is used or not.
declaration for pthread_st isn't necessary (and is why I missed that
it was necessary before, as I already had the sys/types.h change in my
local tree).
add core engine of Citrus iconv and some support routines.
- iconv core (citrus_iconv)
- coded character set mapper (csmapper)
- encoding scheme database (esdb)
- standard encoding scheme handler (stdenc)
- basic character set manipulation utilities (bcs)
- mmap based infrastructure (citrus_lookup/_mmap/_memstream/_db)
- some source codes of new plugins (not built yet)
only be exposed if _NETBSD_SOURCE is defined. To make life less complicated,
define _assert() in terms of assert(), since they always seem to have identical
definitions.
_assert() was removed back in 1993, but got reinstated with the 4.4Lite
import. Maybe it should go again. Nothing in the tree uses it.
* IPv6 functions are in POSIX-2001, so make them visible there.
* freehostent(), getipnodebyaddr() and getipnodebyname() are _only_ in
XNS5.2, so don't expose them to XSH6 or POSIX applications.
and inet_network() to match XNS and (where applicable) POSIX. This is largely
just the replacement of unsigned long with in_addr_t.
This constitutes a small ABI change on sh5, but scw (sh5 portmaster) thinks
that both the users of that port will be able to cope. kleink claims the
change is ABI-neutral on other LP64 ports, and it's a no-op on ILP32 ports.
Hence, I'm doing it this way and avoiding the whole __RENAME dance.
the insides of struct _dirdesc. Also make the existence of struct
_dirdesc visible to POSIX applications since this is less ugly than
pretending that DIR is a void *.
* Don't include <sys/param.h>
* Assume that NetBSD is a BSD system and hence has <sys/types.h>
* inet_pton() and inet_ntop() were in XNS 5.2 (not 5.0) and POSIX 2001.
Update #ifdefs accordingly.
XXX Types of inet_addr() and inet_makeaddr() are still wrong.
XXX Might want __restrict on inet_ntop() and inet_pton().
by the application, all NetBSD interfaces are made visible, even
if some other feature-test macro (like _POSIX_C_SOURCE) is defined.
<sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE,
_POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve
existing behaviour.
This has two major advantages:
+ Programs that require non-POSIX facilities but define _POSIX_C_SOURCE
can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS.
+ It makes most of the #ifs simpler, in that they're all now ORs of the
various macros, rather than having checks for (!defined(_ANSI_SOURCE) ||
!defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.
I've tried not to change the semantics of the headers in any case where
_NETBSD_SOURCE wasn't defined, but there were some places where the
current semantics were clearly mad, and retaining them was harder than
correcting them. In particular, I've mostly normalised things so that
_ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE,
_XOPEN_SOURCE and _NETBSD_SOURCE in that order.
Tested by building for vax, encouraged by thorpej, and uncontested in
tech-userlevel for a week.