NetBSD/tools/compat
bjh21 4be7a2dcf3 Add a new feature-test macro, _NETBSD_SOURCE. If this is defined
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.
2003-04-28 23:16:11 +00:00
..
sys Use the target disklabel_mbr.h, since it just describes data structures for 2002-05-12 12:30:10 +00:00
compat_defs.h Check for sys/socket.h and socklen_t. 2003-03-13 04:30:39 +00:00
compat_pwd.h work around FreeBSD defining user_from_uid() in stdlib.h 2002-07-03 17:17:04 +00:00
config.h.in Add a putc_unlocked(). 2003-03-14 03:38:42 +00:00
configure Add a putc_unlocked(). 2003-03-14 03:38:42 +00:00
configure.ac Add a putc_unlocked(). 2003-03-14 03:38:42 +00:00
db.h Make almost all tools compile and run properly on non-NetBSD hosts. (In 2002-01-29 10:20:28 +00:00
defs.mk.in Add a new feature-test macro, _NETBSD_SOURCE. If this is defined 2003-04-28 23:16:11 +00:00
fgetln.c Include config.h unconditionally; clean up. 2002-01-31 19:23:14 +00:00
flock.c fix minor typo -> s/lokcing/locking/ 2002-06-07 21:13:55 +00:00
fts.h Always use NetBSD's fts(3) in compat builds. Some systems (notably 2002-09-16 04:10:36 +00:00
getmode.c Include config.h unconditionally; clean up. 2002-01-31 19:23:14 +00:00
glob.h * Always include the NetBSD glob(3) in libnbcompat, as the host 2002-09-13 19:07:01 +00:00
issetugid.c Add a stub issetugid() for platforms that don't have it. For now, we assume 2002-04-18 15:31:51 +00:00
lchflags.c if target is not a symlink, silently succeed rather than failing with 2003-03-19 09:26:38 +00:00
lchmod.c if target is not a symlink, silently succeed rather than failing with 2003-03-19 09:26:38 +00:00
lchown.c if target is not a symlink, silently succeed rather than failing with 2003-03-19 09:26:38 +00:00
Makefile Add a new feature-test macro, _NETBSD_SOURCE. If this is defined 2003-04-28 23:16:11 +00:00
md2.h * Always include the NetBSD glob(3) in libnbcompat, as the host 2002-09-13 19:07:01 +00:00
md4.h * Always include the NetBSD glob(3) in libnbcompat, as the host 2002-09-13 19:07:01 +00:00
md5.h * Always include the NetBSD glob(3) in libnbcompat, as the host 2002-09-13 19:07:01 +00:00
mpool.h Make many host tools compile on non-NetBSD hosts. Not complete, but 2002-01-21 20:04:36 +00:00
namespace.h Make sure there are no weak references in libnbcompat (avoids linker 2002-01-31 19:20:14 +00:00
nl_types.h Make almost all tools compile and run properly on non-NetBSD hosts. (In 2002-01-29 10:20:28 +00:00
pread.c Include config.h unconditionally; clean up. 2002-01-31 19:23:14 +00:00
putc_unlocked.c FreeBSD #defines putc_unlocked in stdio.h, so guard against that also 2003-03-21 14:40:26 +00:00
pwrite.c Include config.h unconditionally; clean up. 2002-01-31 19:23:14 +00:00
README It's "HP-UX" not "HP/UX". (Thanks Giles). 2002-09-29 07:05:28 +00:00
rmd160.h * Always include the NetBSD glob(3) in libnbcompat, as the host 2002-09-13 19:07:01 +00:00
setenv.c Include config.h unconditionally; clean up. 2002-01-31 19:23:14 +00:00
setgroupent.c Add some more bits of host compatibility. 2002-02-26 22:29:38 +00:00
setpassent.c Add some more bits of host compatibility. 2002-02-26 22:29:38 +00:00
setprogname.c Provide a default string so host tools that forget to call setprogname() 2002-01-31 19:21:58 +00:00
sha1.h * Always include the NetBSD glob(3) in libnbcompat, as the host 2002-09-13 19:07:01 +00:00
snprintf.c Include config.h unconditionally; clean up. 2002-01-31 19:23:14 +00:00
tzfile.h Roll in fixes to permit cross-compiling from non-NetBSD hosts. This 2002-01-31 22:43:33 +00:00
vis.h * Always include the NetBSD glob(3) in libnbcompat, as the host 2002-09-13 19:07:01 +00:00

$NetBSD: README,v 1.8 2002/09/29 07:05:28 lukem Exp $

Special notes for cross-hosting a NetBSD build on certain platforms.  
Only those platforms which have been tested to complete a "build.sh" run
are listed.

=====

HP-UX:

* zlib must be available.
  This will be fixed in the future to include zlib in libnbcompat.

=====

LINUX:

* Tested on RedHat Linux 7.1 (i386).
  Tested on RedHat Linux 7.3 (i686) on 16 Sep 2002.  Requires "LANG=C"
  in the environment.

* The gcc (and libstdc++, if needed) package must be installed, along
  with the typical system development packages (glibc-devel, etc.).

* The ncurses-devel package must be installed (for nbinfo).

* The zlib and zlib-devel packages must be installed.  This will be
  fixed in the future to include zlib in libnbcompat.

=====

NETBSD (earlier releases):

* Tested on NetBSD 1.5.2 (machine-independently).

* Should need no special setup.

=====

SOLARIS:

* Tested on Solaris/x86 8 (5.8) with gcc 2.95.2 and Solaris/sparc 8 (5.8)
  with gcc 3.2 (not yet tested with SUNWspro).

* $HOST_CC needs to be set properly (for gcc, it should be set to "gcc",
  otherwise the improper /usr/ucb/cc may be invoked by accident).

* The SUNWzlib package (or a built version of zlib visible to $HOST_CC,
  such as SMCzlib from sunfreeware.com) must be installed.  This will be
  fixed in the future to include zlib in libnbcompat.

* Needs the following paths, in this order, in $PATH:

      /usr/xpg4/bin
      /usr/ccs/bin
      <path to host C and C++ compilers>
      /usr/bin

  /usr/ucb may optionally be placed before /usr/bin, per your preference,
  but /usr/ucb *MUST NOT* be before /usr/ccs/bin or before the path to
  the host C and C++ compilers.